分析:第一步:确定进程间的关系。司机到站停车后,售票员方可工作。同样,售票员关车门后,司机才能工作。所以司机与售票员之间是一种同步关系。第二步:确定信号量及其值。由于司机与售票员之间要互通消息,司机进程设置一个私有信号量run,用于判断司机能否进行工作,初值为0。售票员进程设置一个私有信号量stop,用于判断是否停车,售票员是否能够开车门,初值为0。 实现:
begin stop ,run:semaphore stop:=0;run:=0; cobegin
driver: begin L1: P(run); 启动车辆; 正常行车; 到站停车;
V(stop); goto L1; end;
conductor:begin L2:上乘客; 关车门; V(run); 售票; P(stop); 开车门; 下乘客; goto L2; end; coend; end;
第二部分 进程管理(14)
设自行车生产线上有一只箱子,其中有N个位置(N>=3)每个位置可放一个车架或一个车轮;又设有三个工人,其活动分别为:工人1生产车架,工人2生产车轮;工人 3组装自行车,用PV操作实现三个工人的合作 。 信号量:s 箱子空位置=n;s1 车架=0;s2车轮=0;mutex=1
信号量: s 箱子空位置=n ; s1 车架=0; s2车轮=0; mutex=1 cj 车架最多位置=n-2; cl 车轮最多位置=n-1 ? 工人1 工人2 ? Repeat Repeat
? 加工一个车架 加工一个车轮 P(cj) P(cl) P(s) P(s) P(mutex) P(mutex) 车架放入箱中 车轮放入箱中 V(mutex) V(mutex) V(s1) V(s2)
? 工人3 ? Repeat P(s1);P(mutex) ? 取一个车架; V(mutex)
P(s2); P(s2);P(mutex) ? 取2个车轮; V(mutex)
V(s);V(s);V(s) V(cj);V(cl);V(cl) ? 组装一台自行车
第二部分 进程管理(15)
用P.V操作解决下图之同步问题:get进程负责往单缓冲区S中输入数据, copy进程负责将单缓中区S中的数据复制到单缓冲区T, put进程负责从单缓中区T中取出数据用于处理。
信号量ms:1,s12:0,mt:1,s23:0
Get进程 copy进程 put进程 Repeat Repeat Repeat 生产数据 P(s12) P(s23) P(ms) 复制S数据 从T中取数据 放入s中 V(ms) V(mt)
V(s12) P(mt) Until false Until false 数据放入T中 V(s23)
Until false 第三部分 处理机调度(1) ? 处理机调度 答:
? 进程的调度方式(抢占式调度和非抢占式调度) ? 调度算法
答:先来先服务调度算法FCFS
短作业(进程)优先调度算法SJ(P)F 高优先权优先调度算法 基于时间片的轮转调度算法
? 死锁的原因,四个必要条件
答:原因:竞争资源引起进程死锁;进程推进顺序不当引起死锁
条件:1.互斥条件:指进程对所分配到的资源进行排他性使用,即在一
段时间内某资源只由一个进程占用。如果此时还有其他进程请求该资源,则请求者只能等待,直至占有该资源的进程用毕释放。
2.请求和保持条件:指进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又被其他进程占有,此时请求进程阻塞,但又对自己已获得的其他资源保持不放。
3.不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
4.环路等待条件:指在发生死锁时,必然存在一个“进程——资源”的环形链,即进程集合{P0,P1,P2,…,Pn}中的P0正在等待一个P1占用的资源;P1正在等待一个P2占用的资源,……,Pn正在等待一个已被P0占用的资源。
? 处理死锁的方法
答:一、预防死锁——消除产生死锁的必要条件 二、避免死锁——分配资源时防止进入不安全状态 三、检测死锁——不预防死锁,出现死锁就解除 四、解除死锁——与检测死锁配合使用 ? 死锁的预防措施、优缺点
答:1、摒弃“请求和保持”条件
静态资源分配法
优点:算法简单、易于实现且很安全 缺点:资源浪费严重,进程延迟运行。
2、摒弃“不剥夺”条件
系统规定,进程是逐个地提出对资源的要求的。当一个已经保持了某些资源的进程,提出新的要求不被满足时必须释放它已经保持的所有资源,待以后需要时再重新申请。从而摒弃了“不剥夺”条件。
该方法实现起来比较复杂且付出很大代价。可能会造成前功尽弃,反复申请和释放(抖动)情况。 3、摒弃“环路等待”条件
有序资源分配法:与前两种策略比较,资源利用率和系统吞吐量都有较明显的改善。但也存在严重问题:为资源编号限制新设备的增加;进程使用设备顺序与申请顺序相反;限制用户编程自由。 ? 银行家算法 银行家算法
设Requesti是进程Pi的请求向量,如果Requesti [j]=K,表示进程Pi需要K个Rj类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查:
第三部分 处理机调度(2)
? 为了使系统中各部分资源得到均衡使用,就必须选择对资源需求不同的作业进行合理搭配。这项工作是由(作业调度 )完成的。
? 一种既有利于短小作业又兼顾到长作业的作业调度算法是( C ) A、先来先服务 B、时间片轮转 C、最高响应比优先 D、短作业优先
? 在单处理器的多进程系统中,进程什么时候占用处理器和能占用多长时间,取决于( C进程自身和进程调度策略 ) 第三部分 处理机调度(3)
? 某作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业,其响应比是( 3 )
? 资源预先分配策略可以实现死锁的( 预防 ) ? 若系统中有五台打印机,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则至多允许( D )个进程参于竞争,而不会发生死锁。 A、5 B、2 C、3 D、4 第三部分 处理机调度(4)
? 假定在单CPU条件下有下列要执行的作业: (1)分别用一个执行时间图描述在下列算法时各自执行这些作业的情况:FCFS、RR(时间片=1)和非抢占式优先级。(2)对于上述每种算法,计算各个作业的周转时间、平均周转时间、带权周转时间、平均带权周转时间是多少
5 4 5 2 答案为五个作业
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库操作系统复习答案 - 图文(3)在线全文阅读。
相关推荐: