操作系统概念习题集锦.docx
《操作系统概念习题集锦.docx》由会员分享,可在线阅读,更多相关《操作系统概念习题集锦.docx(24页珍藏版)》请在冰豆网上搜索。
操作系统概念习题集锦
1引论
小结
1.计算机系统由硬件和软件组成。
硬件是计算机系统的物质基础,操作系统是硬件之上的第一层软件,是支撑其他所有软件运行的基础。
2.多道程序设计是指在内存中同时存放多道程序,这些程序在管理程序的控制下交替运行,共享处理机及系统中的其他资源。
在单处理机系统中多道程序运行的特点是:
·多道:
计算机内存中同时存放多道相互独立的程序。
·宏观上并行:
同时进入系统的多道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕。
·微观上串行:
内存中的多道程序轮流占有CPU,交替执行。
3.操作系统是一组控制和管理计算机硬件和软件资源,合理地组织计算机工作流程,以及方便用户的程序的集合。
4.操作系统有三种基本类型,即批处理操作系统、分时操作系统及实时操作系统。
·批处理操作系统能对一批作业自动进行处理,在批处理系统中引入多道程序设计技术就形成了多道批处理系统。
多道批处理系统的主要特征是用户脱机使用计算机、成批处理及多道程序运行。
·在分时操作系统中,处理机的运行时间被分成很短的时间片,系统按时间片轮流把处理机分配给各联机作业使用,若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理机让给另一个作业使用,等待下一轮时再继续其运行。
分时系统的特征是同时性、交互性、独立性和及时性。
·实时系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作。
实时系统的主要特征是响应及时和可靠性高。
5.操作系统的特征是并发性、共享性、虚拟性及不确定性。
·并发是指两个或多个事件在同一时间间隔内发生。
·共享是指系统中的资源供多个用户共同使用。
·虚拟是指把一个物理实体变为若干个逻辑实体。
·不确定性是指系统中各种事件发生的时间及顺序是不可预测的。
6.操作系统的主要功能包括处理机管理、存储器管理、设备管理和文件管理。
处理机管理的主要功能包括:
进程控制、进程同步、进程通信及调度。
存储器管理的主要功能包括:
内存分配、内存保护、地址映射及内存扩充。
设备管理的主要功能包括:
设备分配、设备驱动及设备独立性。
文件管理的主要功能包括:
文件存储空间的管理、目录管理、文件操作管理及文件保护。
7.操作系统提供两种类型的用户接口:
命令接口提供一组操作命令供用户直接或间接控制作业的运行;程序接口提供一组系统调用供用户在程序中请求操作系统服务。
习题1
(1)什么是操作系统?
从资源管理的角度看,操作系统应具有哪些功能?
(2)操作系统有哪几种基本类型?
它们各有何特点?
(3)什么是多道程序设计技术?
多道程序设计技术的特点是什么?
(4)简述并发与并行的区别。
(5)简述操作系统在计算机系统中的位置。
(6)操作系统有哪些特征?
(7)操作系统是随着多道程序设计技术的出现逐步发展起来的,要保证多道程序的正确运行,在技术上要解决哪些基本问题?
(8)用户与操作系统之间存在哪几种接口?
(9)有一台计算机,具有1MB内存,操作系统占用200KB,每个用户进程各占200KB。
如果用户进程等待I/O的时间为80%,若增加1MB内存,则CPU的利用率提高多少?
(10)一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A先开始做,程序B后开始运行。
程序A的运行轨迹为:
计算50ms、打印100ms、再计算50ms、打印100ms,结束。
程序B的运行轨迹为:
计算50ms、输入80ms、再计算100ms,结束(假设开始时刻为0)。
试说明:
①两道程序运行时,CPU有无空闲等待?
若有,在哪段时间内等待?
为什么会等待?
②程序A、B有无等待CPU的情况?
若有,指出发生等待的时刻。
2进程描述与控制
小结
1.一个程序通常由若干个操作组成,这些操作必须按照某种先后次序执行,仅当前一个操作执行完成后才能执行后继操作,这类计算过程就是程序的顺序执行过程。
程序顺序执行时具有如下特征:
·顺序性:
处理机的操作严格按照程序所规定的顺序执行,当上一个操作完成后下一个操作才能开始。
·封闭性:
程序一旦开始运行,其执行结果不受外界因素影响。
·可再现性:
只要程序执行时的初始条件和执行环境相同,当程序重复执行时,都将获得相同的结果。
2.程序的并发执行是指若干个程序或程序段同时在系统中运行,这些程序或程序段的执行在时间上是重叠的,一个程序或程序段的执行尚未结束,另一个程序或程序段的执行已经开始。
程序并发执行时有如下特征:
·间断性:
程序在并发执行时具有“执行—暂停执行—执行”这种间断性的活动规律。
·失去封闭性:
并发执行的程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去封闭性。
·不可再现性:
程序并发执行时,由于失去了封闭性,也将导致失去其运行结果的可再现性。
3.进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。
进程具有以下特征:
·动态性:
进程是一个动态的概念,是程序在处理机上的一次执行过程。
·并发性:
多个进程实体同时存在于内存中,在一段时间内并发执行。
·独立性:
进程是能独立运行的基本单位,也是系统进行资源分配和调度的独立单位。
·异步性:
系统中的各进程以独立的、不可预知的速度向前推进。
·结构性:
从结构上看,进程由程序段、数据段和一个进程控制块组成。
4.进程控制块是描述进程属性的数据结构,进程控制块中通常包含进程名、进程当前状态、进程队列指针、程序和数据地址、进程优先级、CPU现场保护区、通信信息、家族关系、资源清单等信息。
5.进程有三种基本状态:
·就绪状态:
进程已获得除处理机外的所有资源,一旦获得处理机就可以立即执行。
·执行状态:
进程获得必要的资源并正在处理机上执行。
·阻塞状态:
进程因等待某事件的发生而暂时无法执行下去。
6.进程控制的职责是对系统中的所有进程实施有效的管理。
常见的进程控制原语有进程创建、进程撤消、进程阻塞和进程唤醒。
7.操作系统内核是基于硬件的第一次软件扩充。
现代操作系统中把一些与硬件紧密相关或运行频率较高的模块以及公用的一些基本操作安排在靠近硬件的软件层次中,并使它们常驻内存以提高操作系统的运行效率,通常把这部分软件称为操作系统内核。
操作系统内核的主要功能包括中断、时钟管理、进程管理、存储器管理、设备管理等。
8.原语是由若干条机器指令构成的一段程序,用以完成特定功能,这段程序在执行期间不可分割。
9.计算机系统中有两种运行状态:
核心态和用户态。
核心态是操作系统管理程序执行时机器所处的状态。
用户态是用户程序执行时机器所处的状态。
10.线程是进程内一个相对独立的、可调度的执行单元。
线程自己基本上不拥有资源,只拥有一点在运行时必不可少的资源(如程序计数器、一组寄存器和栈),但它可以与同属一个进程的其他线程共享进程拥有的全部资源。
习题2
(1)进程的定义是什么?
它最少有哪几种状态?
(2)什么是管态?
什么是目态?
(3)试画出下面四条语句的前趋图:
S1:
a=x+2;S2:
b=y+4;
S3:
c=a+b;S4:
d=c+6;
(4)试利用Bernstein条件证明解答题3中的语句S1和S2可以并发执行,而语句S3和S4不能并发执行。
(5)进程与线程的主要区别是什么?
(6)进程控制块何时产生?
何时消除?
它有什么作用?
(7)已知一个求值公式(A2+3B)/(B+5A),若A,B已赋值,试画出该公式求值过程的前趋图。
(8)试对下列系统任务作出比较:
①创建一个进程与创建一个线程;
②两个进程间通信与同一进程中两个线程间通信;
③同一进程中两个线程的上下文切换与不同进程中两个线程的上下文切换。
(9)在一个分时操作系统中,进程可能出现如图1所示的变化,请把产生每一种变化的具体原因填在表1的相应框中。
、
表1进程状态变化原因
变化
原因
(1)
(2)
(3)
(4)
(5)
图1进程状态变化图
3进程同步与通信
小结
1.进程之间的相互制约关系有两类:
直接制约及间接制约。
进程之间因相互合作而产生的制约关系称为直接制约关系,进程之间因共享资源而产生的相互制约关系称为间接制约关系。
2.一次仅允许一个进程使用的资源称为临界资源。
进程中访问临界资源的那段代码称为临界区。
3.对临界资源的访问过程可以分成四个部分:
进入区、临界区、退出区及剩余区。
4.访问临界资源的进程必须满足如下条件:
·当有若干进程要求进入它们的临界区时,应在有限时间内使一个进程进入临界区。
·每次至多有一个进程处于临界区内。
·进程在临界区内仅逗留有限的时间。
5.多个相互合作的进程在一些关键点上可能需要互相等待或互相交换信息,这种相互制约关系称为进程同步。
当一个进程正在使用某资源时,其他希望使用该资源的进程必须等待,当该进程用完资源并释放后,才允许其他进程去访问此资源,进程之间的这种相互制约关系为互斥。
6.锁是一个代表资源状态的变量,通常用0表示资源可用,用1表示资源已被占用。
利用锁机制解决互斥问题的方法是:
上锁、访问临界资源、开锁。
7.信号量由两个成员构成,其中一个是具有非负初值的整型变量,另一个是初始状态为空的队列。
除信号量的初值外,信号量的值仅能由P、V操作改变。
8.信号量值的含义是:
当其大于0时表示系统中当前可用资源的数目;当其小于0时,其绝对值表示系统中因请求该资源而阻塞等待的进程数目。
9.设s为一个信号量,P(s)的主要功能是:
先执行s=s-1;若s≥0则进程继续运行;若s<0则阻塞该进程,并将它插入该信号量的等待队列中。
V(s)的主要功能是:
先执行s=s+1;若s>0则进程继续执行;若s≤0则从该信号量等待队列中移出第一个进程,使其变为就绪状态并插入就绪队列,然后再返回原进程继续执行。
10.管程定义了一个数据结构和能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。
管程由局部于管程的共享数据结构说明、对这些数据结构进行操作的一组过程以及对这些数据结构设置初值的语句组成。
11.管程具有以下基本特性:
·局部于管程的数据只能被局部于管程内的过程所访问。
·一个进程只有通过调用管程内的过程才能进入管程访问共享数据。
·每次仅允许一个进程在管程内执行某个内部过程。
12.进程通信是指进程之间的信息交换。
高级进程通信方式是指进程之间以较高的效率传送大量数据。
13.目前常用的高级进程通信方式有:
共享存储器系统、消息传递系统以及管道通信系统。
14.根据消息传递系统实现方式不同可以分为:
·直接通信方式:
发送进程直接把消息发送给接收进程,并将它挂在接收进程的消息缓冲队列上,接收进程从消息缓冲队列中取得消息。
·间接通信方式:
发送进程把消息发送到信箱中,接收进程从信箱中取得消息。
习题3
(1)什么是临界资源?
什么是临界区?
对临界资源的访问有哪些原则?
(2)请给出P、V操作的定义。
如何用P、V操作实现进程间的互斥?
(3)请用P、V操作写出一个不会出现死锁的哲学家进餐问题的解?
(4)什么是管程?
它由哪几部分组成?
(5)高级进程通信方式有哪几类?
各自如何实现进程间通信?
(6)设有六个进程P1、P2、P3、P4、P5、P6,它们有如图3.5所示的并发关系。
试用P、V操作实现这些进程间的同步。
图3.5六个合作进程的并发关系
(7)有一单向行驶的公路桥,每次只允许一辆汽车通过。
当汽车到达桥头时,若桥上无车,便可上桥;否则需等待,直到桥上的汽车下桥为止。
若每一辆汽车为一个进程,请用P、V操作保证汽车按要求过桥。
(8)今有三个并发进程R、M、P,它们共享了一个可循环使用的缓冲区B,缓冲区B共有N个单元。
进程R负责从输入设备读信息,每读一个字符后,把它存入到缓冲区B的一个单元中;进程M负责处理读入的字符,若发现读入的字符中有空格符,则把它改成“,”;进程P负责把处理后的字符取出并打印输出。
当缓冲区单元中的字符被进程P取出后,则又可用来存放下一次读入的字符。
请用P、V操作为同步机制写出它们能正确并发执行的程序。
(9)在生产者-消费者问题中,如果对调生产者描述中的两个P操作会发生什么情况?
如果对调生产者描述中的两个V操作的顺序又会发生什么情况?
(10)一个快餐厅有4类职员:
①领班:
接受顾客点菜;②厨师:
准备顾客的饭菜;③打包工:
将做好的饭菜打包;④出纳员:
收款并提交食品。
每个职员可被看作一个进程,试用一种同步机制写出能让四类职员正确并发运行的程序。
(11)设公共汽车上,司机和售票员的活动分别如下:
①司机的活动:
启动车辆:
正常行车;到站停车。
②售票员的活动:
关车门;售票;开车门。
在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?
用信号量和P、V操作实现它们的同步。
(12)消息通信有哪几种方式?
试说明消息缓冲通信机构的基本工作过程。
4调度与死锁
小结
1.作业是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合,包括用户程序、所需的数据及命令等。
计算机系统在完成一个作业的过程中所做的一项相对独立的工作称为一个作业步。
2.调度有三个层次:
作业调度、进程调度和交换调度。
·作业调度的主要任务是按一定的原则从外存上处于后备状态的作业中选择一个或多个,给它们分配内存、输入/输出设备等必要的资源,并建立相应的进程,以使该作业具有获得竞争处理机的权利。
·进程调度的主要任务是按照某种策略和方法从就绪队列中选取一个进程,将处理机分配给它。
·交换调度的主要任务是按照给定的原则和策略,将处于外存对换区中的重又具备运行条件的进程调入内存,或将处于内存的暂时不能运行的进程交换到外存对换区。
3.周转时间是指从作业提交到作业完成之间的时间间隔。
带权周转时间是指作业周转时间与作业实际运行时间的比。
4.作业有提交、后备、运行和完成四种状态。
提交状态是指用户作业正由输入设备向系统外存输入。
后备状态是指作业在外存后备队列中等待调度。
运行状态是指作业在内存中运行。
完成状态是指作业已完成了其计算任务,正准备撤离计算机系统。
5.进程调度方式有两种:
抢占方式和非抢占方式。
·抢占方式是指当一个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要或紧迫的进程。
·非抢占方式是指当某一个进程正在处理机上执行时,即使有某个更为重要或紧迫的进程进入就绪队列,仍然让正在执行的进程继续执行,直到该进程完成或发生某种事件而进入阻塞状态时,才把处理机分配给更为重要或紧迫的进程。
6.常见的调度算法有:
·先來先服务:
按作业或进程到达的先后顺序进行调度。
·短作业优先:
按作业或进程运行时间的长短进行调度,优先调度运行时间最短的作业或进程。
·优先级调度算法:
按作业或进程的优先级进行调度,优先调度优先级高的作业或进程。
进程优先级分为两种:
静态优先级和动态优先级。
静态优先级是在创建进程时确定的,确定之后在整个进程运行期间不再改变。
动态优先级是指在创建进程时,根据进程的特点及相关情况确定一个优先级,在进程运行过程中再根据情况的变化调整优先级。
·时间片轮转调度算法用于进程调度,该算法将处理机时间分为很短的时间片,按时间片轮流将处理机分配给就绪队列中的各进程使用。
·高响应比优先调度算法主要用于作业调度,该算法选择响应比最高的作业投入运行。
·多级队列调度算法的思想是将就绪队列划分为若干个子队列,每个进程固定属于一个就绪队列,每个就绪队列采用一种调度算法,不同的队列可以采用不同的调度算法。
·多级反馈队列调度算法的实现思想是:
在系统中设置多个就绪队列,第1个队列的优先级最高,第2个队列次之,其余队列的优先级逐次降低;每个队列中进程的时间片与优先级成反比;当新进程进入系统时将它放入第1个队列末尾,按先来先服务的原则排队等待调度。
当轮到该进程执行时,如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第2个队列的末尾,依此类推,最后一个队列中使用时间片轮转调度算法;处理机调度采用抢占式优先级调度算法,当处理机正在执行第i个队列中的某进程时,若其处理机被抢占则该进程仍然回到第i个队列末尾。
7.死锁是指多个进程因竞争系统资源或相互通信而处于永久阻塞状态,若无外力作用,这些进程都将无法向前推进。
8.死锁产生的原因是竞争资源和进程推进顺序非法。
9.死锁产生有以下四个必要条件:
互斥条件、不剥夺条件、请求和保持条件、循环等待条件。
10.死锁的处理方法有以下几种:
忽略死锁、预防死锁、避免死锁、检测及解除死锁。
11.死锁的预防是通过设置某些限制条件以破坏产生死锁的四个必要条件之一来实现的,但互斥条件不能破坏。
12.死锁的避免是通过某种方法防止系统进入不安全状态来实现的。
银行家算法是典型的死锁避免算法。
13.通过对资源分配图的简化可以检测系统是否存在死锁。
常用的解除死锁方法有两种:
资源剥夺法、撤消进程法。
习题4
(1)产生死锁的必要条件是什么?
解决死锁问题常用哪几种措施?
(2)某进程被唤醒后立即投入运行,我们就说这个系统采用的是剥夺调度方法,对吗?
为什么?
(3)何谓高级调度、中级调度和低级调度?
(4)什么是有序资源分配方法?
为什么有序资源分配方法可以防止死锁?
(5)设系统中仅有一类独占型资源,进程一次只能申请一个资源。
系统中多个进程竞争该类资源。
试判断下述哪些情况会发生死锁,为什么?
1)资源数为4,进程数为3,每个进程最多需要2个资源。
2)资源数为6,进程数为2,每个进程最多需要4个资源。
(6)单道批处理系统中,有四个作业,其有关情况如表2所示。
若采用先来先服务、短作业优先、响应比高者优先调度算法,试分别计算其平均周转时间T和平均带权周转时间W。
表2作业的提交时间和运行时间
作业
J1
J2
J3
J4
提交时间/h
8.0
8.6
8.8
9.0
运行时间/h
2.0
0.6
0.2
0.5
(7)何谓JCB?
其作用是什么?
JCB至少包括哪些内容?
(8)在单CPU和两台输入/输出设备(I1,I2)多道程序设计环境下,同时有三个作业J1,J2,J3运行。
这三个作业使用CPU和输入/输出设备的顺序和时间如下所示:
J1:
I2(30ms);CPU(10ms);I1(30ms);CPU(10ms);I2(20ms)
J2:
I1(20ms);CPU(20ms);I2(40ms)
J3:
CPU(30ms);I1(20ms);CPU(10ms);I1(10ms)
假定CPU,I1,I2都能并行工作,J1优先级最高,J2次之,J3优先级最低,优先级高的作业可以抢占优先级低的作业的CPU,但不能抢占I1、I2。
试求:
1)三个作业从开始到完成分别需要多少时间?
2)从开始到完成的CPU利用率。
3)每种I/O设备的利用率。
(9)表3给出了系统某时刻的资源分配情况:
表3资源分配表
资源情况
进程
已分配资源
还需要的资源
剩余资源
r1r2r3
r1r2r3
r1r2r3
A
B
C
D
E
311
000
110
101
000
100
012
300
010
210
120
试问:
1)该状态是否安全?
2)如果进程B提出请求RequestB(0,1,0),系统能否将资源分配给它?
3)如果进程E提出请求RequestE(0,1,0),系统能否将资源分配给它?
(10)考虑一个共有150个存储单元的系统,如下分配给三个进程,P1最大需求70,己占有25;P2最大需求60,己占有40;P3最大需求60,己占有45。
使用银行家算法,以确定下面的每个请求是否安全。
如果安全,找出安全序列;如果不安全,给出结果分配情况。
1)P4进程到达,P4最大需求60,最初请求25个。
2)P4进程到达,P4最大需求60,最初请求35个。
(11)产生死锁的四个必要条件是否都是独立的?
或者一个或多个条件的成了蕴含了另一个或一些条件的成立?
(12)一个系统有m个同类资源,由n个进程共享,并且
1)Needi>0,对于i=1,2,…,n;
2)所有进程对该类资源的需求总和小于m+n,证明该系统无死锁。
5存储管理
小结
1.存储分配有三种方式:
直接分配方式、静态分配方式和动态分配方式。
直接分配指程序员在编写程序或编译程序对源程序编译时采用内存物理地址;静态分配指在作业装入内存时确定它们在内存中的位置,作业一旦进入内存后在整个运行过程中不能在内存中移动,也不能再申请内存空间;动态分配指在装入时确定作业在内存中的位置,但在其执行过程中可根据需要申请附加的内存空间。
2.程序中的地址称为逻辑地址,逻辑地址的集合称为地址空间;内存中物理单元的地址称为物理地址,物理地址的集合称为存储空间。
3.地址变换是指将作业地址空间中的逻辑地址变换成存储空间中的物理地址,也称为地址映射、地址重定位。
4.重定位分为两类:
静态重定位和动态重定位。
静态重定位是在程序装入时进行重定位;动态重定位是在程序执行过程中,每当访问指令或数据时,将要访问的逻辑地址转换成物理地址。
5.单一连续分配是一种最简单的存储管理方式,这种存储管理方式将内存分为两个连续存储区域,其中的一个存储区域固定分配给操作系统使用,另一个存储区域给用户作业使用。
6.按分区数目的变化情况可将分区存储管理划分为:
固定分区存储管理和动态分区存储管理。
固定分区存储管理将内存空间划分为若干个固定大小的分区,每个分区中可以装入一道程序;动态分区存储管理是在作业进入内存时,根据作业的大小动态地建立分区,并使分区的大小正好适应作业的需要。
7.目前常用的动态分区分配算法有以下四种:
首次适应算法、循环首次适应算法、最佳适应算法及最坏适应算法。
·首次适应算法要求空闲分区按地址递增的次序排列,在进行内存分配时,从空闲分区表或空闲分区链首开始顺序查找,直到找到第一个能满足其大小要求的空闲分区为止。
然后,再按照作业大小从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍然留在空闲分区表或空闲分区链中。
·循环首次适应算法是首次适应算法的变形,在为作业分配内存空间时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到第一个能满足其大小要求的空闲分区为止。
然后,再按照作业大小从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍然留在空闲分区表或空闲分区链中。
·最佳适应算法要求空闲分区按容量大小递增的次序排列,在进行内存分配时,从空闲分区表或空闲分区链首开始顺序查找,直到找到第一个能满足其大小要求的空闲分区为止。
然后,再按照作业大小从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍然留在空闲分区表或空闲分区链中。
·最坏适应算法要求空闲分区按容量大小递减的次序排列,在进行内存分配时,先检查空闲分区表或空闲分区链中的第一个空闲分区,若第一个空闲分区小于作业要求的大小,则分配失败;否则从该空闲分区中划出与作业大小相等的一块内存空间分配给请求者,余下的空闲分区仍然留在空闲分区表或空闲分区链中。
8.动态分区存储管理系统中,分区回收时有四种情况:
上邻接、下邻接、上、下邻接和不邻接,前三种情况下还需要进行分区的合并。
9.碎片是指内存中无法利用的存储空间。
碎片分为内部碎片和外部碎片:
内部碎片是指分配给作业的存储空间中未被利用的部分,外部碎片是指系统中无法利用的小存储块。
10.拼接是指通过移动把多个分散的小分区拼接成一个大分区。
11.存储保护是为了防止一个作业有意或无意地破坏操