当前位置:
文档之家› 《操作系统原理》习题及参考答案
《操作系统原理》习题及参考答案
2.设有三个进程 A、B、C,进程 A 需 8 毫秒处理时间,B 需 2 毫秒处理时间,C 需 24 毫 秒处理时间,分别考虑在就绪队列中的顺序为 ABC 时及 CBA 时,用先来先服务算法 进行调度时的平均等待时间。
解:当顺序为 ABC 时: Wa=0 Wb=8 Wc=10 Mw=(0+8+10)/3=6 ms 当顺序为 CBA 时: Wc=0 Wb=24 Wc=26 Mw=(0+24+26)/3=17 ms
3.设在内存中有三道程序:A、B、C,并按照 A、B、C 的优先次序运行,其内部计算和
I/O 操作时间由下图给出。
程序 A
程序 B
程序 C
计算 30ms
计算 60ms
计算 20ms
I/O 40ms
I/O 30ms
I/O 40ms
计算 10ms
计算 10ms
计算 20ms
要求: (1)试画出按多道程序运行的时间关系图(调度程序的执行时间忽略不计)。完成这三道 程序共花多少时间?比单道运行节省多少时间? (2)若处理机调度程序每次进行程序状态转换的时间为 1ms,试画出在处理机调度程序管 理下各程序状态转换的时间关系图。完成这三道程序共花多少时间? 解: (1)在调度程序执行时间忽略不计的情况下,这三道程序的执行时间如下图所示:
1
总的执行时间为 180ms.如果单道执行这三个程序共需 80+100+80=260ms.所以节约 260- 180ms.
(2) 若处理机调度程序每次进行程序状态转换的时间为 1ms,这三道程序的执行时间如下 图所示:
总共花费 180+6=186ms. 4.系统调用(陷入)处理过程。
解:系统调用(陷入)处理过程和中断处理过程是一样的,只是中断源是执行了访管指令 (MS DOS 的 INT 或 UNIX 的 trap)。
-1
P1 P(S1)
2
3
7
0
-1
P1 x:=x+z
9
3
7
0
-1
P1 V(S2)
9
3
7
0
0
P1 z:=x+z
9
3
16
0
0
P2 y:=z+y
9
19
16
0
0
所以 x=9,y=19,z=16
6
14. 利用 PV 操作,怎样才能保证进程 Pi 能按下面两图的次序正确执行,其中 S 表示 开始,F 表示结束。
解:
z 实现 A、B 进程间同步应设置 2 个信号量 S1, S2. 信号量 S1 表示缓冲区是否 为空;信号量 S2 表示缓冲区是否为满。
z S1 的初值为 1;S2 的初值为 0. z 同步算法 Begin mutex: semaphore; Aj: integer; mutex:=1; S2:=0; Cobegin
9.常用的进程调度算法和作业调度算法有哪些?哪些适用于作业调度?哪些适用于进程 调度?
解:常用的作业调度算法有:先来先服务算法(FCFS)、最短作业优先算法(SJF)、最高响 应比优先算法(HRRN)、优先级调度算法、均衡调度算法等。 常用的进程调度算法有:先来先服务算法(FCFS)、优先级调度算法、时间片轮转调度算法 (RR)、分级调度算法、多级反馈轮转算法(MultiLevel Feedback Queue)等。
2
中 中断
正常的中断屏蔽码
改变后的中断屏蔽码
断 优先
源 级 D1 D2 D3 D4 D5 D1 D2 D3 D4 D5
D1 1
1
1
1
1
1
1
0
0
00
D2 2
0
1
1
1
1
1
1
0
00
D3 3
0
0
1
1
1
1
1
1
00
D4 4
0
0
0
1
1
1
1
1
11
D5 5
0
0
0
0
1
1
1
1
01
(1)当使用正常的中断屏蔽码时,处理器响应各中断源的中断请求的先后顺序是什么?实际 上中断处理的先后次序是什么? (2)当使用改变后的中断屏蔽码时,处理器响应各中断源的中断请求的先后顺序是什么?实 际上中断处理的先后次序是什么? (3)如果采用改变后的中断屏蔽码, D1、D2、D3、D4 和 D5 同时请求中断时,画出处理器 响应各中断源的中断请求和实际运行中断服务程序过程的示意图。 解: (1) 当使用正常的中断屏蔽码时,处理器响应各中断源的中断请求的先后顺序是 D1、D2、 D3、D4、D5。 实际上中断处理的先后次序是 D1、D2、D3、D4、D5。 (2) 当使用改变后的中断屏蔽码时,处理器响应各中断源的中断请求的先后顺序是 D1、D2、 D3、D4、D5。 实际上中断处理的先后次序是 D4、D5、D3、D2、D1。 (3) 如果采用改变后的中断屏蔽码, D1、D2、D3、D4 和 D5 同时请求中断时,处理器响 应各中断源的中断请求和实际运行中断服务程序过程如下图所示:
15. 设一个飞机航班售票系统有 n 个售票处,每个售票处通过终端访问系统的公共数据 区。假定公共数据区中的一些单元 Aj(j=1,2,3,…)分别存放某月某日某次航班的余票数。 用 P1,P2,…,Pn 表示个售票处为旅客服务时的处理进程; R1, R2, R3…, Rn 为各进程执 行时所用的工作单元。用 PV 操作和信号量保证售票系统的正确并发执行。
解:(1)设信号量 S2:=0; S3:=0; S4:=0;
P1:
P2:
P3:
……..
P(S2)
P(S3)
……..
……
……..
V(S2)
…….
…….
V(S3)
V(S4)
V(S4)
(2)设信号量 S3:=0; S4:=0; S5:=0; S6:=0;
P1: …….. …….. …….. V(S3)
C
9:00(9.0)
1
14.4
15.4
6.4
6.4
12. 什么是进程同步? 解:进程同步是指并发进程之间存在一种直接制约关系,一个进程的执行依赖另一个进程 的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒。
13. 设有两个优先级相同的进程 P1、P2 如下。令信号量 S1、S2 的初值均为 0,试问
11. 对于下列三个作业,采用不可抢占的调度方式:先来先服务算法和短作业优先算法,
当第一个作业进入系统后开始调度,填写下面的表格。
先来先服务算法:
作业号
进入输入 需运行时 开始运行 完成时间 周转时间 带权周转
井时间 间(小时) 时间
时间
A
8:00
6.4
B
8:24
3.2
C
9:00
1
短作业优先算法:
作业号
进入输入 需运行时 开始运行 完成时间 周转时间 带权周转
井时间 间(小时) 时间
时间
A B C 解:
8:00
6.4
8:24
3.2
9:00
1
先来先服务算法:
作业号
进入输入 需运行时 开始运行 完成时间 周转时间 带权周转
井时间 间(小时) 时间
时间
A
8:00(8.0)
6.4
8.0
14.4
6.4
1
B
8:24(8.4)
10. 处理机调度的目的是什么?有哪几种类型?每种调度的主要任务是什么? 解:处理机调度的目的是使处理机在满足系统要求的响应时间、吞吐量和处理机利用率的 前提下及时地运行进程。调度有 4 种类型:长程调度:决定欲增加执行的进程池;中程调 度:决定增加部分或全部位于内存中进程数;短程调度:决定哪个就绪进程被处理机执行; I/O 调度:决定哪个进程未完成的 I/O 请求可被 I/O 设备处理。
P2: …….. …….. ……. V(S3)
P3: P(S3) P(S3) …….. V(S4) V(S5) V(S6)
P4: P(S4) P(S4) …….. …….
P4: P(S4) ……. …….. …….
P5: P(S5) ……. …….. …….
P6: P(S6) ……. …….. …….
6.进程有哪几种基本状态?作业有哪几种基本状态?画出作业进程基本状态关系图。 解:进程有三种基本状态:就绪态、运行态、等待态。作业有四种基本状态:输入态(提
交态)、后备态(收容态)、执行态、完成态。
3
7.系统调用 fork()工作过程。 (1) 为子进程在 proc 结构表中分配一个空项; (2) 为子进程赋一个唯一的 PID (3) 复制父进程上下文的逻辑副本。 (4) 增加与父进程相关联的有关文件系统的进程引用技术。 (5) 对父进程返回子进程的 PID,对子进程返回为 0. 语法:pid = fork(); 一个 fork()系统调用程序实例 #include <stdio.h> #include <sys/typex.h> #include <unisd.h>
P1、P2 并发执行结束后 x=? y=? z=? 写出并发执行的细节。(10 分)
进程 P1
进程 P2
x:=0; x:=x+2; P(S1); x:=x+z; V(S2); z:=x+z;
y:=1; y:=y+2; V(S1); z:=2*y+1; P(S2); y:=z+y;
解:①假设 P1 先执行,P2 后执行: