您的位置:首页 > 其它

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

2012-04-29 15:12 239 查看
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. 进程间共同协作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: