操作系统学习记录之七:临界区

互斥与临界区


临界资源:互斥共享变量所代表的资源,即一次只能被一个进程使用的资源;
临界区指并发进程中与互斥共享变量相关的程序段;
多个并发进程访问临界资源时, 存在竞争制约关系;

 如果两个进程同时停留在相关的临界区内,就会出现与时间相关的错误;

临界区的描述:

确定临界资源;
确定临界区;
两个进程的临界区有相同的临界资源,就是相关的临界区,必须互斥进入;
两个临界区不相关,进入就没有限制;
 

临界区管理的三个要求:

一次至多允许一个进程停留在相关的临界区内;
一个进程不能无限止地停留在临界区内;
一个进程不能无限止地等待进入临界区;
Notes:在临界区发生中断可能会引起死锁,所以应该避免在临界区发生中断;

实现临界区管理的硬件设施:

 

TS和swap指令均是忙式等待,效率低;
简单的解决办法是在进出临界区时开关中断,这样临界区执行就不会中断了,执行就有原子性;
关中断; 临界区; 开中断
操作系统原语就采用这种实现思路;
但是,临界区的指令长度应该短小精悍,这样才能保证系统效率,不建议用户程序使用, 滥用是可怕的!
 

猜你喜欢

转载自blog.csdn.net/cxy19931018/article/details/81436443