41.假设系统有64个容量一样的存储区域,其编号为0,1,…,63,用一个64位的标志字表示,位号也是0,1,…,63,分别描述64个存储区域的使用状态:当某一位为1时,表示对应存储区域已分配,若为O,表示对应存储区域空闲。系统初始状态时,64个存储区域均未分配。设置两个并发进程:get进程负责存储区域分配,每次分配一个区域,找出标志字某位为0的位置成1。put进程负责存储区域回收,每次回收一个区域,并把回收区域标志字对应位由1清成0。相应的并发程序结构如下:要求:(1)进程get、put如何正确使用共享资源标志字?(2)在并发程序中有编号的空白处填入相应的PV操作。
【正确答案】:(1)get和put共享64位的标志字,它们必须互斥访问。(1分)当get进程分配完64个存储区域后,再执行get分配时必须等待put进程回收区域,而put进程无须等待分配进程get。(2分)(2)①P(S)(1分)②P(mutex)(1分)③V(mutex)(1分)④P(mutex)(1分)⑤V(mutex)(1分)⑥V(S)(1分)
【题目解析】:暂无解析。