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

被折叠的 条评论
为什么被折叠?



