操作系统学习笔记——进程互斥与同步

本文详细阐述了并发控制原理,包括死锁与饥饿概念,以及如何实现互斥使用临界资源,强调了临界区使用原则,如忙则等待、有限等待等。同时,文章深入探讨了进程间资源争用问题,提供了对并发编程中关键概念的理解。

1.    并发控制

l  当并发进程使用同一资源时,他们会发生冲突。

l  如果操作系统将资源分配给其中的某一个使用,另一个进程必须等待,直到申请的资源可用时,由操作系统分配给它。

l  如果竞争资源的进程太多,这些进程必须等待在一个队列里,如就绪队列,阻塞队列。

l  死锁的话,阻塞进程永远得不到申请的资源。

2.    竞争资源

l  竞争资源受限必须解决“互斥”问题。某些资源必须互斥使用,如打印机。

l  这类资源又称临界资源,访问临界资源的那段代码称为临界区。

l  任何时刻只允许一个进程进入临界区,以此实现进程对临界资源的互斥访问。

当A,B进程进入进入区,在进入区进行判断能否使用临界资源,如果A可以进入临界区,B不可以进入,则A进入临界区,B进入阻塞队列,当A进入临界区执行代码退出后临界区,A进程唤醒阻塞队列里的进程B或者其他进程。

2.        互斥使用临界资源

l  当进程需要使用临界资源时,通过获得临界区的使用权实现。

l  首先,在“进入区”判断是否可以进入临界区,如果可以进入,则必须设置临界区使用标志,阻止其他后来的进程进入临界区(比如插个旗子),后来的进程通过查看临界区使用标志,知道自己不能进入临界区,就进入阻塞队列,将自己阻塞。

l  当临界区内的进程使用完毕,退出临界区时,即在“退出区”修改临界区使用标志,并负责唤醒阻塞队列中的一个进程,让其进入临界区。

3.        临界区使用原则(互斥条件)

l  忙则等待:每次只允许一个进程处于临界区,如果临界区是占用的,其他进程必须等待;

l  有限等待:进程只能在临界区内逗留有限时间,不得使其他进程在临界外无限期等待;

l  空闲让进:如果临界区空闲,则只要有进程申请就立即让其进入;

l  让权等待:进入临界区的进程,不能在临界区内长时间阻塞等待某事件,必须在一定期限内退出临界区。(在临界区内要申请资源,必须退出)。

l  不能限制进程的执行速度及处理机的数量。

4.        进程中资源争用

死锁和饥饿

5.        进程间共同协作

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值