首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名,读者离开时要注销登记信息;假如阅览室共有100个座位。试分别用信号量和P、V操作以及管程来实现用户进程的同步算法。
有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名,读者离开时要注销登记信息;假如阅览室共有100个座位。试分别用信号量和P、V操作以及管程来实现用户进程的同步算法。
admin
2019-08-15
38
问题
有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名,读者离开时要注销登记信息;假如阅览室共有100个座位。试分别用信号量和P、V操作以及管程来实现用户进程的同步算法。
选项
答案
(1)使用信号量和P、V操作: var A:array[1..100]of Rec; Rec=record number:integer; name:string; end; i:integer; for i:=1 to 100 do{A[i].number:=i;A[i].name:=null;} mutex,seatcount:semaphore; //semaphore:信号量 mutex:=1;seatcount:=100; cobegm process readeri(var readername:string)(i=1,2,…){ P(seatcount): P(mutex); for i:=1 to 100 do{ i++: if A[i].name==null then A[i].name:=readername; //读者登记 } /*必须采用这种方式,因为该空位是随机产生的。我们无法知道哪个读者何时离开:.=/ V(mutex) 进入阅览室,座号i,坐下读书: P(mutex); //读书完毕,需要退场 A[i]name:=null; V(mutex); V(seatcount); 离开阅览室: } eoend (2)使用管程操作: TYPE readbook=monitor VAR R:condition; i,seatcount:integer; name:array[1..100]of string; DEFINE readercome,readerleave; USE check,wait,signal,release; procedure readercome(readername) begin check(IM); if seatcount≥100 wait(R,IM) seatcount:=seatcount+1: for i=l to 100 d0 i++ if name[i]==null then name[i]::readername; get the seat number=i; release(IM); end procedure readerleave(readername) begin check(IM); seatcount--; for j=1 to 100 do i++ if name[i]==readername then name[i]:=null; release(IM); end begin seatcount:=100;name:=null; end cobegin process readeri(i=l,2.…) begin readercome(readername); read the book; readerleave(readername); leave the readroom: end coend
解析
转载请注明原文地址:https://kaotiyun.com/show/tiCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列各组条约的时间排列顺序正确的是()。①《布列斯特条约》②《色佛尔条约》③《九国公约》④《洛桑条约》
周王室的两大官僚系统是()。
系统地阐明道家思想的著作《淮南鸿烈》,也叫《淮南子》,是汉武帝时()集宾客写成的。《淮南子》问世时,黄老思想在政治上已不占支配地位了。
汉章帝会群儒于白虎观,讨论经义,由()写成《白虎通德论》(又称《白虎通义》、《白虎通》)一书,这部书系统地吸收了阴阳五行和谶纬之学,形成今文经学派的主要观点。
基督教产生的时间是()。
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
某系统中n个相互独立的生产者进程为一个消费者进程提供数据,假设每个生产者提供的数据写入各不相同的缓冲区,且生产者写缓冲区的速度比消费者读缓冲区的速度快,则缓冲区个数的最优值应为()。
Demandpaging算法是paging算法在虚拟存储空间管理的扩展。其主要的改进是:仅当需要访问某页面时,如果它不在内存,把它调入内存。按照这个思路,将segmentation算法(段式存储管理算法)扩展到虚拟存储空间管理,也可以产生类似的算法,不妨
图的D搜索类似于BFS,不同之处在于使用栈代替BFS中的队列,入/出队列的操作作为入/出栈的操作,即当一个顶点的所有邻接结点被搜索后,下一个搜索出发点应该是最近入栈(栈顶)的顶点。(1)用邻接表作为存储结构,写一个D搜索算法;(2)用D搜索方法
随机试题
依照我国婚姻法规定男子的法定结婚年龄不低于()
王先生,50岁。因慢性喘息性支气管炎入院,现病情平稳。拟近期出院,对患者护理应
调配毒性中药的处方应留存
表证与里证最主要的区别点是
下列传热体,哪个是以导热为主?
通报属于()公文。
服务对象:“现在找工作,用人单位很注重外貌,我要是长得漂亮就好了……”社会工作者:“我很理解你的心情,但每个人都不是十全十美的啊。就拿我来说,工作和家庭都不错,可我的身材很胖,有时别人也会嘲笑我,后来我就想明白了,要求十全十美是不可能的事情。”上述对话中
从所给的四个选项中,选择最合适的一个填入问号处,使之呈现一定的规律性:
因合同纠纷提起的诉讼,哪些人民法院有管辖权?()
父亲今年44岁,儿子今年16岁,当父亲年龄是儿子年龄的8倍时,父子的年龄和是多少岁?
最新回复
(
0
)