3 4 5 8:30 9:00 9:10 12 18 5 9:10 9:22 9:40 9:22 9:40 9:45 52 40 35 217 作业平均周转时间T= 43.4 (2) 作业 1 2 3 4 5 进入系统时间 8:00 8:20 8:30 9:00 9:10 估计运行时间/分钟 40 30 12 18 5 开始时间 8:00 8:52 8:40 9:27 9:22 结束时间 8:40 9:22 8:52 9:45 9:27 周转时间/分钟 40 62 22 45 17 186 作业平均周转时间T= 37.2 12、有一个具有两道作业的批处理系统,作业调度采用短作业优先的非抢式调度算法,进程调度采用以优先数为基础的抢占式调度算法,在下表所示的作业序列中,作业优先数即为进程优先数,优先数越小优先级越高。
作业名 到达时间 估计运行时间 优先数
A 10:00 40分 5 B 10:20 30分 3 C 10:30 50分 4 D 10:50 20分 6 (1)列出所有作业进入内存时间及结束时间。 (2)计算平均周转时间。 答:
每个作业运行将经过两个阶段:作业调度(SJF算法)和进程调度(优先数抢占式)。另外,批处理最多容纳2道作业,更多的作业将在后备队列等待。
时间(分钟) 10:00 10:20 10:30 10:50 11:10 12:00 12:20 A B A C D CPU A D D 进程就绪队列 C 作业后备队列
6
(1) 10:00,作业A到达并投入运行。
(2) 10:20,作业B到达且优先权高于作业A,故作业B投入运行而作业A在就绪队
列等待。
(3) 10:30,作业C到达,因内存中已有两道作业,故作业C进入作业后备队列等待。 (4) 10:50,作业B运行结束,作业D到达,按SJF短作业优先算法,作业D被装入
内存进入就绪队列。而由于作业A的优先级高于作业D,故作业A投入运行。 (5) 11:10,作业A运行结束,作业C被调入内存,且作业C的优先级高于作业D,
故作业C投入运行。
(6) 12:00,作业C运行结束,作业D投入运行。 (7) 12:20,作业D运行结束。
作业 进入内存时间 运行结束时间
A 10:00 11:10
B 10:20 10;50
C 11:10 12:00 D 10:50 12:20
各作业周转时间为:作业A 70,作业B 30,作业C 90,作业D 转时间为70分钟。
7
90。平均作业周 第四章 并发进程的同步与互斥
1、进程间同步和互斥的含义是什么? 答:
同步:并发进程之间存在的相互制约和相互依赖的关系。 互斥:若干进程共享一资源时,任何时刻只允许一个进程使用。 2、用文字描述银行家算法的基本思想? 答:
银行家算法的基本思想是:将系统中的所有资源比做银行家的资金,每进行 一次资源的分配,银行家都要从当前的资源分配情况出发,计算这种分配方案的 安全性,如果是安全的,则进行分配,否则选择其它可能的分配方案。这样,每 次分配都计算安全性,从而可以避免死锁的发生。 3、简述死锁的防止与死锁的避免的区别。 答:
死锁的防止是系统预先确定一些资源分配策略,进程按规定申请资源,系统按预先规定的策略进行分配,从而防止死锁的发生。
而死锁的避免是当进程提出资源申请时系统测试资源分配,仅当能确保系统安全时才把资源分配给进程,使系统一直处于安全状态之中,从而避免死锁。
4、试说明资源的静态分配策略能防止死锁的原因。 答:
资源静态分配策略要求每个进程在开始执行前申请所需的全部资源,仅在系统为之分配了所需的全部资源后,该进程才开始执行。这样,进程在执行过程中不再申请资源,从而破坏了死锁的四个必要条件之一“占有并等待条件”,从而防止死锁的发生。
5、有三个进程P1,P2和P3并发工作。进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S3。回答:
(1)若对资源分配不加限制,会发生什么情况?为什么? (2)为保证进程正确工作,应采用怎样的资源分配策略?为什么? 答:
.(1)可能会发生死锁
8
例如:进程P1,P2和P3分别获得资源S3,S1和S2后再继续申请资源时都要等待(2分),这是循环等待。
(或进程在等待新源时均不释放已占资源) (2)可有几种答案:
A.采用静态分配 由于执行前已获得所需的全部资源,故不会出现占有资源又等待别的资源的现象(或不会出现循环等待资源现象)。
或B.采用按序分配 不会出现循环等待资源现象。
或C.采用银行家算法 因为在分配时,保证了系统处于安全状态。
6、某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:
(1)用PV操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。
(2)根据所定义的信号量,把应执行的PV操作填入适当,以保证进程能够正确地并发执行。
COBEGIN PROCESS PI(I=1,2,……) begin ; 进入售票厅; 购票; 退出; end; COEND
(3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。 答:
.(1)定义一信号量S,初始值为20。 意义:
S>0 S的值表示可继续进入售 票厅的人数 S=0 表示售票厅中已有20名顾 客(购票者) S<0 |S|的值为等待进入售票 厅的人数
(2)P(S)
9
进入售票厅;
购票; 退出;
V(S)
(3)S的最大值为20 S的最小值为20-n
注:信号量的符号可不同(如写成t),但使用时应一致(即上述的s全应改成t)。 7、假定系统有三个并发进程read, move和print共享缓冲器B1和B2。进程read负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器B1中。进程move从缓冲器B1中取出一记录,加工后存入缓冲器B2。进程print将B2中的记录取出打印输出。缓冲器B1和B2每次只能存放一个记录。要求三个进程协调完成任务,使打印出来的与读入的记录的个数,次序完全一样。
请用PV操作,写出它们的并发程序。 答:
begin SR,SM1,SM2,SP:semaphore; B1,B2:record;
SR:=1;SM1:=0;SM2:=1;SP:=0 cobegin process read X:record;
begin R: (接收来自输入设备上一个记录) X:=接收的一个记录; P(SR); B1:=X; V(SM1); goto R; end; Process move Y:record; begin
10