2021年11月18日 操作系统(进程同步/进程互斥,信号量机制)

1. 进程同步

 

 

2. 进程互斥

 

 

3. 总结 

4. 进程互斥的软件实现方法

4.1 单标志法

4.2 双标志先检查法

 

4.3 双标志后检查法

 

4.4 Peterson算法

4.5 总结 

 

5. 进程互斥的硬件实现方法

5.1 中断屏蔽 

5.2 TestAndSet指令 

 

5.3 Swap指令

 

5.4 总结

 

6. 信号量机制

 

6.1 整形信号量 

 

6.2 记录型信号量

 

 

 

6.3 总结

7. 信号量实现进程互斥、同步、前驱关系 

7.1 信号量实现互斥 

7.2 信号量实现同步

 

7.3 信号量实现前驱 

7.4 总结 

 

总结

1.  谈谈临界资源和临界区?进程同步和进程互斥有区别吗?以及你所了解的计算机关于进程互斥的原则?

  临界资源是只允许某个时刻单个进程访问的资源,例如摄像头、打印机、一些变量等资源。临界区是内存中访问临界资源的代码段。

  进程同步是为了解决进程异步不确定进行的问题,使有些有牵制关系的进程有固定的访问顺序。进程互斥就是为了解决多个进程访问临界资源的问题。

  计算机的进程互斥遵循空闲让进(当处理机空闲时,操作系统调度就绪队列队首进程进行执行,使处理机得到充分应用)、忙则等待(当处理机达到负载极限处理进程时候,应将进程放入就绪队列中等待系统调度)、有限等待(为了防止线程饥饿现象,需要让每个进程都在特定的时间能进入临界区)、让权等待四大原则(如果占用处理机的进程此时还不能访问临界区,应该让出处理机让处理机执行可以访问临界区的进程)。

2. 实现进程互斥的软件和硬件方法有哪些?为什么要引入信号量机制?信号量机制如何实现进程互斥以及进程同步?

  软件方法:1.单标志法(不满足空闲让进原则)。2.双标志先检查法(不满足忙则等待原则)。3.双标志后检查法(不满足有限等待、让权等待原则)。4.Peterson算法(在双标志后检查法的基础上再加入一个int类型变量turn,并且通过双重判断turn和flag解决进程异步带来的问题,不满足让权等待原则)。

  硬件方法:1.关中断(不适用于多处理机,并且不适用于用户级进程而只适用于内核级线程(开关中断指令运行在内核态)。)。2.TestAndSet方法,该方法将boolean类型变量lock一直置为true(这样做的目的是为了在发送过来的lock为false的时候使该进程执行,并为lock置为true为该进程上锁),并且返回旧的lock变量。3.Swap指令,该方法判断boolean类型变量old与lock交换后是否不等于true来决定执行下一步。以上三种方法都是在硬件层面实现进程互斥,它们都不存在进程异步的问题,但是都存在让权等待的问题。

  引入信号量机制的目的就是为了解决让权等待浪费处理器资源的问题,它的P操作是对seamphore类型变量S的int类型变量value进行自减操作,并且判断此时value是否小于0,如果满足则调用block()进入阻塞状态。它的V操作是对seamphore类型变量s的int类型变量value进行自增操作,并且判断此时value是否小于等于0,如果满足则调用wakeup()唤醒一个阻塞的进程。

  信号量机制实现进程互斥:对于临界资源的数量设置一个seamphore类型变量mutex(它的value值代表临界资源可用数量),在访问临界资源前进行P(mutex),在访问临界资源后进行V(mutex)。信号量机制实现进程同步:在有前后关系的进程之间设置一个seamphore类型变量k(它的value值为0),在需要先执行的进程之后进行V操作,在后执行的进程之前进行P操作。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值