
进程同步与互斥、信号量机制、管程
空闲让进:临界资源空闲时,允许其他进程进入。 编و等待:已有进程进入临界资源时,其他进程必须等待。 有限等待:每个进程在有限时间内能获取临界资源。 让权等待:无法获取临界资源的进程应立即释放处理机。 单标志法:通过一个标志变量完成进程间的切换,但可能违背空闲让进原则。 双标志法:通过两个标志变量实现进程互斥,但检查和切换操作并非原子操作,可能导致并发问题。 Peterson算法:通过争抢与让步的机制,确保唯一进程进入临界区,但未完全遵循让权等待原则。 中断屏蔽法:通过控制中断源实现进程互斥,但只适用于单处理机和内核操作。 TestAndSet指令:通过设置锁状态实现进程互斥,但无法满足让权等待原则。 整型信号量:用于表示资源数量,类似于双标志法,但操作并非原子。 记录型信号量:添加等待队列,解决让权等待问题。 临界区的互斥可通过mutrex=1实现,使用P(mutrex)进入临界区,V(mutrex)离开临界区。 同步信号量的实现,通过P(S)和V(S)控制进程的互相等待。 管程是软件模块,包含共享数据和一组操作。 局部数据只能在管程内部访问。 每进程通过调用管程方法才能访问共享数据。
发布日期:2021-05-20 08:05:06
浏览次数:21
分类:精选文章
本文共 1100 字,大约阅读时间需要 3 分钟。
进程同步与互斥、信号量机制、管程
一、进程同步与进程互斥的概念
进程是计算机操作系统中并发执行的基本单元,由于进程具有异步性,需要通过操作系统提供的机制来实现同步和互斥。
1.1 进程同步
进程同步是指需要进程按照特定顺序执行的情况,例如在并行管道的通信中,写数据进程需要在读数据进程等待其完成。在缺少进程同步机制的情况下,可能会导致数据丢失或系统错误。进程同步机制通过对共享资源的访问进行控制,确保进程的正确执行顺序。
1.2 进程互斥
互斥是进程访问临界资源时必须遵守的原则。临界资源是指在同一时间或空间只能被一个进程使用的资源,比如物理设备、内存缓冲区等。互斥共享是为了防止资源竞争和错误。
进程互斥的关键原则包括:
二、进程互斥的实现方法
2.1 软件实现方法
2.2 硬件实现方法
三、信号量机制
3.1 信号量机制的概念
信号量是操作系统中用于实现进程互斥和同步的重要工具。它可以是整型或记录型变量,通过P和V操作实现进程的等待和唤醒。
3.2 信号量机制的实现
3.3 生产者与消费者的问题
通过信号量实现生产者与消费者的同步和互斥,缓冲区作为临界资源需要互斥访问。生产者需要保证数据生产后才能允许消费者读取,同时缓冲区满时需等待生产新的数据。
四、管程(monitor)
4.1 管程的定义与特性
4.2 Java中类似于管程的实现,使用synchronized关键字实现互斥访问。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月27日 06时15分31秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
趣图:会算法和不会算法的区别
2019-03-16
区块链会2020再次爆发,先学点DAPP压压惊,跟我一起学《区块链DApp入门实战》
2019-03-16
问题解决28:微信网页授权出现redicet_uri 参数错误
2019-03-16
LeakCanary 中文使用说明
2019-03-16
反转链表,(5)
2019-03-16
Camera (api1)的打开过程
2019-03-16
wxwidgets绘图
2019-03-16
wxwidgets事件处理
2019-03-16
用OpenCv转换原始图像数据到wximage
2019-03-16
codeblocks下wxWidgets编译与配置
2019-03-16
OpenCv+wxwidgets尝试
2019-03-16
wxwidgets自定义事件+调试
2019-03-16
wxwidgets编写多线程程序--wxThread
2019-03-16
三维点云处理
2019-03-17
springboot security 基于redis的session共享(7)
2019-03-17
vue 权限管理 菜单按钮权限控制(7)
2019-03-17
vue 权限管理 主题切换(8)
2019-03-17
Qt 在Excel文件中Chart绘图
2019-03-17
01-webpack5理解及配置
2019-03-17
webpack的安装和使用
2019-03-17