思考与练习题参考答案.docx
- 文档编号:5183478
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:20
- 大小:52.85KB
思考与练习题参考答案.docx
《思考与练习题参考答案.docx》由会员分享,可在线阅读,更多相关《思考与练习题参考答案.docx(20页珍藏版)》请在冰豆网上搜索。
思考与练习题参考答案
第1章操作系统概述思考与练习题参考答案
1.选择题
(1)C
(2)D(3)C(4)C(5)B(6)C(7)B(8)C(9)B(10)B
(11)A
2.填空题
(1)硬件软件
(2)存储管理设备管理
(3)软硬件资源
(4)批处理操作系统分时操作系统实时操作系统
(5)20ms时间片轮转调度算法
3.判断题
(1)×
(2)×(3)√(4)×(5)×(6).√(7)√(8)√
4.问答题
(1)简述操作系统的概念
答:
操作系统是一组能控制和管理计算机系统的硬件和软件资源,合理地组织计算机工作流程并为用户使用计算机提供方便的程序和数据的集合。
(2)什么是批处理系统为什么要引入批处理系统
答:
批处理系统指用户的作业成批的处理,作业建立、过渡、完成都自动由系统成批完成。
因为1958~1964年,晶体管时代,计算机速度、容量、外设品种和数量等方面和第一代计算机相比都有了很大发展,计算机速度有几十倍、上百倍的提高,故使手工操作的慢速度和计算机运算的高速度之间形成一对矛盾。
只有设法去掉人工干预,实现作业自动过渡,这样就出现了成批处理。
(3)什么叫多道程序试述多道程序涉及技术的基本思想及特征,为什么对作业进行多道批处理可以提高系统效率
答:
多道程序设计技术是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制下,相互穿插交替运行。
当某道程序因某种原因不能继续运行下去时,管理程序就将另一道程序投入运行,这样使几道程序在系统内并行工作,可使中央处理机及外设尽量处于忙碌状态,从而大大提高计算机使用效率。
在批处理系统中采用多道程序设计技术形成多道批处理系统,多个作业成批送入计算机,由作业调度程序自动选择作业运行,这样提高了系统效率。
(4)何为分时系统简述其特点。
答:
分时系统采用时间片轮转法,使一台计算机同时为多个终端服务。
特点:
多路性。
若干个终端连接到计算机上,系统按分时原则为每个用户服务。
宏观上多用户同时工作,共享系统资源。
微观上,每个用户作业轮流在CPU上运行。
独立性。
各用户独立地使用一台终端工作,彼此互不干扰。
用户感觉自己在独占使用计算机。
及时性。
用户的请求能在较短时间内得到响应。
分时系统的响应时间指用户发出终端命令到系统响应,做出应答所需要的时间。
此时间需要在用户能接受的范围之内,通常为2至3秒。
交互性。
在分时系统中,用户能与计算机进行对话,以交互的方式进行工作。
用户可联机对文件进行编辑,对源程序进行编译、链接,对程序进行调试,运行程序等活动。
(5)分时系统和实时系统有何不同
答:
分时系统控制的主动权在计算机,计算机按一定时间间隔,以固定时间片或不固定时间片去轮流完成多个提交的任务,只是在用户反应相对较慢时,不感到机器“走开”。
而实时系统控制的主动权在用户,用户规定什么时间要计算机干什么,计算机不能“走开”。
分时系统通用性强,交互性强,及时响应性要求一般(通常数量级为秒);实时系统往往是专用的,系统与应用很难分离,常常紧密结合在一起,实时系统并不强调资源利用率,而更关心及时响应性(通常数量级为毫秒或微秒)、可靠性等。
(6)实现多道程序解决哪些问题
答:
首先包括分时使用硬件的硬件设计技术:
CPU和通道分时使用内存、只读存储器和数据通道等;通道与通道分时使用CPU、内存、通道的公用控制部分等;同一通道中的I/O又分时使用内存、通道等。
其次包括共享硬件和软件资源的软件设计技术:
包括引入“进程”“线程”等技术。
(7)设在内存中有三道程序A、B和C,并按A、B、C的优先次序运行,其在CPU上运行时间以及I/O时间分别为:
A:
计算30ms,I/O40ms,计算10ms
B:
计算30ms,I/O50ms,计算10ms
C:
计算20ms,I/O40ms,计算20ms
试画出按多道程序运行的时间关系图(调度程序的执行时间忽略不计),完成这三道程序共花多少时间比单道运行节省多少时间(假定运行环境为单CPU,每个程序所用的I/O设备相同,比如打印机)
答:
三道程序共花180ms,比单道(80+90+80)ms=250ms节省了110ms。
(8)简述Winodws操作系统的发展历史。
(略)
(9)简述Linux操作系统的发展历史。
(略)
(10)简述UNIX系统操作系统的发展历史。
(略)
第2章处理器管理思考与练习题参考答案
1.选择题
(1)A
(2)D(3)B(4)C(5)D(6)D(7)C(8)B
(9)D(10)C(11)D(12)A(13)C(14)D(15)B(16)D
2.填空题
(1)数据段PCB
(2)运行时间短等待时间长
(3)并行并发。
(4)资源分配调度
(5)阻塞
(6)共享存储区消息机制
(7)阻塞
(8)向前推进。
(9)后备
(10)可剥夺非剥夺
3.判断题
(1)√
(2)×(3)√(4)×(5)×(6)×(7)×(8)×
(9)√(10)√(11)×(12)×(13)×(14)×(15)×
4.问答题
(1)简述进程和程序之间的区别和联系。
答:
进程和程序是既有区别又有联系的两个概念。
1)进程是动态的,程序是静态的。
程序是一组有序的指令集合,是一个静态的概念;进程则是程序及其数据在计算机上的一次执行,是一个动态的集合。
离开了程序,进程就失去了存在的意义,但同一程序在计算机上的每次运行将构成不同的进程。
程序可看作是电影的胶片,进程可以看作电影院放电影的过程。
2)一个进程可以执行多个程序,如同一个电影院的一场电影可放映多部影片。
3)一个程序可被多个进程执行,如同多个影院同时利用一个电影的胶片放映同一部电影。
4)程序可以长期保存,进程只能存在于一段时间。
程序是永久存在的,而进程有从被创建到消亡的生命周期。
(2)为什么将进程划分成运行、就绪和阻塞三个基本状态
答:
根据多道程序执行的特点,进程的运行是走走停停的。
因此进程的初级状态应该是执行和等待状态。
处于执行状态的进程占用处理机执行程序,处于等待状态的进程正在等待处理机或者等待其它某种事件的发生。
但是,当处理机空闲时,并不是所有处于等待状态的进程都能放到处理机上执行,有的进程即使分配给它处理机,它也不能执行,因为它的执行的条件没有得到满足。
因此,将等待状态的进程分成两部分,一部分是放在处理机上就能立即执行,这就是就绪的进程;另一部分是仍需等某种事件发生的进程,即使放在处理机上也不能执行的进程,这就是阻塞进程。
(3)进程控制块PCB的作用是什么它主要包含哪些内容
答:
操作系统管理的进程是多种多样的,要对这些进程实施有效的管理,必须对进程进行抽象。
为了便于系统控制和描述进程的活动,在操作系统核心为进程定义了一个进程控制块PCB。
PCB用于描述进程的基本情况以及进程运行和变化的过程,它与进程一一对应。
当系统创建进程时,为进程分配一个PCB;在进程运行过程中,系统通过PCB对进程实施管理和控制;进程结束时,系统将收回PCB。
PCB中的内容主要包括调度信息和现场信息两大部分。
调度信息包括进程名、进程号、优先级、当前状态、资源信息、程序和数据的位置信息、隶属关系和各种队列指针信息等。
现场信息主要包括程序状态字、时钟寄存器和界限寄存器等描述进程运行情况的信息。
(4)简述创建进程的大致过程
解创建一个进程大体分以下几步:
1)申请一个空白的PCB和唯一的进程标识号pid
2)为新进程分配除CPU以外的资源,包括内存空间;
3)初始化PCB中的数据项,包括标志信息、状态信息、控制信息等;
4)将新进程的PCB插入系统的就绪队列。
(5)为何引入线程线程与进程的关系是什么
答:
在操作系统中引入进程的目的,是为了使多个程序并发执行,以改善资源利用率及提高系统的吞吐量;那么,在操作系统中再引入线程则是为了减少程序并发执行时所付出的时空开销,使操作系统具有更好的并发性。
线程具有许多传统进程所具有的特征,故又称为轻型进程(Light-WeightProcess)或进程元;而把传统的进程称为重型进程(Heavy-WeightProcess),它相当于只有一个线程的任务。
在引入了线程的操作系统中,通常一个进程都有若干个线程,至少需要有一个线程。
(6)何谓进程通信试列举几种进程通信方式。
答:
进程之间的信息交换,就是进程通信。
进程同步与互斥,就实现了进程之间交换信息,但由于交换的信息量少,可以看作是低级通信。
并发执行的进程,有交换信息的各种需要,除同步与互斥外,还可采用其它的通信方式。
介绍几种常用的通信方式:
共享存储、消息传递、共享文件。
(7)进程的三个基本的转换如下图所示,图中1、2、3、4分别代表某种类型状态变迁,请分别回答:
1)什么事件引起各状态之间的变迁
2)系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,试判断变迁3——1、2——1、3——2、4——1、3——4是否存在因果关系
答:
1)引起各变迁的事件如下:
变迁1:
正在执行的进程从处理机上退下,导致进程调度程序从就绪状态的进程中选取一个进程。
变迁2:
正在执行的进程所分配的时间片用完,导致进程从处理机上退到就绪状态;或者在可抢占优先级的进程调度中,有更高有先级的进程进入就绪状态,导致正在执行的进程从执行状态退到就绪状态。
变迁3:
进程需要等待事件的发生;
变迁4:
进程所等待的某事件发生了(如I/O完成);
2)可能发生的因果变迁
3——1:
由于处于运行状态的进程转入阻塞状态,进程调度程序根据调度算法,又从就绪队列中选择一个进程投入运行;
2——1:
由于处于运行状态的进程时间片用完,重新转入就绪状态,从而使进程调度程序又从就绪队列中选择一个进程投入运行;
3——2:
此种变化不存在;
4——1:
4的发生与1的发生没有必然关系;
3——4:
3的发生和4的发生没有必然关系。
(8)下表给出了4个作业J1、J2、J3、J4的提交时间、运行时间,试分别采用FCFS、SJF和HRRF调度算法,求出在各种作业调度算法下作业的平均周转时间和平均带权周转时间。
表14个作业的提交时间和运行时间表
作业名
提交时间
运行时间/h
J1
10:
00
2
J2
10:
18
1
J3
10:
48
J4
11:
00
解:
采用FCFS作业调度算法时,根据这4个作业提交作业的先后顺序依次运行,每个作业的周转时间和带权周转时间如表2所示。
表2FCFS调度算法性能表
作业名
提交时间
运行时间/h
开始时间
完成时间
周转时间/h
带权周转时间
J1
10:
00
2
10:
00
12:
00
2
1
J2
10:
18
1
12:
00
13:
00
J3
10:
48
13:
00
13:
30
J4
11:
00
13:
30
14:
18
作业的平均周转时间=(2+++)h/4=
作业的平均带权周转时间=(1+++)/4=
采用SJF作业调度算法时,每个作业的周转时间和带权周转时间如表3所示。
表3SJF调度算法性能表
作业名
提交时间
运行时间/h
开始时间
完成时间
周转时间/h
带权周转时间
J1
10:
00
2
10:
00
12:
00
2
1
J2
10:
18
1
13:
18
14:
18
4
4
J3
10:
48
12:
00
12:
30
J4
11:
00
12:
30
13:
18
作业的平均周转时间=(2+4++)h/4=
作业的平均带权周转时间=(1+4++)/4=
采用HRRF作业调度算法时,每个作业的周转时间和带权周转时间如表4所示。
当时间为10:
00时,仅有作业J1,J1先运行。
当作业J1结束后,此时系统中存在3个作业,计算这3个作业J2、J3、J4的响应比,分别为、、。
作业J3的响应比高,作业J3运行。
当作业J3结束后,系统中剩下2个作业,计算这2个作业J2、J4的响应比,分别为、。
作业J2的响应比高,运行作业J2。
作业J2运行结束后,运行作业J4。
表4HRRF调度算法性能表
作业名
提交时间
运行时间/h
开始时间
完成时间
周转时间/h
带权周转时间
J1
10:
00
2
10:
00
12:
00
2
1
J2
10:
18
1
12:
30
13:
30
J3
10:
48
12:
00
12:
30
J4
11:
00
13:
30
14:
18
作业的平均周转时间=(2+++)h/4=
作业的平均带权周转时间=(1+++)/4=
(9)引起进程调度的主要因素主要有哪些
答:
1)一个进程运行完毕;
2)一个正在运行的进程被阻塞;
3)在抢占式调度中,一个高优先级的进程被创建;
4)在抢占式调度中,一个高优先级进程由阻塞被唤醒;
5)在轮转式调度中,正在运行的进程运行完一个时间片。
第3章进程同步与死锁思考与练习题参考答案
1.选择题
(1)C
(2)A(3)C(4)B,A(5)B,D(6)A(7)A(8)B
(9)B(10)C(11)D(12)B(13)A(14)D(15)D(16)A
(17)B(18)A
2.填空题
(1)环路等待条件。
(2)临界资源。
(3)P、V等待
(4)可用资源数目等待该资源的进程数。
(5)等待
(6)PV
(7)进程
(8)安全不安全
(9)信箱头信箱体
(10)低级高级
3.判断题
(1)√
(2)×(3)√(4)√(5)√(6)×(7)×(8)√
(9)×(10)×(11)√(12)×
4.问答题与计算分析题
(1)在多道程序系统中程序的执行失去了封闭性和再现性,因此多道程序的执行不需要这些特性,这种说法是否正确
答:
这种说法不正确。
可以想象,如果一个程序在多道程序系统中,在相同的输入的情况下,多次执行所得结果是不同的,有谁还敢使用这个程序因此,多道程序的执行也需要封闭性和再现性,只不过单道程序系统的封闭性和再现性是先天固有的,多道程序系统的程序执行要想获得封闭性和再现性,需通过程序员的精心设计才能得到。
所使用的方法就是同步和互斥的方法。
(2)多个进程对信号量S进行了5次P操作,2次V操作后,现在信号量的值是-3,与信号量S相关的处于阻塞状态的进程有几个信号量的初值是多少
解:
因为S的当前值是-3,因此因为S处于阻塞状态的进程有3个;
因为每进行一次P(S)操作,S的值都减1,每执行1次V操作S的值加1,故信号量的初值为-3+5-2=0;
(3)设公共汽车上,司机和售票员的活动分别为:
司机的活动为启动车辆,正常行车,到站停车;售票员的活动为关车门,售票,开车门。
试问:
在汽车不断地到站、停车、行驶过程中,司机和售票员的活动是同步关系还是互斥关系并用信号量和P、V操作实现他们间的协调操作。
解:
在这个问题中,司机与售票员间是并行操作的,司机和售票员各自的操作是顺序进行的。
因此司机是一个进程,售票员是一个进程,它们之间是合作关系,即同步关系。
根据一般常识,司机和售票员在车上的操作规则如下:
售票员操作的规则是只有司机停车后,售票员才能开门让乘客上下车;
司机操作的规则是只有售票员关门后,司机才能启动开始行驶汽车。
根据同步规则以及操作流程确定信号量的个数是2个,S1和S2。
S1的含义是否关门,其初值为0,表示开门,其值若为1表示关门;
S2的含义是否停车,其初值为1,表示停车,其值若为0表示开车。
司机在的操作:
在开车前看是否关门若没关则等待,这是一个P(S1)操作;若门关,则开车。
到达一个站点,则停车,这是一个V(S2)操作;
售票员的操作:
看是否停车若没停则等待,这是一个P(S2)操作;若停则开门,这是一个V(S1)操作。
司机与售票员的协调操作描述如下:
intS1=0;
intS2=1;
main()
{
cobegin
driver();
busman();
coend
}
driver()
{
while
(1)
{
P(S1);
启动车辆;
正常行车;
到站停车;
V(S2);
}
}
busserver()
{
while
(1)
{
关车门;
V(S1);
售票;
P(S2);
开车门;
上下乘客;
}
}
(4)在OS中引入管程的目的是什么
答:
在OS中引入管程的目的是为了更简便、更可靠地解决进程之间的同步、互斥问题。
在未引入管程之间,进程间的同步、互斥问题是由程序员处理的。
例如,在临界区的前后插入P、V操作。
但是,由程序员处理同步、互斥问题有可能引入种种人为的错误。
管程主要是管理对共享数据的操作和使用,即把对共享数据互斥使用的控制这一任务从程序员身上,交由编译程序去处理,这样既方便了编程,又不会产生人为的同步、互斥上的错误。
(5)一售票厅只能容纳300人,当少于300人时,可以进入;否则,需在外等候。
若将每一个购票者作为一个进程,请用P、V操作编程,并写出信号量的初值。
解:
信号量S的初值为300;
intS=300
main()
{
P1();
P2();
……
Pn();
}
P1()
{
P(S);
进入售票厅;
购票;
退出售票厅;
V(S);
}
……
Pn()
{
P(S);
进入售票厅;
购票;
退出售票厅;
V(S);
}
(6)设A、B为两个并发进程,它们共享一个临界资源,其执行临界区的算法框图如下图所示。
试判断该算法是否有错请说明理由。
如果有错,请改正。
设S1、S2的初值为0,CSA、CSB为临界区。
解:
该算法有错。
若A进程永不要求访问临界资源,则不会执行V(S1),意味着B进程的申请永远得不到操作临界资源的机会;同理,若B进程不要求访问临界资源,则不会执行V(S2),意味着A进程下次也得不到操作临界资源的机会。
所以问题在于本应进行互斥控制而使用的却是同步控制。
实现改正如下:
设置信号mutex,初值为1;
(7)消息缓冲通信机制有什么好处试述消息缓冲通信的过程。
解消息缓冲通信机制不仅能较好地解决进程间的同步互斥问题,还能交换大量信息,是理想的进程通信工具,而且操作系统隐藏了进程通信的实现细节,即通信过程对用户是透明的,这样就大大地简化了通信程序编制上的复杂性。
消息缓冲通信的过程如下:
当某个进程需要向另一个进程发送消息时,便向系统申请一个消息缓冲区,并把要发送的数据送到消息缓冲区,然后把该消息缓冲区插入到接受进程的消息队列中。
接受进程在接受消息时,只要从本进程的消息队列中摘下该消息缓冲区,即可从中取下所需的信息,然后把该消息缓冲区交还给系统。
(8)桌上有一空盘,只允许存放一个水果。
爸爸可向盘中放苹果,也可向盘中放桔子。
儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。
规定当盘中空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。
解在本题中,应设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为1;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。
同步描述如下:
intS=1;
intSa=0;
intSo=0;
main()
{
cobegin
father();
son();
daughter();
coend
}
father()
{
while
(1)
{
P(S);
将水果放入盘中;
if(放入的是桔子)V(So);
elseV(Sa);
}
}
son()
{
while
(1)
{
P(So);
从盘中取出桔子;
V(S);
吃桔子;
}
}
daughter()
{
while
(1)
{
P(Sa);
从盘中取出苹果;
V(S);
吃苹果;
}
}
(9)按序分配是防止死锁的一种策略。
什么是按序分配为什么按序分配可以防止死锁
解
按序分配是适应于动态分配的一种分配方法。
为了避免产生死锁,系统将所有资源进行编号,并规定进程请求资源时,严格按照设备编号的大小,比如由小到大的顺序进程申请。
如果某进程第n号资源没有获得,则进程不能请求第j(j>n)号资源。
(系统也可以规定由大到小的请求次序。
)
因为按序分配可以破坏环路等待条件,因此可以防止死锁。
(10)有四个进程(P1,P2,P3和P4)和三类资源(R1,R2和R3)在T0时刻的资源分配情况如表3-9所示,
(1)检查此刻的系统状态是否安全。
(2)若在T0时刻之后,进程P3发出资源请求(1,0,1),即P3申请一个单位的R1和一个单位的R3,系统能否将资源分配给P3呢
表3-9T0时刻的资源分配表
资源
进程
Max
Allocation
Need
Available
R1R2R3
R1R2R3
R1R2R3
R1R2R3
P1
322
100
222
112
P2
613
511
102
P3
314
211
103
P4
422
002
420
解:
(1)从表1分析可知,可用资源数能满足进程P2,当P2运行结束后,释放它所占有的资源,使可用资源数目变为(6,2,3)。
此刻,可用资源可满足其他任一进程,若将可用资源分配给进程P1,P1结束后,可用资源数变为(7,2,3)。
再将可用资源分配给进程P3,P3结束后,可用资源数变为(9,3,4)。
最后将可用资源分配给进程P4,P4结束后,可用资源数变为(9,3,6)。
因此,系统在T0时刻是安全的。
(2)由于P3请求资源数(1,0,1)小于可用资源数(1,1,2),因此现有资源能满足P3的要求。
系统先假定为P3分配资源,则可用资源数变为(0,1,1)。
修改相关数据,如表2所示。
表P3申请资源后的资源分配表
资源
进程
Max
Allocation
Need
Available
R1R2R3
R1R2R3
R1R2R3
R1R2R3
P1
322
100
222
011
P2
613
511
102
P3
314
312
002
P4
422
002
420
此刻,可用资源数(0,1,1)无法满足任一个进程的需要,故系统进入不安全状态,因此,系统不能为P3分配资源。
(11)利用管程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 思考 练习题 参考答案