为什么进程在进入临界区之前,应先执行“进入区”代码,在退出临界区后又执行“退出区”代码?(P50)
答:【解】为了保证诸进程互斥进入自己的临界区,便可实现它们对临界资源的互斥访问。为此,每个进程在进入临界区之前应先对欲访问的临界资源进行检查,看它是否正被访问。如果此刻临界资源没被访问,则该进程便可进入临界区,对该资源进行访问,并设置它正被访问的标志;如果此刻该临界资源正被某进程访问,则本进程不能进入临界区。因此,必须在临界区前增加一段用于上述检查的代码,把这段代码称为进入区。相应地,在临界区后面也要加上一段称为退出区的代码,用于将临界区正被访问的标志恢复为未被访问标志。【解析】第二章 难易度:中
继续答题:下一题
更多操作系统原理试题
- 1有一共享文件,它具有下列文件名:/usr/Wang/test/report、/usr/Zhang/report 及 /usr/Lee/report,试填写图 7.7 中的 B
- 2进程A和B共享同一临界资源,并且进程A正处于对应的临界区内执行。请从下列描述中选择一条正确的描述( )。
- 3按( )分类可将设备分为块设备和字符设备。
- 4若进程正处于执行状态时,因终端的请求而暂停下来以便研究其运行情况,这时进程应转变为( )状态。
- 5如果Wait(S1)和Wait(S2)两个操作在一起,那么Wait操作的顺序至关重要,一个同步Wait操作与一个互斥Wait操作在一起时( )Wait操作在( )Wait操作前。而两个Signal操作的次序( )。
- 6当前正在执行的进程由于时间片用完而暂停执行时,该进程应转变为( )状态;若因发生某种事件而不能继续执行时,应转为( )状态;若应终端用户的请求而暂停执行时,它应转为( )状态。