我们为某临界资源设置一把锁W,当W=1时表示关锁;当W=0时表示锁已打开。试写出开锁和关锁原语,并利用它们去实现互斥。
答:我们采用一个变量W作为“锁”,代表某个临界资源的状态,W=0(false,锁已打开)表示该资源未用,W=1(true,关锁)表示该资源正被使用。同时,用一段程序作为开锁原语,用另一段程序作为关锁原语,要进入临界区的进程首先要执行关锁原语,当它退出临界区时,要执行开锁原语。从而实现对临界区的互斥控制。两个原语的作用是: 加锁原语lock 测试W是否为0 若W=0,让W=1 若W=1,继续测试 开锁原语unlock 使W=0 可见,加锁原语首先要判断临界区中有无进程,若W=0,表示无进程进入临界区,它可以马上进入,并立即将W置为1,同时禁止其他进程进入。若W=1,表示已经有进程进入,它只得等待。这种机构简单方便,但存在CPU的时间浪费,因为等待进入临界区的进程将不断循环测试W,等待W变为0。【解析】第二章 难易度:中
继续答题:下一题


更多操作系统原理试题
- 1通常,用户程序使用()地址
- 2从下面关于优先权大小的论述中,选择一条正确的论述( )。
- 3设内存的分配情况如图5.7所示,若申请一块40K字节的内存空间,若采用最佳适应算法,则所得到的分区首址为( )。
- 4一般来说,为了实现多道程序设计,计算机首先需要有()。
- 5有一共享文件,它具有下列文件名:/usr/Wang/test/report、/usr/Zhang/report 及 /usr/Lee/report,试填写图 7 .7 中的 A
- 6在多道程序系统中,进程之间存在着的不同制约关系可以划分为两类:( ) 与( )。 ( )指进程间具有的一定逻辑关系;( )是指进程间在使用共享资源方面的约束关系。