操作系统-例题选讲
发布时间:2024-10-12
发布时间:2024-10-12
操作系统 - 例题选讲
计算机操作系统例题选讲第二章 进程管理第三章 处理机调度与死锁
第四章 存储器管理第五章 设 备 管 理
第六章 文件管理
操作系统 - 例题选讲
例1:A、B两个火车站之间是单轨连接的,现有许多列车 同时到A站,须经A再到达B站,列车出B站后又可分路行 驶。为保证行车安全,请你当调度时,你将如何调度列 车?请你用PV操作为工具设计一个能实现你的调度方案 的自动调度系统。
A
B
操作系统 - 例题选讲
答:当A、B两站之间无列车停驶时,可让到达 A站的一列车进 人A、B站之间行驶。当AB站之间有列车在行驶时,则到达A站者必须在站外等 待。 当有列车到达B站后,让等在A站外的一列车进入。 因此,可用一个信号量S来控制到达A站的列车能否进入 单轨道行驶,S的初始值为1。 列车到达A站后,先执行P(S),若无列车在A、B站之 间行驶,则执行P(S)后立即进人单轨道行驶,到达B站后, 执行V(S),可释放一个等待进入的列车进入行驶。 若A、B站之间已有列车在行驶,则执行P(S)后就等待, 直到行驶者到了B站执行V(S)后释放一个欲进入者。3
操作系统 - 例题选讲
例2:假设有一个成品仓库,总共能存放8台成品,生产者 进程生产产品放入仓库,消费者进程从仓库中取出成品消 费。为了防止积压,仓库满时就停止生产。由于仓库搬运 设备只有一套,故成品的存入和取出只能分别执行,使用
PV操作来实现该方案。
答:
Var mutex,full,empty:semaphore; mutex:=1; empty:=8; full:=0;
操作系统 - 例题选讲
答:
Var mutex,full,empty:semaphore; mutex:=1; empty:=8; full:=0; Processor consumer
processor producer
begin 生产一个成品; P(empty); P(mutex); 将产品存入仓库; V(mutex); V(full); End;
Begin P(full); P(mutex); 将产品从仓库取出; V(mutex); V(empty); 消费成品; end5
操作系统 - 例题选讲
例3:
有三个进程R、M、P,它们共享一个缓冲区。R负责从输 入设备读信息,每次读出一个记录并把它存放在缓冲区中;M 在缓冲区加工读入的记录;P把加工后的记录打印输出。输入的 记录经加工输出后,缓冲区中又可存放下一个记录。请用P、V 操作为同步机构写出他们并发执行时能正确工作的程序。 三个进程共用一个缓冲区,他们必须同步工作,可定义
答:
三个信号量:
S1:表示是否可把读人的记录放到缓冲区,初始值为1.S2:表示是否可对缓冲区中的记录加工,初始值为0. S3:表示记录是否加工好,可以输出,初始值也为0.
三个进程可如下设计:6
操作系统 - 例题选讲
答:begin S1,S2,S3:semaphore; S1:=l;S2:=S3:=0; cobegin process R begin L1
:读记录; P(S1); 记录存入缓冲区; V(S2); goto L1; end;
process M beginL2: P(S2);
加工记录; V(S3); goto L2; end; process P beginL3: P(S3);
输出加工后的记录; V(S1); goto L3; end; coend; end.7
操作系统 - 例题选讲
例4:有4个进程R1,R2,W1,W2,它们共享可以存放一个 数的缓冲器B.进程R1每次把从键盘上投入的一个数存放到缓冲器 B中, 供进程W1打印输出; 进程R2每次从磁盘上读一个数放到缓冲器B中,供进程 W2打印输出。
当一个进程把数据存放到缓冲器后,在该数还没有被打 印输出之前不准任何进程再向缓冲器中存数。在缓冲器中还没有存入一个新的数之前不允许任何进程 从缓冲区中取出打印。 问:怎样才能使这四个进程在并发执行是协调的工作?
操作系统 - 例题选讲
答:
四个进程实际上是两个生产者 R1,R2和两个消费 者 W1,W2,各自生成不同的产品让各自的消费对象 去消费,且共享一个的缓冲器。 由于缓冲器只能存放一个数,所以,R1和R2在存 放数时必须互斥。而R1和W1、R2和W2之间存在同步。 为了协调它们的工作可定义三个信号量: S:表示能否把数存人缓冲器B,初始值为1. S1:表示R1是否已向缓冲器存入从键盘上读入的 一个数,初始值为0.
S2:表示R2是否已向缓冲器存入从磁盘上读入的一个数,初始值为0.9
操作系统 - 例题选讲process R2 begin 答: x2:integer; S,S1,S2:semaphore; begin S:=1;S1:=S2:=0; L2:从磁盘读一数; cobegin x2:=读入的数; process R1 P(S); xl :integer B:=x2; begin V(S2); L1:从键盘读一个数; process W2 goto L2; x1:=读入的数; z:integer end; P(S); begin B:=xl; process W1 L4:P(S2); V(S1); y:integer; z:=B; goto L1; begin V(S); end; L3:P(S1); 打印z中的数; y:=B; goto L4; V(S); end; 打印y中的数; coend; goto L3; end. end;10
操作系统 - 例题选讲
例5:a、b 两点间是一段东西向的单行车道,现要设计 一个自动管理系统,管理规则如下: 当ab间有车辆在行驶时同方向的车可以同时驶入ab 段,但另一方向的车必须在ab段外等待;
当ab之间无车时,到达a(或b)的车辆可以进入ab段,但不能从a,b点同时驶入;
当某方向在ab段行驶的车辆使出了ab段且无车辆进入ab段时,应让另一方向等待的车辆进入ab段行驶。 请用wait、signal工具对ab段实现正确管理。11
操作系统 - 例题选讲
答:
Semaphore s, mutexab,mutexba Pab: Wait(mutexab) Countab++ If countab=1 then wait(s); Signal(mutexab) enter; ….. wait(mutexab) countab- -;
if countab=0 then signal(s) signal(mutexab);12
操作系统 - 例题选讲
Pba: wait(mut
exba) countba++; If countba=1 then wait(s)
signal(mutexba)enter; …… wait(mutexba) countba--; if countba=0 then signal(s) signal(mutexba);13
操作系统 - 例题选讲
例 1:
假定要在一台处理机上执行下列作业: 作业号 执行时间 优先级 1 10 3 2 1 1 3 2 2 4 1 4 5 5 2
且假定,这些作业在时刻0以1、2、3、4、5的顺序 到达,试完成:1)给出分别使用FCFS、RR(设T=1)、SJF, 以及非抢占优先调度算法时,这些作业的执行顺序。 2)给出上述各算法的平均周转时间和平均带权周 转时间。
操作系统 - 例题选讲
例2:假设某计算机系统有R1和R2两类可再使用资源 (其中R1两个单位,R2一个单位),它们被进程P1 和P2所共享,且已知两进程均以如下方式使用资源。申请R1 申请R2 申请R1 释放R1 释放R2 释放R1
试给出系统运行过程中可能到达的死锁点,并画 出死锁状态的资源分配图。
操作系统 - 例题选讲
例3:
试化简下列资源分配图,并利用死锁定理给出相 应结论。