操作系统作业题及答案Word下载.docx
《操作系统作业题及答案Word下载.docx》由会员分享,可在线阅读,更多相关《操作系统作业题及答案Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
![操作系统作业题及答案Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/28/b88c7cd3-78bb-4a05-8cd2-7184994c18d1/b88c7cd3-78bb-4a05-8cd2-7184994c18d11.gif)
600行
其中,卡片输入机速度为1000张/分钟,打印机输出速度为1000行/分钟,试计算:
(1)不采用spooling技术,计算这两道作业的总运行时间(从第1道作业输入开始到最后一个作业输出完毕)。
(2)如采用spooling技术,计算这2道作业的总运行时间(不计读/写盘时间),并给出相应的示意图。
作业二:
进程管理
1、请写出两程序S1和S2可并发执行的Bernstein条件。
2、有以下5条语句,请画出这5条语句的前趋图。
S1:
y=x+1R(x)W(y)
S2:
c=f-wR(f,w)W(c)
S3:
d=r-yR(r,y)W(d)
S4:
x=a+bR(a,b)W(x)
S5:
r=c+yR(c,y)W(r)
3、设在教材第62页3.6.4节中所描述的生产者消费者问题中,其缓冲部分为m个长度相等的有界缓冲区组成,且每次传输数据长度等于有界缓冲区长度以及生产者和消费者可对缓冲区同时操作。
重新描述发送过程deposit(data)和接收过程remove(data)。
4、设有k个进程共享一临界区,对于下述情况,请说明信号量的初值、含义,并用P,V操作写出有关互斥算法。
(1)一次只允许一个进程进入临界区;
(2)一次允许m(m<
k)个进程进入临界区。
作业三:
1、假若一个街道交通如下图所示,若有一长度大于两个路口距离的车,可以从东南西北四个方向开来,问
(1)何时会发生死锁?
(2)请提出一种可预防死锁发生的简单方法。
2、某超市市场科容纳100人同时购物,入口处备有篮子,每个购物者可取1只篮子入内购物,出口处结账并归还篮子(出、入口仅容1人通过)。
请试用P,V操作及信号量写出如下情况的购物同步算法:
(1)1个出入口,且一次只允许1人通过;
(2)1个入口,n个出口(n≥1且为整数)。
3、设有无穷多个缓冲区和无穷多个信息,甲进程把信息逐个写入每个缓冲区,乙进程则逐个地从缓冲区中取出信息。
试问:
(1)两个进程间的制约关系;
(2)用P,V操作写出两个进程的同步算法,并给出信号量的初值;
(3)指出信号量的值的变化范围及取值的含义。
作业四:
作业、进程调度
1、下面哪几种调度算法适合于作业调度,哪些适合进程调度?
(1)先来先服务
(2)轮转法(3)短作业优先(4)优先级高者优先(5)长作业优先
2、作业调度算法选择作业的原则可以是保证系统吞吐量大、对用户公平合理或者充分发挥系统资源的利用率。
通常情况下,采用简单算法只能体现其中一种原则而其它原则得不到反映。
为此,给出下列能反映多种原则的调度算法,并假定完全根据优先数从高到低顺序挑选作业,作业优先数按下述公式计算:
R(优先数)=(作业等待时间)2+1/(作业要求运行时间)
请问这种算法反映了上述原则中的哪些原则?
并简述理由。
3、假设有4道作业,它们的提交时刻及运行时间由下表给出:
提交时刻/小时
执行时间/小时
10.00
10.20
3
10.40
0.5
4
10.50
0.3
计算在单道程序环境下,采用先来先服务调度算法、最短作业优先调度算法和最高响应比优先调度算法时的平均周转时间和平均带权周转时间,并指出他们的调度顺序。
作业五:
存储管理
1、假定某页式虚拟系统中,页面大小为100个单元,某作业占有实页面数为M=3,它的访问地址(走向)序列为75,175,66,267,32,102,333,166,22,255,256(数字为虚存的逻辑地址)。
(1)请指出这些单元对应的页面访问顺序序列;
(2)按先来先服务(FIFO)页面淘汰算法求出缺页率f,并画出图表表示之;
(3)按最近最久未使用(LRU)页面置换算法求出缺页率f,并画出图表表示之。
2、有系统其主存容量为1024K(字节),有6个作业同时到达,各作业要求主存量和运行时间如下表所示。
假定系统初启时,将主存1024K按作业的编号顺序分给各道作业,并假定是多CPU下,分配到主存的作业都可以立即运行。
请问:
(1)1秒后,主存空白区按首次适应和最佳适应算法的链接方式链接,将如何链接?
(2)2秒后,主存空白区按首次适应和最佳适应算法的链接方式链接,将如何链接?
(3)在
(2)后,此时有一个作业7要求进入主存,它需要主存量为30K,按上述两种算法应把那一块空白区分给它,并画出分配后的链接情况。
作业编号
需主存量(K)
运行时间(s)
200
120
100
50
5
80
6
320
作业六:
文件管理
1、在UNIX系统中,为使文件的索引表较小又能允许组织大文件,采用直接索引与多次间接索引(多级索引)方式,给出一个文件的所有磁盘的块号,如下图。
假设每个磁盘块大小为1024字节,并且每个间接块容纳256个块号,试问:
(1)如某进程要读取某文件的字节偏移量为9000处的数据,应如何找到它所在的磁盘块及块内位移量?
(2)如想要存取350000处,又将如何?
直接0
4096
直接1
228
直接2
45423
直接3
401
直接4
702
直接5
11111
直接6
10
直接7
101
直接8
367
直接9
90
间接
428
9156
824
2、磁道(0-90道)的存取正在处理第55道的服务请求,对于磁盘访问序列(磁道号):
22、77、35、90、40、83、66,试问对以下的磁盘I/O请求调度算法而言,满足以上请求序列,磁头将如何移动,移动距离为多少?
若每移动一个柱面需3ms,计算总共花费的寻道时间。
(1)先来先服务算法(FCFS)
(2)最短查找时间优先调度(SSTF)
(3)扫描调度(SCAN)(电梯调度算法)
(4)循环扫描(C-SCAN)算法
3、如果磁道范围0-99,刚结束第50道的服务请求,对于磁道序列70,25,40,85,90,55,分别按第2题
(1)-(4)四种磁道扫描方法,磁头将如何移动?
3、有三道程序A、B、C在一个系统中运行,该系统有输入、输出设备各1台。
4、假设一个单CPU系统,以单道方式处理一个作业流,作业流中有2道作业,共占用CPU计算时间、输入卡片数和打印输出行数如下:
(3)不采用spooling技术,计算这两道作业的总运行时间(从第1道作业输入开始到最后一个作业输出完毕)。
(4)如采用spooling技术,计算这2道作业的总运行时间(不计读/写盘时间),并给出相应的示意图。
作业一解答过程:
1、
(1)三道程序顺序执行的总时间是:
32+8+5+21+14+35+12+32+15=174秒。
(2)充分发挥各设备的效能,并行执行上述三道程序,最短需90秒(按BCA顺序执行),示意图如下:
注:
按ABC执行需117s,按ACB执行需126s,按BAC执行需112s,按BCA执行需90s,按CAB执行114s,按CBA执行需99s。
2、
(1)不采用spooling技术,计算这两道作业的总运行时间为:
100/1000(输入)+3(执行)+2000/1000(输出)+200/1000+2+600/1000=7.9分钟
5.3
(2)采用spooling技术,这2道作业的总运行时间为5.7分钟。
0.2
5、请写出两程序S1和S2可并发执行的Bernstein条件。
6、有以下5条语句,请画出这5条语句的前趋图。
7、设在教材第62页3.6.4节中所描述的生产者消费者问题中,其缓冲部分为m个长度相等的有界缓冲区组成,且每次传输数据长度等于有界缓冲区长度以及生产者和消费者可对缓冲区同时操作。
8、设有k个进程共享一临界区,对于下述情况,请说明信号量的初值、含义,并用P,V操作写出有关互斥算法。
作业二解答过程:
1、Bernstein条件(可并发执行的条件):
设R(Si)={a1,a2,…,am}表示程序Si在执行期间所需要引用(读)变量的集合---读集
W(Si)={b1,b2,…,bn}表示程序Si在执行期间要改变(写)变量的集合---写集
如果两个程序S1和S2能同时满足下述条件,它们便能并发执行,否则不能
R(S1)∩W(S2)={∮},W(S1)∩R(S2)={∮},W(S1)∩W(S2)={∮}
(也可以写成R(S1)∩W(S2)∪W(S1)∩R(S2)∪W(S1)∩W(S2)={∮})
2、前趋图:
3、设第i块缓冲区的公用信号量为buf[i],初值为1;
生产者进程的私用信号量为produce,初值为m;
消费者进程的私用信号量为consume,初值为0。
发送过程deposit(data)和接收过程remove(data)描述如下:
Deposit(data):
Begin
P(produce)
选择一个空缓冲区i
P(buf[i])
送数据入缓冲区i
V(consume)
V(buf[i])
End
Remove(data):
P(consume)
选择一个满缓冲区i
取缓冲区i中的数据
V(produce)
End
4、
(1)一次只允许一个进程进入临界区:
设s为互斥信号量,初值为1,表示有1个空闲且可用的共享临界资源
对任一进程Pi(1≤i≤k):
P(s)
<
进入临界区>
V(s)
信号量s的变化范围为[-(k-1),…,-1,0,1]。
其中,s=1表示有1个空闲且可用的临界资源,且没有进程进入类名为s的临界区;
s=0表示有1个进程在临界区中(该临界资源已被某进程占用),但无等待使用该临界资源的进程;
s=-n(1≤n≤k-1,n为整数)表示有1个进程在临界区中,且有n个进程等待使用该临界资源。
(2)一次允许m(m<
k)个进程进入临界区:
设s为互斥信号量,初值为m,表示有m个空闲且可用的共享临界资源,即可允许m个进程同时进入该临界区
信号量s的变化范围为[-(k-m),…,-1,0,1,…,m]。
其中,s=m表示有m个空闲且可用的临界资源,且没有进程进入类名为s的临界区;
s=j(1≤j<m,j为整数)表示有m-j个进程正在该临界区中,且仍有j个空闲且可用的临界资源,但无等待使用该临界资源的进程;
s=0表示有m个进程在临界区中,目前无空闲且可用的临界资源,但无等待使用该临界资源的进程;
s=-n(1≤n≤k-m,n为整数)表示有m个进程在临界区中,目前无空闲且可用的临界资源,且有n个进程等待使用该临界资源。
3、假若一个街道交通如下图所示,若有一长度大于两个路口距离的车,可以从东南西北四个方向开来,问
(1)何时会发生死锁?
./
4、某超市市场科容纳100人同时购物,入口处备有篮子,每个购物者可取1只篮子入内购物,出口处结账并归还篮子(出、入口仅容1人通过)。
作业三解答过程:
1、
(1)何时会发生死锁?
(2)请提出一种可预防死锁发生的简单方法
设4个路口为4个资源,其信号量分别设为S1,S2,S3和S4,初值均为1,代表资源空闲可用,下面用P,V操作预防死锁问题:
方向①进程:
P(S1,S2)
<
通过S1、S2路口>
V(S1,S2)
方向②进程:
P(S2,S4)
通过S2、S4路口>
V(S2,S4)
方向③进程:
P(S3,S4)
通过S3、S4路口>
V(S3,S4)
方向④进程:
P(S1,S3)
通过S1、S3路口>
V(S1,S3)
信号量S1,S2,S3和S4的变化范围均为[-∞,…,-1,0,1]。
其中,S1~S4=1表示有1个空闲且可用的临界资源,且没有进程进入类名为S1~S4的临界区;
S1~S4=0表示有1个进程在临界区中,目前无空闲且可用的临界资源,但无等待使用该临界资源的进程;
S1~S4=-m(m为正整数)表示有1个进程正在该临界区中,目前无空闲且可用的临界资源,且有m个进程等待使用该临界资源。
2、
(1)1个出入口,且一次只允许1人通过:
设超市容量信号量为S,初值为100;
购物进程为Pi,购物信号量为mutex,初值为1。
购物进程Pi同步描述:
P(S)
P(mutex)
进入超市并取1只篮子>
V(mutex)
<
选购商品>
结账并归还篮子>
V(S)
信号量S的变化范围为[-m,…,-1,0,1,…,100](m为正整数)。
其中,S=100表示有100个空闲且可用的临界资源,且没有进程进入类名为S的临界区;
s=j(1≤j<100,j为整数)表示有100-j个进程正在该临界区中,且仍有j个空闲且可用的临界资源,但无等待使用该临界资源的进程;
s=0表示有100个进程在临界区中,目前无空闲且可用的临界资源,但无等待使用该临界资源的进程;
s=-m(m为正整数)表示有100个进程在临界区中,目前无空闲且可用的临界资源,且有m个进程等待使用该临界资源;
信号量mutex的变化范围为[-99,…,-1,0,1]。
其中,……
(2)1个入口,n个出口(n≥1且为整数)
设购物进程为Pi,;
超市容量信号量为S,初值为100;
入口互斥信号量为mutex1,初值为1;
出口互斥信号量为mutex2,初值为n。
P(mutex1)
V(mutex1)
P(mutex2)
V(mutex2)
信号量S的变化范围为[-m,…,-1,0,1,…,100](m为正整数)。
其中,……;
信号量mutex1和mutex2的变化范围均为[-99,…,-1,0,1]。
3、
(1)两个进程间的制约关系:
乙进程不能先于甲进程执行,而甲进程不受乙进程约束。
(2)设置1个信号量S,S表示甲进程写满的缓冲区的个数,S初值为0,表示缓冲区为空,则甲、乙两进程的同步算法描述为
甲进程:
i=0
i=i+1
写入第i个缓冲区>
乙进程:
j=0
j=j+1
读出第j个缓冲区>
(3)信号量S的变化范围为[-1,+∞]中的整数,当S=-1时表示缓冲区从未被写入信息或缓冲区信息被乙进程读空,且乙进程要求进一步读缓冲区中的信息,即乙进程超前甲进程欲读取缓冲区的信息而受阻。
下表给出了3种简单的作业调度算法:
调度算法
吞吐量大
公平合理
发挥资源利用率
先来先服务
最短作业优先
?
(1)请指出每种算法主要是体现了上述哪种原则。
(在对应的行列上打上记号√)
(2)如果在实际系统中只采用上述3种简单算法的任一种,都只能体现其中一种原则而其它原则得不到反映。
作业四解答过程:
1、适用于作业调度用的算法:
(1)(3)(4)(5),适用于进程调度用的算法:
(1)
(2)(4)。
2、
(1)
√
(2)该算法体现了先来先服务原则和最短作业优先原则。
理由如下:
体现先来先服务原则:
假若两作业运行时间相同,但到达时间不同,早到达的作业等待时间长,根据公式计算,它的优先数大,则优先调度。
体现最短作业优先原则:
假若两道作业同时到达,但运行时间不等,根据公式计算,运行时间短的作业其优先数高,因而优先调度。
3、
(1)先来先服务(FCFS)调度:
调度顺序为1→2→3→4。
到达时间
结束时间
周转时间
带权周转时间
12.00
1.00
13.00
2.8
2.80
13.50
3.1
6.20
13.80
3.3
11.00
平均周转时间T=(2+2.8+3.1+3.3)/4=2.8小时
平均带权周转时间W=(1+2.8+6.2+11)/4=5.25小时
(2)最短作业优先(SJF)调度:
调度顺序为1→4→3→2。
12.30
1.80
12.80
2.40
4.8
3.60
3.6
平均周转时间T=(2+1.8+2.4+3.6)/4=2.45小时
平均带权周转时间W=(1+6+4.8+3.6)/4=3.85小时
(3)最高响应比优先(HRN)调度:
响应比=(作业执行时间+作业等待时间)/作业执行时间
从下表可见,在作业1完成时刻(12.00),作业2、3、4的响应比最高的为4;
在作业4完成时刻(12.30),作业2、3的响应比最高的为3。
等待时间
执行时间
响应比
1.60
4.2
1.50
2.1
1.9
平均周转时间T=(2+1.8+2.4+3.6)/4=2.45小时
作业五解答过程:
1、
(1)访问序列为0,1,0,2,0,1,3,1,0,2,2。
(2)F