国家开放大学《操作系统》形考任务(应用题)参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

国家开放大学《操作系统》形考任务(应用题)参考答案
1.用如图所示的进程状态转换图能够说明有关处理机管理的大量内容。

图进程状态转换图
试回答:
①什么事件引起每次显著的状态变迁?
②下述状态变迁因果关系能否发生?为什么?
参考答案:

就绪→运行:CPU空闲,就绪态进程被调度程序选中。

运行→就绪:正在运行的进程用完了本次分配给它的CPU时间片。

运行→阻塞:运行态进程因某种条件未满足而放弃对CPU的占用,如等待读文件。

阻塞→就绪:阻塞态进程所等待的事件发生了,例如读数据的操作完成。

②下述状态变迁:
(A)2→1:可以。

运行进程用完了本次分配给它的时间片,让出CPU,从就绪队列中选一个进程投入运行。

(B)3→2:不可以。

任何时候一个进程只能处于一种状态,它既然由运行态变为阻塞态,就不能再由运行态变为就绪态。

(C)4→1:可以。

某一阻塞态进程等待的事件出现了,而且此时就绪队列
为空,该进程进入就绪队列后马上又被调度运行。

2.系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结果。

设每个用户程序对应一个进程。

问:这三个进程间有什么样的制约关系?试用P、V操作写出这些进程使用打印机的算法。

参考答案:
因为打印机是一种临界资源,所以这三个进程只能互斥使用这台打印机,即一个用户的计算结果打印完之后,另一个用户再打印。

设三个进程分别为A、B和C。

设一个互斥信号量mutex,其初值为1。

3.判断下列同步问题的算法是否正确?若有错,请指出错误原因并予以改正。

①设A,B两个进程共用一个缓冲区Q,A向Q写入信息,B从Q读出信息,算法框图如图左侧所示。

②设A,B为两个并发进程,它们共享一个临界资源。

其运行临界区的算法框图如图右侧所示。

参考答案:
①这个算法不对。

因为A、B两个进程共用一个缓冲区Q,如果A先运行,且信息数量足够多,那么缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能从Q中读出完整的信息。

改正:
A、B两进程要同步使用缓冲区Q。

为此,设立两个信号量:
empty表示缓冲区Q为空,初值为1;
full表示缓冲区Q为满,初值为0。

算法框图如图1所示。

②这个算法不对。

因为A、B两个进程是并发的,它们共享一个临界资源,所以二者应互斥地使用该临界资源,在进入临界区时不存在先A后B的时序关系,而是哪个进程先到一步就先进入自己的临界区。

改正:
A、B两个进程应互斥地进入临界区。

为此,设立一个信号量:互斥信号量mutex,其初值为1。

算法框图如图2所示。

图1 图 2
4.设有无穷多个信息,输入进程把信息逐个写入缓冲区,输出进程逐个从缓冲区中取出信息。

设缓冲区是环形的,编号为0~n-1,in和out分别是输入进程和输出进程使用的指针,初值都是0。

n 为使两类进程实行同步操作,设置了3个信号量:两个计数信号量full和empty,一个互斥信号量mutex。

full:表示放有信息的缓冲区数,其初值为( 0 )。

empty:表示可供使用的缓冲区数,其初值为( n )。

mutex:表示互斥信号量,初值为(1 )。

n 填写相应的P、V操作。

输入进程Input:
while (TRUE) {
P(empty);
P(mutex);
信息送往buffer(in);
in=(in+1)mod N; /*以N为模*/
V(mutex);
V(full);
}
输出进程Output:
while (TRUE){
P(full);
P(mutex);
从buffer(out)中取出信息;
out=(out+1)mod N; /*以N为模*/
V(mutex);
V(empty);
}
5.设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。

卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上打印结果。

问:
①系统要设几个进程来完成这个任务?各自的工作是什么?
②这些进程间有什么样的相互制约关系?
③用P、V操作写出这些进程的同步算法。

参考答案:
①系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。

②R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:B1中信息放满后C进程才可从中取出它们,且B2被取空后,C进程才可将加工结果送入其中;P进程受C进程的约束:B2中信息放满后P进程才可从中取出它们,进行打印。

③信号量含义及初值:
B1full­——缓冲区B1满,初值为0;
B1empty——缓冲区B1空,初值为0;
B2full­——缓冲区B2满,初值为0;
B2empty——缓冲区B2空,初值为0;
6.设有无穷多个信息,输入进程把信息逐个写入缓冲区,输出进程逐个从缓冲区中取出信息。

针对下述两种情况:
①缓冲区是环形的,最多可容纳n个信息;
②缓冲区是无穷大的。

试分别回答下列问题:
①输入、输出两组进程读/写缓冲区需要什么条件?
②用P、V操作写出输入、输出两组进程的同步算法,并给出信号量含义及初值。

参考答案:
①针对容量为n的环形缓冲区,输入、输出两组进程读/写缓冲区需要的条件为:
Ø 输入进程和输出进程需同步执行,即输入进程写缓冲区后,输出进程才可以读;
Ø 由于缓冲区容量有限,因此任一时刻所有输入进程存放信息的单元数不能超过缓冲区的总容量(n);
Ø 同理,所有输出进程取出信息的总量不能超过所有输入进程当前写入信息的总数。

设缓冲区的编号为0~n-1,in和out分别是输入进程和输出进程使用的指针,指向下面可用的缓冲区,初值都是0。

为使两类进程实行同步操作,应设置三个信号量:两个计数信号量full和empty,一个互斥信号量mutex。

full:表示放有信息的缓冲区数,其初值为0。

empty:表示可供使用的缓冲区数,其初值为n。

mutex:互斥信号量,初值为1,表示各进程互斥进入临界区,保证任何时候只有一个进程使用缓冲区。

下面是解决这个问题的算法描述。

输入进程Input:
while (TRUE) {
P(empty);
P(mutex);
信息送往buffer(in);
in=(in+1)mod N; /*以N为模*/
V(mutex);
V(full);
}
输出进程Output:
while (TRUE){
P(full);
P(mutex);
从buffer(out)中取出信息;
out=(out+1)mod N; /*以N为模*/
V(mutex);
V(empty);
}
②当缓冲区是无穷大时,输入进程存放信息的单元数不再受缓冲区总容量的限制,因此,可以不设信号量empty。

另外,算法中的in=(in+1)mod N; 和out=(out+1)mod N; 修改为in=in+1;和out=out+1;即可,其余的算法不变。

输入进程Input:
while (TRUE) {
P(mutex);
信息送往buffer(in);
in=in+1;
V(mutex);
V(full);
}
输出进程Output:
while (TRUE){
P(full);
P(mutex);
从buffer(out)中取出信息;
out=out+1;
V(mutex);
}
1.某分时系统的进程出现如图所示的状态变化。

(1)你认为该系统采用的进程调度算法是()。

A. 优先级法
B. 先来先服务法
C. 时间片轮转法
D. 最佳置换法
(2)根据以下A-F的提示,标识图中从①到⑥所示的每一个状态变化的原因。

③→C:运行的进程启动打印机,等待打印
④→D:打印工作结束,阻塞的进程排入就绪队列尾部
⑥→F:磁盘传输信息结束,阻塞的进程排入就绪队列尾部
②→B:时间片到,运行的进程排入就绪队列尾部
⑤→E:等待磁盘读文件工
①→A:进程被选中,变成运行态
2.下表给出了作业1,2,3的提交时间和运行时间,时间单位为小时,以十进制进行计算。

表1 作业1,2,3的提交时间和运行时间
(1)若采用先来先服务调度算法,则调度次序是()。

A. l、2、3
B. 3、2、1
C. 2、3、1
D. 1、3、2
(2)计算各个作业的周转时间和平均周转时间。

作业1的周转时间是(8.0);
作业2的周转时间是(11.6);
作业3的周转时间是(12.0);
3个作业的平均周转时间是(10.5)。

3.假定在单CPU条件下有下列要执行的作业:
作业到来的时间是按作业编号顺序进行的(即后面作业依次比前一个作业迟到一个时间单位)。

①用一个执行时间图描述在下列算法时各自执行这些作业的情况:先来先服
务法FCFS、时间片轮转法RR(时间片=1)和非抢占式优先级。

②对于上述每种算法,各个作业的周转时间是多少?平均周转时间是多少?
③对于上述每种算法,各个作业的带权周转时间是多少?平均带权周转时间是多少?
参考答案:
①先来先服务法(FCFS)
时间片轮转法(RR)
非抢占式优先级
②和③
先来先服务法(FCFS)
时间片轮转法(RR)
非抢占式优先级
注意:教材中按照Linux系统的约定,优先数小的优先级高。

本题给出的条件中直接给出的是优先级,注意数大的则优先级高,考试的时候也是这样要求的。

1.若在一分页存储管理系统中,某作业的页表如表9所示。

已知页面大小为1024字节,试将逻辑地址1011,2148,4000,5012转化为相应的物理地址。

参考答案:
本题中,为了描述方便,设页号为p,页内位移为d,则:
(1)对于逻辑地址1011,p=int(1011/1024)=0,d=1011 mod 1024=1011。

查页表第0页在第2块,所以物理地址为1024´2+1011=3059。

(2)对于逻辑地址2148,p=int(2148/1024)=2,d=2148 mod 1024=100。

查页表第2页在第1块,所以物理地址为1024+100=1124。

(3)对于逻辑地址4000,p=int(4000/1024)=3,d=4000 mod 1024=928。

查页表第3页在第6块,所以物理地址为1024´6+928=7072。

(4)对于逻辑地址5012,p=int(5012/1024)=4,d=5012 mod 1024=916。

因页号超过页表长度,该逻辑地址非法。

2.某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。

假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如表10所示,计算逻辑地址0A5C(H)所对应的物理地址。

表10 用户页表
参考答案:
页式存储管理的逻辑地址分为两部分:页号和页内地址。

由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”,1K=210,可知页内地址占10位。

由“内存为16KB”,可知有16块,块号为4位。

逻辑地址0A5C(H)所对应的二进制表示形式是:000 1010 0101 1100,根据上面的分析,下划线部分为页内地址,编码“000 10”为页号,表示该逻辑地
址对应的页号为2。

查页表,得到物理块号是4(十进制),即物理块地址为:01 00 ,拼接块内地址10 0101 1100,得01 0010 0101 1100,即125C(H)。

3.考虑下述页面走向:1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6,当内存块数量分别为3,5时,试问使用先进先出法(FIFO)置换算法的缺页次数是多少?(注意,所有内存块最初都是空的,所以,凡第一次用到的页面都产生一次缺页。


参考答案:
解:所有内存块最初都是空的,所以第一次用到的页面都产生一次缺页。

当内存块数量为3时,先进先出法(FIFO)置换算法发生缺页中断次数为16,过程如表11所示。

当内存块数量为5时,先进先出法(FIFO)置换算法发生缺页中断次数为10,过程如表12所示。

表11 内存块数量为3时FIFO置换算法
表12 内存块数量为5时FIFO置换算法
4.考虑下述页面走向:1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6,当内存块数量分别为3,5时,试问使用最近最少置换算法(LRU)的缺页次数是多少?(注意,所有内存块最初都是空的,所以,凡第一次用到的页面都产生一次缺页。


参考答案:
解:当内存块数量为3时,最近最少置换算法(LRU)的缺页中断次数为15,过程如表13所示。

当内存块数量为5时,最近最少置换算法(LRU)的缺页中断次数为8,过程如表14所示。

表13 内存块数量为3时LRU置换算法
表14 内存块数量为5时LRU置换算法
5.考虑下述页面走向:1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6,当内存块数量分别为3,5时,试问使用最佳置换算法(OPT)的缺页次数是多少?(注意,所有内存块最初都是空的,所以,凡第一次用到的页面都产生一次缺页。


参考答案:
解:当内存块数量为3时,最佳置换算法(OPT)的缺页中断次数为11,过程如表15所示。

当内存块数量为5时,最佳置换算法(OPT)的缺页中断次数
为7,过程如表16所示。

表15 内存块数量为3时OPT置换算法
表16 内存块数量为5时OPT置换算法
6.考虑下面存储访问序列,该程序大小为460字:
10,11,104,170,73,309,185,245,246,434,458,364
设页面大小是100字,请给出该访问序列的页面走向。

又设该程序基本可用内存是200字,如果采用先进先出(FIFO)置换算法,缺页率是多少。

(注:缺页率=缺页次数/访问页面总数)
参考答案:
解:根据已知条件页面大小是100字,将页面访问序列简化为:
0,0,1,1,0,3,1,2,2,4,4,3
又因为该程序基本可用内存是200字,可知内存块数为2。

采用先进先出置换算法(FIFO),总共有6次缺页,缺页率为6/12=50%,具体算法如表17所示。

表17 FIFO置换算法
7.考虑下面存储访问序列,该程序大小为460字:
10,11,104,170,73,309,185,245,246,434,458,364
设页面大小是100字,请给出该访问序列的页面走向。

又设该程序基本可用内存是200字,如果采用最近最少使用置换算法(LRU),缺页率是多少?(注:缺页率=缺页次数/访问页面总数)
参考答案:
解:根据已知条件页面大小是100字,将页面访问序列简化为:
0,0,1,1,0,3,1,2,2,4,4,3
又因为该程序基本可用内存是200字,可知内存块数为2。

采用最近最少使用置换算法(LRU),总共有7次缺页,缺页率为7/12=58%,具体算法如表18所示。

表18 LRU置换算法
8.考虑下面存储访问序列,该程序大小为460字:
10,11,104,170,73,309,185,245,246,434,458,364
设页面大小是100字,请给出该访问序列的页面走向。

又设该程序基本可用内存是200字,如果采用最佳置换算法(OPT),缺页率是多少?(注:缺页率=缺页次数/访问页面总数)
参考答案:
解:根据已知条件页面大小是100字,将页面访问序列简化为:
0,0,1,1,0,3,1,2,2,4,4,3
又因为该程序基本可用内存是200字,可知内存块数为2。

采用最佳置换算法(OPT),总共有5次缺页,缺页率为5/12=41.6%,具体算法如表19所示。

表19 OPT置换算法
1.设Linux文件系统中的目录结构如图所示:
图Linux文件系统中的目录结构
(1)Linux文件系统采用的目录结构是什么?
参考答案:
上图明显是树形目录结构,但是其中有链接,如文件ABC还链到了mub1目录上,因此Linux文件系统采用的是非循环图目录结构。

(2)设当前工作目录是/usr,则访问文件m1.c的相对路径名是什么?
参考答案:
相对路径名是相对当前工作目录的路径名,而且相对路径名不能以斜线(/)开头,访问文件m1.c的相对路径名是mengqc/mub1/m1.c。

(3)cd /usr/liu命令的功能是什么?
参考答案:
cd命令用来改变工作目录。

cd /usr/liu命令的功能是把工作目录改到liu。

(4)如果用ls –l /usr/mengqc/mub1命令列出指定目录的内容,其中有如下所示的一项:- r w ---- 2 mengqc group 198 Jun 23 2010 m2.c
那么,该文件m2.c对文件主和同组用户的权限是什么?
参考答案:
根据下图文件权限表示,“r w –”表示文件主具有读和写权限,没有执行权限,“r --”表示同组用户只有读权限。

图文件权限表示
1.假设一个磁盘有200个磁道,编号从0~199。

当前磁头正在143道上服务,并且刚刚完成了125道的请求。

如果寻道请求队列的顺序是:
86, 147, 91, 177, 94, 150, 102, 175, 130
问:为完成上述请求,下列算法各自磁头移动的总量是多少?
(1)FCFS (2)SSTF (3)电梯法
参考答案:
(1)采用先来先服务磁盘调度算法FCFS,进行调度的情况为:从143道开始磁头移动总量为565。

(2)采用最短寻道时间优先磁盘调度算法SSTF,进行调度的情况为:从143道开始。

磁头移动总量为162。

(3)采用电梯磁盘调度算法,进行调度的情况为:从143道开始。

磁头移动总量为125。

相关文档
最新文档