操作系统课后习题汇总.docx
《操作系统课后习题汇总.docx》由会员分享,可在线阅读,更多相关《操作系统课后习题汇总.docx(41页珍藏版)》请在冰豆网上搜索。
![操作系统课后习题汇总.docx](https://file1.bdocx.com/fileroot1/2023-1/1/01f47c91-8e1d-4ea5-935b-968a67870c11/01f47c91-8e1d-4ea5-935b-968a67870c111.gif)
操作系统课后习题汇总
第一章
1.什么是操作系统?
它的重要性在什么地方?
答:
不严格的定义:
1)首次加载在硬件之上的
2)并控制和管理计算机系统内各种硬件和软件资源
3)有效地组织各程序运行的系统软件,或程序集合
操作系统是加载在硬件之上,支持其它软件,并控制和管理计算机系统内各种硬件和软件资源,有效地组织各程序运行的系统软件,或程序集合。
它的重要性就在于起到了承上启下的作用,使得计算机得到了扩充成为了虚拟机。
2.看待操作系统的观点有哪几种?
你更看重哪一种观点?
答:
虚拟机观点、资源管理观点、人机交互观点
3.从资源管理的观点的角度,操作系统主要研究哪些问题?
答:
资源的使用状态
资源的分配原则和调度策略
资源的回收
4.操作系统追求的目标是什么?
答:
方便性、有效性、可扩展性
5.操作系统的主要功能有那些?
答:
存储器管理功能
处理机管理功能
文件管理功能
设备管理功能
用户接口
6.批处理有几种类型,都促进了哪些方面的件的发展?
答:
联机批处理:
脱机批处理:
促进了输入输出标准程序和程序库、装配程序、覆盖技术等
7.何谓联机I/O,何谓脱机I/O?
联机I/O就是作业从卡片机上传送到磁带上,再从磁带上调入内存,以及结果的输出,这些都是由处理机(CPU)来完成的。
脱机I/O就是在主机之外另设一台功能较为简单的小型卫星机。
该机只与外部设备打交道,使得主机从烦琐的输入输出操作中解放出来,使得主机可与卫星机、外部设备并行工作。
8.为什么引入多道程序(设计)?
内存可同时存放多个用户作业,并可使它们交替运行,这样,在需要I/O操作而暂停运行时,系统可以选择另一个程序运行,从而保证了CPU的忙碌状态,也实现了CPU与I/O设备的并行,提高系统资源利用率和系统效率。
9.是什么原因推动了分时系统的发展,其主要特点是什么?
是人们希望人——机交互、共享主机和方便上机的请求产生了推动了分时系统的发展。
其主要特点是以下几个方面:
1)多路性/同时性。
2)交互性。
3)独占性。
4)及时性。
10.实时系统的特点是什么,它与分时相似和不同之处在哪里?
实时系统的特点是对时间的严格限制和要求。
与分时相似和不同之处主要在4个方面:
1)实时系统通常属于专用系统,是面向特定领域、特定任务的。
而分时系统一般都是通用的系统,面向众多领域,因而它们面向的对象不同。
2)交互性不同;分时系统具有较强的交互作用,而实时系统则相对要差的多,提供的交互命令较简单,它仅仅允许终端操作员访问数量有限的专用服务程序。
也不存在分时系统的资源共享。
3)对系统响应时间要求不同;虽然实时信息系统与分时系统对系统响应时间具有类似的要求,但在实时控制方面,实时系统要求实时性,对时间要求严格,一般都联系一个截止时间,所面向的对象是所监测或控制的外部设备,而不是一般的终端用户。
4)可靠性不同;虽然分时系统也要求系统可靠,但实时系统要求的可靠性更高,实时系统中通常都进行硬件和软件方面的冗余(如双主机的硬件冗余,多份程序、数据拷贝的软件冗余等)。
11.实时系统的主要应用对象是什么?
实时系统的主要应用对象有两个大的方面:
1)实时控制;如工业生产过程控制,医疗控制、飞机导航、导弹和卫星发射、铁路交通控制等
2)实时信息处理。
12.何谓通用操作系统,后台的任务通常是什么类型?
兼有实时、分时和批处理中的两种,或三种处理能力,从而形成了通用操作系统。
后台的任务通常是批处理任务。
13.你认为操作系统的基本类型有哪几种?
操作系统的基本类型有三种;即批处理系统、分时系统和实时系统。
14.网络操作系统与分布式操作系统相同与不同之处在哪里?
相同之处有两点:
(1)由多个分散的计算机经网络连接而成的统一的计算机系统。
(2)具有通信能力。
不同之处为:
(1)网络操作系统无分布式处理。
(2)分布式系统可以并行处理多个子任务,以达到共同完成某个任务,加快了整体任务的完成,网络操作系统没有。
15.你认为现代的Windows98,WindowsXP等操作低通是否是面向多用户的?
否。
16.嵌入式操作系统基本特征是什么?
基本特征主要有4个方面:
系统内核小、专用性强、系统精简和高实时性操作系统。
17.多处理机系统的两种结构的特点是什么?
1)紧耦合多处理机;通过共享主存来实现处理机间通信的。
多处理机的主存都采
用模m多体交叉存取结构(m为存储分体的个数)。
系统中的所有资源和进程都由操作系统实施统一的控制和管理。
2)松散耦合多处理机;不同的处理机间或者通过通道互连实现通信,以共享某些外部设备;或者通过通信线路来交换通信信息,这时各台处理机拥有自己的外部设备。
在松散耦合系统中,每台处理机也都配备有操作系统来管理本地的资源和进程,因此,每台处理机能够独立运行
18.什么是用户不可见寄存器?
程序计数器、指令寄存器、状态字寄存器、存储管理控制寄存器等用于控制处理器的操作,在内核模式(操作系统模式、核心态、管态)下由某些机器指令访问。
19.操作系统为什么设置系统态和用户态?
特权指令在何种状态下可以执行,为什么?
操作系统要有特殊的权利以控制和管理整个系统有条不紊地运行,则这种特殊权利的标识就是处理机状态。
特权指令在系统态下执行,因为为了不影响系统统一控制和管理,也为了用户程序之间彼此“互不干涉”所必须的。
20.操作系统最基本的特征是什么?
操作系统最基本的特征是并发性、主要共享性和异步性。
21.可重入(再入)程序与一般程序有什么不同?
列举你认为的可重入程序?
可重入(再入)程序一定是个可共享程序,且有两个特征:
1) 运行过程中不能修改自身指令。
2) 调用者自带数据区。
编辑和编译程序是典型的可重入(再入)程序。
22.是什么原因使得操作系统具有异步特征?
由并发和共享带来了异步性。
23.你认为并行与并发有何不同,在单处理机中,下面并行和并发现象哪些可能发生,哪些不可能发生?
(1)用户程序与用户程序之间的并行;
(2)用户程序与用户程序之间的并发;
(3)处理机与设备之间的并行;
(4)设备与设备之间的并行。
你认为在你使用微机上的Windows操作系统时,你一边写Word文档,一边在听音乐,这两件事属于并行,还是并发?
微机上的Windows操作系统时,一边编写Word文档,一边在听音乐,这两件事属于并发。
24.有两道程序A、B按如图1.11(a)以多道程序方式运行,并假定A、B各自利用不同的I/O设备,起始时首先运行B,并允许忽略监督程序/操作系统切换A、B的时间。
要求在图1.11(b)画出它们的运行轨迹,并计算在60ms内,CPU的利用率。
1.11(a)
1.11(b)
第二章
2.1什么是操作系统与用户的接口?
有哪几种类型?
其主要功能是什么?
程序接口和操作接口两种方式,程序接口调用操作系统的服务和功能;操作接口是操作系统为用户操作控制计算机工作和提供服务的手段集合。
2.2什么是系统调用?
试比较系统调用与一般的过程调用,系统调用与库函数和实用程序的区别
系统调用是用户程序或其他系统程序获得操作系统服务的唯一途径。
用户程序或其他程序通过系统调用就可以访问系统资源,调用系统操作功能,而不必了解操作系统内部结构和硬件细节。
区别:
调用形式不同、被调用代码的位置不同、提供方式不同、调用的实现不同、返回方式不尽相同
2.3UNIX(Liunx)的shell有何特点?
请举例说明shell的使用。
2.4解释程序、作业和作业步。
程序是具有特定功能的一组指令或语句的集合,体现出CPU执行的操作步骤;
作业是用户在一次解题或一个事务处理过程中要求计算机系统所做的工作的集合;
计算机系统在完成一个作业的过程中所做的一项相对独立的加工步骤成为作业步。
2.5作业的控制方式有哪几种?
批处理作业和交互式作业
2.6在一个多道系统中,一个作业从提交给系统到运行结束退出系统,通常要经历哪几个阶段和哪些状态?
提交、运行、完成3个阶段,后备、活动、完成3种状态
2.7什么是作业控制块,由谁建立,其作用是什么?
作业控制块是作业管理中最主要的数据结构,是作业存在的唯一标志。
由系统输入程序建立
2.8选择作业调度算法应考虑哪些问题?
1)单位时间内运行尽可能多的作业。
如果想实现该目标,每次调度就选择尽可能短的作业先运行,这样每个作业的运行时间都较少,自然单位时间内运行的作业多。
但是,这样对于比较长的作业可能就比较吃亏,因为它们要等待很长时间。
2)使处理机保持“忙”。
如果想实现这个目标,就要选择计算量大的作业先运行,那么势必使得输入输出设备空闲。
3)使输入输出设备充分使用。
只有选择I/O繁忙的作业,I/O设备才能充分使用,那么是不是意味着CPU又闲了呢?
4)对所有的作业都是公平合理的。
2.9在多道环境下,作业被调入内存是否就意味着立即开始运行,为什么?
第三章
3.1多道程序可以提高系统效率,是否在内存中尽可能多地存放多个程序,为什么?
如果内存中可同时运行的程序过多,相互等待被其他程序占用的设备资源使系统效率更差。
3.2操作系统通过什么概念来刻画程序的并发执行、资源分配及随机性?
进程
3.3试画出下面5条语句的前驱图:
S1:
x=5;S2:
y=x+8S3:
z=x+yS4:
a=x+y+zS5:
b=y+a
3.4从多个程序在单处理机上执行的角度来考察,并发的含义是什么?
3.5有下面的5条语句,试画出前驱图:
S1:
a=x+10;S2:
b=a+10S3:
c=4*xS4:
d=b+cS5:
e=d+5
3.6在书中给出的有关进程描述中,它们所具有的本质是什么?
进程是一个动态的执行过程。
3.7并发运行因为什么发生结果不可再现性?
失去了封闭性
3.8进程的基本特征是什么?
动态性,并发性,独立性,异步性和结构性
3.9进程的构成中,PCB是属于系统还是用户的部分,它的作用是什么?
3.10为什么说PCB是操作系统感知进程存放的唯一标志?
3.11用户进程所执行的程序一定是用户自己编写的应用程序,这句话是否正确?
否
3.12进程的3个基本状态是什么?
怎样从进程状态的角度理解进程的“走走停停”?
3.13进程如果正常执行结束,为什么还要在系统中设置一个完成状态,而不直接从系统中退出消亡?
需要结果输出及系统记账等善后
5
3.14有进程状态转换(变迁)如图3.33表示,图3.33中的数字表示一种形式的状态转换。
试判别下述诸条件是否成立?
为什么?
1
2
3
1→2;1→3;2→1;
2→4;3→1;3→4;
4→1;4→2;4→3;
4
5→1;5→4;
其中,条件式x→y表示若进程产生状态转换x,则导致另一个进程产生状态转换y(x,y=1,2,3,4,5)
3.15引入挂起状态的理由是什么,给出一个挂起的时机(任意就绪,阻塞活动状态下)。
3.16为什么可以出现从各种状态的进程直接进去完成状态?
3.17操作系统为什么需要考虑处理机的执行模式,通常由用户模式进去系统模式的时机是什么?
3.18解释原语的含义,如果原语是由一段程序构成,为什么说原语是不能并发执行的?
不是说系统内多个程序(进程)可以并发执行吗?
3.19给出一个唤醒进程的时机,并说明可以由谁唤醒一个在阻塞态的进程。
3.20进程之间的制约关系有几种,请分别给出每一种制约关系在现实生活中的具体缘由和例子。
3.21引入线程的根本原因是什么?
3.22从调度、资源分配对进程和线程进行比较。
3.23用户级线程与内核级线程最主要的区别是什么?
第四章
4.1强迫性中断与自愿性中断的主要区别是什么?
强迫性中断这类中断事件是正在运行的程序(进程)所不知的。
这类中断的发生与否,何时发生都是事先所无法预知的,因而执行的程序可能在任意位置被打断。
自愿性中断这类中断事件是正在运行的程序事先有意识安排的。
它们通常由于正在运行的程序执行访管指令(或系统调用)而引起的,其目的是要求系统为其提供某种服务。
这类中断的发生具有必然性,而且发生的位置确定。
4.2试说明时钟中断对于程序、作业管理的作用。
①进程管理:
在采用时间片轮转处理机调度算法的系统中,记录进程已占用处理机时间,并判断时间片是否用完。
在采用可抢占CPU动态优先数处理机调度算法中,重新计算各进程的优先数,并判断是否有高优先数(与当前运行的进程优先数比较)进程出现。
②作业管理:
记录作业在输入井中等待的时间,以及目前的优先级别,以便作业
调度程序据此决定下一个将要进入系统执行的作业。
4.3试说明中断是进程切换的必要条件,但不是充分条件。
进程切换是在系统模式下,是通过硬/软中断进入系统模式的,但中断不一定产生进程切换,如在非强占机制下,尽管发生I/O外部中断使得一个进程可能从阻塞队列进入就绪队列,但不能立刻强占CPU,即发生进程切换。
4.4为什么在中断发生时要保存当前被中断进程的PC和PSW,IBMPC上在中断发生后,硬件上都保存哪些内容?
因为PC和PSW当前进程的CPU现场,是下次运行的初始环境。
IBM PC机上在中断发生后,硬件上都保存:
CS,IP,PSW。
4.5何谓中断向量,用户在多道程序系统下是否可修改中断向量,为什么?
每个中断处理程序都有一个入口地址(PC←存放于系统固定单元中的地址),及其运行环境(PSW)。
当中断事件发生时,中断装置根据中断类别自动地将对应的PSW和PC分别送入程序状态字和程序计数器中,如此便转入到对应的中断处理程序。
这个转移类似于向量转移,因而PSW和PC也可以被称为中断向量。
用户在多道程序系统下不可修改中断向量,因为中断、中断向量和中断处理程序是由系统控制和管理的,对用户是透明的。
4.6你认为在多道程序系统下,用户程序是否可以执行“关中断”和“屏蔽中断”指令.为什么?
用户程序不可以执行“关中断”和“屏蔽中断”指令,因为中断是由系统控制和管理的,用户不感知中断;否则将造成系统混乱(无统一管理者)。
4.7如果没有中断,是否可以实现多道程序设计,为什么?
不能,因为如果一个进程被调度执行就一直执行下去而不会被打断,就不会存在多个进程交替运行。
4.8高级调度与低级调度各自的任务是什么,何时需要中级调度,中级调度的目的是什么?
高级调度的任务就是选择一个或多个作业投入系统活动空间中,即从静止空间进入活动空间,准备在CPU上运行。
低级调度的任务就是选择一个处在活动空间中的一个就绪进程调度到CPU上执行。
在需要进行进程的程序和数据交换时需要中级调度的时机,中级调度的目的就是缓解内存紧张状况,将一个或多个进程的全部或部分程序和数据交换到外存的交换区上。
4.9如果系统存在系统级线程,低级调度的单位是什么,如果系统不存在系统级线程,低级调度的单位是什么?
如果系统存在系统级线程,则低级调度的单位是线程,如果系统不存在系统级线程,低级调度的单位是进程。
4.10请你给出低级调度的三个时机,即何时会产生低级调度。
一个进程执行结束、当前进程由于请求I/O进入阻塞、以及分时系统中时间片到。
4.11在抢占方式的系统中,何时会产生抢占?
当一个进程从阻塞队列进入就绪队列时、以及创建一个新进程时等。
4.12判别下列各结论的正确与错误,并说明你的理由。
(1)若系统限定一个进程在CPU调度方式。
上一次只能执行一个时间片,则系统采用的是抢占式
正确,因为时间片到是一种强占机制
(2)若只当一个进程执行完了它的任务,式调度方式。
系统才重新进行调度,则系统采用的是非抢占
正确,因为中间未被打断过(强占)
(3)若现行进程需要等待某个事件时,的是抢占式调度方式。
系统立即将CPU转交给其他进程,则系统采用的是抢占式调度方式。
否,因为是由进程主动放弃CPU的。
(4)实时系统通常采用抢占式调度方式.
正确,因为需要及时响应高级中断事件。
4.13解释CPU用率、吞吐率、作业的周转时间和进程的周转时间,以及作业带权周转时间。
单位时间内CPU运行时间所占比例。
单位时间内完成任务的个数。
作业进入系统到完成的时间;
进程初始进入就绪队列到完成的时间。
作业周转时间与运行时间的比。
4.14如果某调度算法获得了平均周转时间最小,能否说明该算法必定是最佳的,该结论是否成立,请说明你的理由。
平均周转时间最小将导致单位时间内系统吞吐率高,因而该算法是最佳的。
4.15周转时间与响应时间有何不同?
周转时间一般是指从进入到完成的时间。
响应时间一般是指从进入到准备开始响应的时间(分时系统否)
4.16设在批处理系统中,有4道作业,它们进人系统的时刻及运行时间如表4.11
表4.114道作业进入系统的时刻及运行时间
作业
到达时间
运行时间
开始时间
完成时间
周转时间
带权周转时间
A
10.0
2
B
10.0
1
C
10.30
1
D
10.50
0.5
(1)请证明SJF算法导致最短的平均周转时间。
(2)分别求出下列算法各作业的执行顺序,以及平均周转时间、带权周转时间。
FCFS,S7F>HRN,SRT算法。
4.17下述结论是否正确?
为什么?
(1)SJF属于公平调度算法。
(2>越短的作业,或进程,应越优先服务。
(3)由于SJF优先服务短者,故可用于分时系统。
4.18假定RR算法调度一个进程所需的CPU时间的平均值为a,讨论下述情况对时间片q不同的设置将导致什么结果,或产生什么影响;
(1)q=∝;
(2)q稍大于0;(3)q=a
4.19实时调度算法中最重要的参考依据是什么?
实时调度算法中最重要的参考依据是截止时间。
4.20目前常用的调度算法能否应用到实时系统中?
不能。
4.21在实时系统中,采用不可抢占处理机的优先级调度算法与采用可抢占处理机的优先级调度算法的区别是什么?
区别是否存在快速的外部事迹中断响应。
可抢占处理机的优先级调度算法要求系统具有快速响应外部事件中断的能力。
一旦出现外部中断,只要当前任务未处于临界区,便能立即剥夺当前任务的执行,把处理机分配给请求中断的紧迫任务;而不可抢占处理机的优先级调度算法一旦调度某个进程运行就一直运行下去,直到完成,或自我终止。
4.22紧耦合与松散耦合多处理机系统的区别是什么?
区别就在于是否通过主存进行数据交换。
紧耦合是通过主存进行数据交换,而松散耦合是通过通信线进行的数据交换。
4.23Linux系统中进程分为几种状态?
其中TASK_RUNNING的含义是什么?
4.24Linux系统都涉及什么样的调度算法?
第五章
5.1何谓与时间有关的错误?
举例说明。
并发进程的执行实际上是进程活动的某种交叉,某些交叉次序可能得到错误结果。
由于具体交叉的形成与进程的推进速度有关,而速度是时间的函数,因而将这种错误称为与时间有关的错误。
例子略。
5.2什么是临界资源?
什么是临界区?
一次仅允许一个进程使用的资源称为临界资源;在每个进程中,访问临界资源的那段程序称为临界区。
5.3试分析临界区的大小与系统并发性之间的关系。
关于同一组变量的临界区是不能并发执行的代码,临界区越大,并发性越差,因而编写并发程序应尽量缩小临界区域范围。
5.4为何开关中断进程互斥方法仅在单CPU系统中是有效的?
关中断方法不适用于多CPU系统,因为关中断只能保证CPU不由一个进程切换到另外一个进程,从而防止多个进程并发地进入公共临界区域。
但即使关中断后,不同进程仍可以在不同CPU上并行执行关于同一组共享变量的临界区代码.
5.5进程的互斥和同步有什么异同点?
进程的同步和互斥是指进程在推进时的相互制约关系。
进程同步源于进程合作,是进程间共同完成一项任务是直接发生相互作用的关系。
是进程之间的直接制约关系。
进程互斥源于对临界资源的竞争,是进程之间的间接制约关系。
5.6试说明进程互斥、同步和通信三者之间的关系。
进程的同步和互斥是指进程在推进时的相互制约关系,已经在上题中给出了详细的解答。
由于进程间存在制约关系,为了保证进程的正确运行以及相互合作进程间的信息交换,就需要进程之间进行通信。
进程通信是指进程间的信息交换,分为高级通信和低级通信,高级通信以较高的效率传送大批数据。
进程之间的互斥与同步也是一种通信,由于交换的信息量很小,因此这种进程通信称为低级进程通信。
5.7同步机构应遵循哪些基本准则?
a.空闲让进.b.忙则等待.c.有限等待.d.让权等待.
5.8试从物理概念上说明信号量P、V操作的含义。
P(S)表示申请一个资源,S.value>0表示有资源可用,其值为资源的数目;S.value=0表示无资源可用;S.value<0,则|S.value|表示S等待队列中的进程个数。
V(S)表示释放一个资源,信号量的初值应该大于等于0。
5.9由V操作唤醒的进程是否一定能够直接进入运行状态?
举例说明。
否。
一般来说,唤醒是将进程状态由等待状态变成就绪状态,而就绪进程何时获得处理机则是由系统的处理机调度策略确定的。
如果采用抢占式优先级调度算法,并且被唤醒的进程是当前系统中优先级最高的进程,那么该进程将被调度执行,其状态变成运行态。
如果该进程不是系统中优先级最高的进程或系统采用其它调度算法,那么该进程不会被调度执行,其状态将维持在就绪态。
5.10现为某临界区设置一把锁W,当W=1时,表示关锁;W=0时,表示锁打开。
试写出开锁原语和关锁原语,并利用它们去实现互斥。
开锁原语:
voidunlock(W)
{W=0;}
关锁原语:
voidlock(W)
{while(W==1){};
W=1;}
利用开关锁原语实现互斥:
semaphoreW=0;
main()
{cobeginPn()/*并发的进程P1、P2、……Pn*/
{lock(W);
临界区;unlock(W);
其余部分;}
……
coend}
5.11试写出相应的程序来描述图5.8所示的前驱图。
(a)(b)
图5.8前驱图
设6个同步信号量f1、f2、f3、f4、f5、f6分别表示进程S1、S2、S3、S4、S5、S6是否执行完成,其初值均为0。
这7个进程的同步描述如下:
主程序如下:
semaphorefl=f2=f3=f4=f5=f6=0;
main()
{cobegin
S1();
S2();
S3();
S4();
S5();
S6();
S7();
coend}
各个进程的语句形式如下:
5.12在生产者-消费者问题中,如果缺少了V(full)或V(empty),对执行结果会有何影响?
生产者可以不断地往缓冲池送消息,如果缓冲池满,会覆盖原有数据,造成数据混乱。
而消费者始终因P(full)操作将消费进程直接送