操作系统课后答案Word格式文档下载.docx
《操作系统课后答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《操作系统课后答案Word格式文档下载.docx(31页珍藏版)》请在冰点文库上搜索。
而分时系统中的多路性则与用户情况有关,时多时少。
(2)独立性
实时事务处理系统中的每个终端用户在向实时系统提出服务请求时,是彼此独立地操作,互不干扰;
而实时过程控制系统中,对信息的采集和对对象的控制也都是彼此互不干扰。
(3)实时性
分时系统对响应时间的要求是以人们能够接受的等待时间为依据,其数量级通常规定为秒;
而实时系统对响应时间一般有严格限制,它是以控制过程或信息处理过程所能接受的延迟来确定的,其数量级可达毫秒,甚至微秒级。
事件处理必须在给定时限内完成,否则系统就失败。
(4)交互性
实时系统虽然也具有交互性,但这里人与系统的交互仅限于访问系统中某些特定的专用服务程序。
它不像分时系统那样能向终端用户提供数据处理和资源共享等服务。
(5)可靠性
虽然分时系统也要求系统可靠,但实时系统对可靠性的要求更高。
因为实时系统控制、管理的目标往往是重要的经济、军事、商业目标,而且立即进行现场处理,任何差错都可能带来巨大的经济损失,甚至引发灾难性后果。
因此,在实时系统中必须采取相应的硬件和软件措施,提高系统的可靠性。
5.操作系统的功能包括哪几部分?
操作系统应该具有处理机管理、存储器管理、设备管理和文件管理的功能。
为了方便用户使用操作系统,还须向用户提供方便的用户接口。
6.在单CPU和两台I/O设备(I1、I2)的多道程序设计环境下,同时投入3个作业运行。
其执行轨迹如下:
Job1:
I2(30ms),CPU(10ms),I1(30ms),CPU(10ms),I2(20ms)
Job2:
I1(20ms),CPU(20ms),I2(40ms)
Job3:
CPU(30ms),I1(20ms),CPU(10ms),I1(10ms)
如果CPU、I1和I2都能并行工作,优先级从高到低依次为Job1、Job2和Job3,优先级高的作业可以抢占优先级低的作业的CPU,但不可抢占I1和I2。
试求:
(1)每个作业从投入到完成分别所需要的时间。
(2)从作业的投入到完成,CPU的利用率。
(3)I/O设备的利用率。
画出三个作业并行工作图如下(图中着色部分为作业等待时间):
(1)Job1从投入到运行完成需110ms,Job2从投入到运行完成需90ms,Job3从投入到运行完成需110ms。
(2)CPU空闲时间段为:
60ms至70ms,80ms至90ms,100ms至110ms。
所以CPU利用率为(110-30)/110=72.7%。
(3)设备I1空闲时间段为:
20ms至40ms,90ms至100ms,故I1的利用率为(110-30)/110=72.7%。
设备I2空闲时间段为:
30ms至50ms,故I2的利用率为(110-20)/110=81.8%。
习题二答案
1.进程控制块(PCB)
2.进程
3.执行就绪阻塞
1.操作系统中为什么要引入进程的概念?
现代操作系统中一般都存在多个程序并发执行,程序并发所具有的间断执行、相互制约、运行结果不确定的特点,使得程序在并发执行过程要解决程序转换时候的现场保护,共享资源的合理分配以及程序的执行结果的可再现等问题。
这些问题靠程序这个静态的概念是无法进行解决的,因此需要引入进程的概念,利用进程来进行程序执行过程中的动态控制,有效管理和调度进入计算机系统中的程序,确保程序的并发执行。
2.试说明PCB的作用。
PCB是用来记录和管理进程运动变化过程的一个数据结构。
它是进程实体的一部分,它记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。
系统利用PCB来控制和管理进程,PCB是进程存在的唯一标志。
进程与PCB存在一一对应的关系。
3.为了支持进程状态的变迁,OS至少要提供哪些进程控制原语?
OS提供进程创建原语create()来创建新的进程,新创建的进程处于就绪状态。
系统提供撤销原语用来撤销完成或由于特殊原因需要撤销的进程。
系统提供阻塞原语,当进程需要阻塞时,调用阻塞原语,进程就会由执行转换为阻塞状态。
系统还提供有唤醒原语,当某事件完成或某资源可用时,调用唤醒原语,可以使处于阻塞状态的进程转换为就绪状态。
习题三答案
1.P(/wait)V(/signal)
2.一段时间内只许一个进程访问的资源访问临界资源的代码
3.继续执行进程排到阻塞队列中等待资源并自我阻塞
4.s<
=0阻塞就绪
5.共享内存区管道通信消息传递机制
6.空闲准入忙需等待有限停留有限等待
1.有座东西方向架设、可双向通行的单车道简易桥,最大载重负荷为4辆汽车。
请定义合适的信号量,正确使用PV操作,给出任一车辆通过该简易桥的管理算法。
需要设置一个互斥信号量mutex来确保桥的单行使用权,设置变量etolnum、ltoenum表示从西到东和从东到西的车辆的数目,同时设相应的两个互斥信号etolmutex、ltoemutex来确保变量etolnum、ltoenum的互斥使用,还需要设置一资源信号量count来控制上桥车辆的数目。
semaphoremutex,etolmutex,ltoemutex,count;
intetolnum=0,ltoenum=0;
mutex.value=1;
etolmutex.value=1;
ltoemutex.value=1;
count=4;
etol()//从西向东过桥的车辆进程
{
wait(etolmutex);
//要用到变量etolnum先申请变量的使用权
if(etolnum==0)wait(mutex);
//如果是第一辆从西向东过桥的车辆需申请桥的使用权
etolnum++;
//从西向东过桥的车辆数目加1
signal(etolmutex);
wait(count);
//令可从西向东过桥的车辆数目减1
过桥;
signal(count);
etolnum--;
//从西向东过桥的车辆数目减1
//最后一辆从西向东过桥的车辆需释放桥的使用权
}
ltoe()//从东向西过桥的车辆进程
wait(ltoemutex);
//要用到变量ltoenum先申请变量的使用权
if(ltoenum==0)wait(mutex);
//如果是第一辆从东向西过桥的车辆需申请桥的使用权
ltoenum++;
//从东向西过桥的车辆数目加1
signal(ltoemutex);
//令可从东向西过桥的车辆数目减1
ltoenum--;
///从东向西过桥的车辆数目减1
//最后一辆/从东向西过桥的车辆需释放桥的使用权
2.设在公共汽车上,司机和售票员的活动分别是:
司机:
启动车辆,正常行车,到站停车。
售票员:
上乘客,关车门,售票,开车门,下乘客。
用PV操作对其控制。
存在两个同步关系有,司机到站停车后售票员开车门,售票员关车门后司机才能启动车辆。
因此需要两个同步信号量。
semaphoreopen,close;
open.value=1;
close.value=0;
driver()
while
(1)
wait(close);
启动车辆;
正常行车;
到站停车;
signal(open)
conductor()
上乘客;
关车门;
signal(close);
售票;
wait(open);
开车门;
下乘客;
}
3.理发师问题:
理发店理有一位理发师、一把理发椅和n把供等候理发的顾客坐的椅子。
如果没有顾客,理发师便在理发椅上睡觉,一个顾客到来时,它必须叫醒理发师,如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,就坐下来等待,否则就离开。
试用pv操作实现理发师问题。
理发师要互斥地给顾客理发,所以要用一个互斥信号量mutex。
用变量waitnum表示等待的顾客的数目,为了互斥使用变量waitnum,需要设互斥信号量waitmutex。
如果没有顾客,理发师就睡觉。
理发师等待信号量custmer将其唤醒。
唤醒后就互斥地为顾客理发。
理发完毕后如果还有顾客就发next信号,换下一个顾客理发。
顾客进程中,如果是第一个顾客就唤醒理发师,否则等待,等到理发师的next信号,就去理发,理完离开。
为了控制等待的人数,设资源信号量waitcustomer。
semaphoremutex,waitmutex,customer,next,waitcustomer;
intwaitnum=0;
waitmutex.value=1;
customer.value=0;
next.value=0;
waitcustomer.value=n;
barber()
wait(waitmutex)//互斥访问变量waitnum
if(waitnum==0)//如果没有顾客就睡觉
睡觉;
signal(waitmutex);
wait(custmer);
//等待被顾客唤醒
wait(mutex);
//互斥地为顾客理发
理发;
signal(mutex);
if(waitnum>
0)//如果还有顾客就叫下一个
signal(next);
customer()
wait(waitmutex);
//互斥使用变量waitnum
if(waitnum==0)//如果是第一个顾客就唤醒理发师
singal(customer);
signal(waitmutex);
else
wait(waitcustomer);
//如果不是第一个顾客就坐在凳子上等,空闲凳子减1
waitnum++;
//等待人数加1
等待;
wait(next);
//等待理发师下一个的信号
去理发;
waitnum--;
//等待的顾客数目减1
signal(waitcustomer);
//空闲凳子加1
理完发离开;
4.现有四个进程R1、R2、W1、W2,它们共享可以存放一个数的缓冲器B。
进程R1每次把来自键盘的一个数存入缓冲器B中,供进程W1打印输出;
进程R2每次从磁盘上读一个数存放到缓冲器B中,供进程W2打印输出。
为防止数据的丢失和重复打印,问怎样用信号量操作来协调这四个进程的并发执行。
为防止数据的丢失和重复打印,必须在缓冲区中数据打印后再放新的数据。
需设互斥信号量mutex保障对缓冲区的互斥使用。
进程R1数据供进程W1使用,两者之间是同步关系,需设同步信号量s1。
同理需为进程R2和W2设同步信号量s1。
semaphoremutex,s1,s2;
s1.value=0;
s2.value=0;
R1()
从键盘读取数据;
wait(mutex);
//放数据前先要申请缓冲区的使用权
将数据存入缓冲区B;
signal(s1);
//发信号通知W1去打印数据
R2()
从磁盘读取数据;
signal(s2);
W1()
wait(s1);
//等待信号去取数据
从缓冲区B读取数据;
打印数据;
signal(mutex);
//数据打印过后再释放缓冲区的使用权
W2()
wai(s2);
5.如果有三个进程R、W1、W2共享一个缓冲器B,而B中每次只能存放一个数。
当缓冲器中无数时,进程R可以将从输入设备上读入的数存放到缓冲器中。
若存放到缓冲器中的是奇数,则允许进程W1将其取出打印;
若存放到缓冲器中的是偶数,则允许进程W2将其取出打印。
同时规定:
进程R必须等缓冲区中的数被取出打印后才能再存放一个数;
进程W1或W2对每次存入缓冲器的数只能打印一次;
W1和W2都不能从空缓冲中取数。
写出这三个并发进程能正确工作的程序。
设互斥信号量mutex来保证缓冲区的互斥使用。
设同步信号量s1、s2来保证R进程同W1、W2进程之间的同步关系。
semaphoremutex,s1,s2;
mutex.value=1;
s1.value=0;
s2.value=0;
R()
从输入设备读取数据i;
//申请打印机的使用权
将数据放入缓冲区B;
if(i%2!
=0)//如果数据为奇数,给W1发信号
else//如果数据为奇数,给W2发信号
W1()
//等待缓冲区满的信号
从缓冲区B中读取数据;
//释放缓冲区的使用权
W2()
wait(s2);
习题四答案
一、单项选择题
题号
答案
B
1.终端型
2.n*(m-1)+1或者n*m+1-n
3.上下文切换程序
4.对换功能
5.平均周转时间
6.高响应比优先
7.抢占式
8.源分配图不可完全约简
9.饥饿
10.在忙式等待条件下发生的饥饿,称为活锁。
1.作业调度的影响因素有哪些?
作业调度中应该考虑的因素主要有以下几方面。
公平性
(2)均衡使用资源(3)提高系统吞吐量(4)平衡系统和用户需求
2.在批处理系统、分时系统和实时系统中,各采用哪几种迚程(作业)调度算法?
批处理系统的调度算法:
短作业优先、优先权、高响应比优先、多级反馈队列调度算法。
分时系统的调度算法:
时间片轮转法。
实时系统的调度算法:
最早截止时间优先即EDF、最低松弛度优先即LLF算法。
3.在时间片轮转法中,应如何确定时间片的大小?
时间片的长短通常由以下4个因素确定:
(1)系统响应时间
(2)就绪队列进程数目(3)进程转换时间(4)CPU运行指令速度
4.在一个具有两个作业的批处理系统中,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的抢占式调度算法,有如表所示的作业序列(表中所列作业优先数即为进程优先数,数值越小优先级越高)
列出所有作业进入内存时间以及结束时间
计算平均周转时间
作业
到达时间
估计运行时间
优先数
10:
00
40分钟
20
30分钟
30
50分钟
50
20分钟
题中的每个作业运行将经历两级调度,作业调度和进程调度。
作业调度采用短作业优先调度算法,而进程调度采用基于优先数的抢占式调度算法,即高优先级的进程可以抢占处理机。
此外,只有在作业调度程序将作业装入内存后,在内存的作业才能参与进程调度,并且,本题中的批处理系统是两道作业系统,即内存中最多允许有两道作业。
本题的执行情况如下:
①10:
00时,作业A到达并投入运行。
②10:
20时,作业B到达且优先级高于作业A,故作业B投入运行而作业A进入就绪队列。
③10:
30时,作业C到达,因内存中已有两道作业,故作业C进入后备队列等待调度进入内存。
④10:
50时,作业B运行结束,作业D到达,因按短作业优先调度测略,作业D被装入内存进入就绪队列,而作业A优先级高于作业D,故作业A投入运行。
⑤11:
10时,作业A运行结束,作业C被调入内存,且作业C优先级高于作业D,故作业C投入运行⑥12:
00,作业C运行结束,作业D投入运行。
⑦12:
20时,作业D运行结束。
由上述分析可得出所有作业进入内存时的时间以及结束时间。
进入内存时间
结束时间
11:
10:
11:
12:
(2)各作业执行的周转时间为:
作业A:
70分钟
作业B:
作业C:
90分钟
作业D:
作业的平均周转时间为T=(70+30+90+90)/4=70分钟
5.在银行家算法中,若系统中出现如表4-26所示的资源分配情况:
表4-26系统资源分配情况
Allocation
Need
Available
ABCD
ABCD
P0
0032
0012
1622
P1
1000
1750
P2
1354
2356
P3
0332
0652
P4
0014
0656
该系统是否安全?
若进程P2此时提出资源申请(1,2,2,2),系统能否将资源分配给它?
为什么?
⑴该状态是安全的,因为存在一个安全序列<
P0P3P4P1P2>
。
下表为该时刻的安全序列表。
Work
Work+Allocation
Finish
1654
1987
19911
29911
0333
1654
1987
19911
29911
3121417
true
⑵若进程P2提出请求Request(1,2,2,2)后,系统不能将资源分配给它,若分配给进程P2,系统还剩的资源情况为(0,4,0,0),此时系统中的资源将无法满足任何一个进程的资源请求,从而导致系统进入不安全状态,容易引起死锁的发生。
习题五答案
11
1.物理、逻辑
2.紧凑
3.最佳置换算法、先进先出置换算法、最近最久未用置换算法
4.实现逻辑XXX到物理XXX的转换
5.可重入的
6.静态链接、运行时动态链接
1.
(1)有2个空闲分区,第1个从XXX280KB开始,容量20KB,第2个从XXX400KB开始,容量112KB。
(2)有2个空闲分区,第1个从XXX210KB开始,容量90KB,第2个从XXX470KB开始,容量42KB。
(3)若申请序列加上req(90KB),采用首次适应算法,仍有2个空闲分区,第1个从XXX280KB开始,容量20KB,第2个从XXX490KB开始,容量22KB。
采用最佳适应算法,有1个空闲分区,从XXX470KB开始,容量42KB。
2.逻辑XXX对应的物理XXX为BF6A。
3.共产生4次缺页中断,如下所示。
页面访问次序
页框
缺页标志
F
4.当页框数是3时,缺页中断次数为7。