1.思考题
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了平遥免费建站欢迎大家使用!(6)什么是临界区?什么是临界资源?什么是竞争条件?
临界区:访问临界资源的程序段(代码)。
临界资源:并发进程中共享变量所代表的资源;一次只能供一个进程使用的资源。
竞争条件:指多进程并发访问(操作)同一个数据时执行的结果依赖于进程之间执行的顺序。
(7)试述临界区管理的基本原则。
基本原则:
一次至多允许一个进程停留在相关的临界区内
一个进程不能无限止地停留在临界区内
一个进程不能无限止地等待进入临界区
(17)试述产生死锁的必要条件。
必要条件:
(1)互斥条件(mutal exclusion):进程互斥使用临界资源
(2)占有和等待条件(hold and wait):进程在申请新资源得不到满足而等待时,不释放已经占有资源
(3)不剥夺条件(no preemption):一个进程不能抢夺其他进程占有的资源
(4)循环等待条件(circular wait):存在一个循环等待链,每个进程分别等待它前一个进程所持有的资源,造成永远等待
(18)列举死锁的各种防止策略。
策略:
1、使资源可同时访问而非互斥
2、采用静态分配
3、采用剥夺式调度方法
4、采用层次分配策略
2.应用题
(2)两个进程P1和P2并发执行,其程序代码分别如下。
P1(){ while(true){ k = k * 2; k = k + 1; } } | P2(){ while(true){ print k; k = 0; } } |
若令k的初值为5,在进程P1执行了两个循环后,进程P1和P2又并发执行了一个循环。写出该过程中可能的打印值,并指出其中与时间有关的错误。
P1的前两次循环:
1、k=10+1,即k=11
2、k=22+1,即k=23
进程P1和P2又并发执行了一个循环:
与时间有关的错误:
两个程序并发执行共享了变量k,导致结果不唯一。
(7)有如下两个优先级相同的进程P1和P2,已知信号量S1和S2的初值均为0,试问P1、P2并发执行后x、y、z的值各为多少?
P1(){ y = 1; y = y + 3; V(S1); z = y + 1; P(S2); y = z + y; } | P2(){ x = 1; x = x + 5; P(S1); x = x + y; V(S2); z = z + x; } |
(15)现有一个如题图所示的小巷,除安全岛可容2人暂时停身外,仅能容1人通过,若A、B两端都允许行人进出,试使用信号量与PV操作设计一个算法,让两端行人顺利通过小巷。
(17)有一个阅览室,读者进入时必须先在一张登记表上登记,此表为每个座位列出一个表目,包括座位号、姓名,读者离开时要注销登记信息;假如阅览室共有100个座位。试用信号量和PV操作实现用户进程的同步算法。
(21)一个经典的同步问题:吸烟者问题(Patil,1971年)。三位吸烟者在同一个房间内,还有一位香烟供应者。为了制造并抽掉香烟,每位吸烟者需要三样东西:烟草、纸和火柴,供应者有丰富的货物提供。三位吸烟者中,第一个人有自己的烟草,第二个人有自己的纸,第三个人有自己的火柴。供应者随机地将两样东西放在桌子上,允许一位吸烟者吸烟。当吸烟者吸完烟后唤醒供应者,供应者再将两样东西放在桌子上,唤醒另一位吸烟者。试采用信号量和PV操作编写他们同步工作的程序。
(24)试用信号量和pv操作实现睡眠的理发师问题:理发店里有一位理发师、一把理发椅和n把供等候理发的顾客坐的椅子。要求:①如果没有顾客,理发师便在理发椅上睡觉;②一个顾客到来时,他必须叫醒理发师;③如果理发师正在理发时又有顾客来到,如果有空椅子可坐,就坐下来等待,否则就离开。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧