os习题参考.docx
- 文档编号:6544636
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:21
- 大小:95.59KB
os习题参考.docx
《os习题参考.docx》由会员分享,可在线阅读,更多相关《os习题参考.docx(21页珍藏版)》请在冰点文库上搜索。
os习题参考
OS试题参考
Ch1
1.什么是操作系统的基本功能?
操作系统是控制和管理计算机硬件和软件资源,合理组织计算机工作流程以及方便用户的程序的集合。
操作系统主要有四大功能:
存储器管理:
内存分配、地址映射、内存保护和内存扩充。
处理机管理:
作业和进程调度、进程控制和进程通信。
设备管理:
缓冲区管理、设备分配、设备驱动和设备无关性。
文件管理:
文件存储空间的管理、文件操作的一般管理、目录管理、文件的存取控制。
2.什么是批处理、分时系统和实时系统?
各有什么特征?
批处理操作系统:
其工作方式是用户将作业交给系统操作员,系统操作员将许多用户的作业组成一批作业,之后输入到计算机中,启动操作系统,执行每个作业,最后由操作员将作业结果交给用户。
批处理操作系统特点:
①多道:
(注:
多道指某个作业占用CPU,用到某种程度由于某种原因暂时不用CPU则操作员将把第二个作业放入CPU。
)②成批处理:
用户自己不能干预自己作业的运行,一旦发现作业错误不能及时改正,并延长开发软件时间,所以适用于成批的程序。
分时操作系统:
其工作方式是一台主机连接了若干个终端,每个终端有一个用户在使用并且是交互式的向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,操作系统以时间片为单位,轮流对每个终端用户服务,每次服务一个时间片。
分时操作系统特点:
多路性(同时有多个用户使用一台计算机。
宏观上看是多个人同时使用一个CPU;微观上是多个人在不同时刻轮流使用CPU)、交互性(用户根据系统响应结果进一步提出新请求,即用户直接干预每一步)、“独占”性(用户感觉不到计算机为其他人服务)、及时性(系统对用户提出的请求及时响应)
实时操作系统:
所谓“实时”,是表示“及时”,而实时系统是指系统能及时响应外部事件的请求在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
实时系统的一个主要特点在于有严格的时间限制,即每一个信息接收、分析处理和发送的过程必须在规定的时间范围内完成。
分时系统通用性强,交互性强,及时响应性要求一般(通常数量级为秒);实时系统往往是专用的,系统与应用很难分离,常常紧密结合在一起,实时系统并不强调资源利用率,而更关心及时响应性(通常数量级为毫秒或微秒)、可靠性等。
3.讨论操作系统可以从哪些角度出发,如何把它们统一起来?
可以从不同的观点来观察操作系统的作用。
从一般用户的观点,可把操作系统看做是用户与计算机硬件系统之间的接口;从资源管理观点,则可把OS视为计算机系统资源的管理者。
①用户界面的观点:
对于用户来说,对操作系统的内部结构并没有多大的兴趣,他们最关心的是如何利用操作系统提供的服务来有效的使用计算机。
因此操作系统提供了什么样的用户界面成为关键问题。
一般情况下,用户界面有两种方式:
命令方式和系统调用方式
②资源管理观点:
这种观点把操作系统看作管理系统资源的程序集合,根据它所管理的资源类别来考虑操作系统的结构。
它在共享的前提下,以资源的分配、使用和回收作为出发点,来考虑操作系统各部分程序的功能和算法,解决并行环境中资源的管理问题。
通常,把操作系统分为处理机管理、存储管理、作业管理、设备管理、文件管理等五个主要部分,由这几部分程序的协调配合运行来完成用户的作业要求。
③虚拟机观点:
对于任何一个软件来说,它都有一个用户机器和一个基本机器。
用户机器是该软件和基本机器的结合,提供了该软件以及基本机器的的所有功能。
基本机器则是该软件运行的环境。
操作系统的用户机器提供了操作系统的全部功能(系统调用、命令、作业控制语言等等),又称操作系统虚机器。
它的基本机器则是硬件机器。
虚机器观点从功能分解的角度出发来考虑操作系统的结构,将操作系统分成若干个层次,每一层次完成特定的功能从而构成一个虚机器,并为上一层次提供支持,构成它的运行环境,通过逐个层次的功能扩充最终完成操作系统虚机器。
从而向用户提供全套的服务,完成用户的作业要求。
CPU空B等待CPU空
CPUABAB
INPUTB
OUTPUTAA
50ms100ms150ms200ms250ms300ms时间
4.设一计算机系统有输入机一台、打印机两台,现有A、B两道程序同时投入运行,且程序A先运行,程序B后运行。
程序A的运行轨迹为:
计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。
程序B的运行轨迹为:
计算50ms,输入数据80ms,再计算50ms,结束。
要求:
①用图画出这两道程序并发执行时的工作情况。
②说明在两道程序运行时,CPU有无空闲等待?
若有,在哪段时间内等待?
为什么有空闲等待?
③程序A、B运行时有无等待现象?
在什么时候会发生等待现象?
Ch2
1.操作系统为用户提供哪些接口?
对于用户来说,对操作系统的内部结构并没有多大的兴趣,他们最关心的是如何利用操作系统提供的服务来有效的使用计算机。
因此操作系统提供了什么样的用户界面成为关键问题。
一般情况下,用户界面有两种方式:
(1)命令方式。
这是指由OS提供了一组联机命令(语言),用户可通过键盘键入有关的命令,来直接操作计算机系统。
(2)系统调用方式。
OS提供了一组系统调用,用户可在应用程序中通过调用相应的系统调用来操作计算机。
2.什么是系统调用?
描述系统调用的主要实现过程。
系统调用是操作系统提供给软件开发人员的唯一接口,开发人员可利用它使用系统功能。
OS核心中都有一组实现系统功能的过程(子程序),系统调用就是对上述过程的调用。
图1系统调用的处理过程
(1)设置系统调用号和参数,然后执行trap指令。
☐调用号作为指令的一部分(如早期UNIX),或装入到特定寄存器里(如:
DOSint21h,AH=调用号。
)
☐参数装入到特定寄存器里,或以寄存器指针指向参数表(内存区域)。
(2)人口的一般性处理。
☐保护CPU现场,改变CPU执行状态(处理机状态字PSW切换,地址空间表切换)
☐将参数取到核心空间
(3)查入口跳转表,跳转到相应功能的过程
(4)恢复CPU现场,将执行结果装入适当位置(类似于参数带入),执行中断返回指令
3.为什么要区分机器的两种运行状态(用户态和核态)?
用户态下运行的进程通过何种机制进入核态?
计算机系统中,CPU执行两类性质不同的程序。
一类是用户程序或系统外层的应用程序,另一类是操作系统程序。
这两类程序的作用不同,后者是前者的管理者和控制者。
显然,如果对两类程序给予同等“待遇”,则对系统的安全极为不利(普通指令和特权指令),所以操作系统享有用户程序所不能享有的某些特权。
因此,将CPU的运行状态分为核态和用户态,操作系统在核态下运行(允许执行所有指令),而外层用户程序在用户态下运行,特权指令一般不允许在用户态下执行。
用户态程序通过系统调用进入核态。
4.调用是OS与用户程序的接口,库函数也是OS与用户程序的接口,这句话对吗?
为什么?
不正确,系统中的各种资源都由操作系统统一掌管,故在用户程序中凡是与资源有关的操作郡必须通过某种方式向0S提出服务请求,由0S代为完成。
于是0S必须提供某种形式的接口,以便让用户程序通过接口使用系统提供的各种功能。
这种接口称为系统调用。
可见系统调用可以看成是用户在程序一级请求0S为之服务的一种手段。
而库函数则是在程序设计语言中,将一些常用的功能模块编写成函数,放在函数库中供公共选用。
函数库的使用与系统的资源分配并无关系,仍属用户程序而非0S程序,其功能的实现并不由0S完成,且运行时仍在用户状态而非系统状态。
Ch3
1.操作系统中为什么要引入进程的概念?
为了实现并发进程间的合作和协调工作,以及保证系统的安全,操作系统在进程管理方面应做哪些工作?
程序并发执行时,产生了一些新特征:
(1)间断性。
程序在并发执行时,由于它们共享资源、或为完成同一项任务而相互合作,致使在并发程序这间形成了相互制约关系,相互制约将导致并发程序具有“执行-暂停-执行”这种间断性的活动规律;(2)失去封闭性。
程序在并发执行时,是多个程序共享一台机器,因而机内资源的状态将由多个程序来改变,因此使程序的运行已失去了封闭性,这样,导致了结果不可再现性。
为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,而专门为之配置了一个称为“进程控制块”的数据结构。
其中,存放了进程标识符、进程运行的当前状态、程序和数据的地址,以及能保存该程序运行时CPU的环境信息。
由程序段、数据段及进程控制块三部分构成了进程的实体。
为了实现并发进程间的合作和协调工作,系统必须协调多个相关进程的执行次序,实现进程互斥与同步,系统中应设置专门的同步机制,所有同步机制都应遵循下述四条准则:
①空闲让进。
临界资源空闲时,允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。
②忙则等待。
当临界资源正被访问时,其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。
③有限等待。
对要求访问临界资源的进程,应能在有限的时间内进入自己的临界区,以免陷入“死等”状态。
④让权等待。
当进程不能进入临界区时,应立即释放处理机,以免进程“忙等”。
2.什么是进程?
进程与程序的区别是什么?
进程是可并发执行的具有一定功能的程序段在给定数据集上的一次执行过程。
进程和程序的联系与区别:
(1)联系。
程序是构成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序,如果没有程序,进程就失去了其实际存在的意义。
从静态的角度看,进程是由程序、数据和进程控制块三部分组成的。
(2)区别。
程序是静态的,而进程是动态的。
进程既是程序的执行过程,因而进程是有生命期的,有诞生,亦有消亡。
因此,程序的存在是永久的,而进程的存在是暂时的,动态地产生和消亡。
一个进程可以执行一个或几个程序,一个程序亦可以构成多个进程。
例如,一个编译进程在运行时,要执行词法分析、语法分析、代码生成和优化等几个程序,或者一个编译程序可以同时生成几个编译进程,为几个用户服务。
进程具有创建其他进程的功能,被创建的进程称为子进程,创建者称为父进程,从而构成进程家族。
3.什么是临界区?
试举一临界区的例子。
诸进程在访问临界资源时,必须互斥。
我们把每个进程中访问临界资源的那段代码称为临界区。
为了实现对临界区的互斥访问,应保证诸进程互斥地进入自己的临界区。
为此,每个进程在进入其临界区前,必须先提出申请,经允许后方可进入。
(例子略)
4.用于进程控制的原语主要有哪些?
说明进程创建的主要功能是什么?
进程和处理机管理的一个重要任务是进程控制。
所谓进程控制,就是系统使用一些具有特定功能的程序段(内核)来创建、撤消进程以及完成进程各状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。
在操作系统中,通常把进程控制用程序段做成原语。
用于进程控制的原语有:
创建原语、撤消原语、阻塞原语、唤醒原语等。
无论是系统或是用户创建进程都必须调用创建原语来实现。
创建原语的主要功能是创建一个指定标识符的进程。
主要任务是形成该进程的进程控制块PCB。
所以,调用者必须提供形成pcb的有关参数,以便在创建时填入。
这些参数是:
进程标识符、进程优先级、本进程开始地址等。
5.进程有哪几种基本状态?
试画出进程状态变迁图,并标明发生变迁的可能原因。
1.进程的基本状态:
由进程运行的间断性,决定了进程至少具有下述三种基本状态:
①就绪状态当进程已分配到除CPU以外的所有必要的资源后,只要能再获得处理机,便能立即执行,把进程这时的状态称为就绪状态。
在一个系统中,可以有多个进程同时处于就绪状态,通常把它们排成一个队列,称为就绪队列。
②执行状态指进程已获得处理机,其程序正在执行。
在单处理机系统中,只能有一个进程正在执行状态。
③阻塞状态进程因发生某事件(如请求I/O、申请缓冲空间等)而暂停执崐行时的状态,亦即进程的执行处于受到阻塞,故称这种暂停状态为阻塞状态,有时也称为“等待”状态,或“睡眠”状态。
通常将处于阻塞状态的进程排成一个队列,称为阻塞队列。
2.进程状态的转换:
I/O请求或等待某事件
处于就绪状态的进程,在进程调度程序为之分配了处理机之后,便由就绪状态转变为执行状态。
正在执行的进程也称为当前进程。
如果因时间片已完而被暂停执行时,该进程将由执行状态转变为就绪状态;如果因发生某事件而使进程的执行受阻(例如,进程请求访问某临界资源,而该资源正被其他进程访问),使之无法继续执行,该进程
将由执行状态转变为阻塞状态。
下图给出了进程的三种基本状态及各状态之间的转变。
进程调度
进程的三种基本状态及其转换
需要说明的是,处于执行状态的进程因等待某事件而变为阻塞状态时,当等待的事件发生之后,被阻塞的进程并不恢复到执行状态,而是先转变到就绪状态,再由调度程序重新调度执行。
原因很简单,当该进程被阻塞后,进程调度程序会立即把处理机分配给另一个处于就绪状态的进程。
6.什么是进程的互斥与同步?
互斥与同步这两个概念有什么联系与区别?
进程的同步与互斥是指进程在推进时的相互制约关系。
在多道程序系统中,由于资源共享与进程合作,这种进程间的制约成为可能。
进程同步:
它主要源于进程合作,是进程间共同完成一项任务时直接发生相互作用的关系。
为进程之间的直接制约关系。
在多道环境下,这种进程间在执行次序上的协调是必不可少的。
进程互斥:
它主要源于资源共享,是进程之间的间接制约关系。
在多道系统中,每次只允许一个进程访问的资源称为临界资源,进程互斥就是保证每次只有一个进程使用临界资源。
7.n个并发进程共用一个公共变量Q,写出用信号灯的p、v操作实现n个进程互斥时的程序描述,并说明信号灯的取值范围。
信号灯的取值范围为[1,-(n-1)]。
n个进程互斥时的程序描述如下:
main()pi()
{{
beginp(s)
s=1;…
cobeginv(s)
p1();p2();……;pn();}
coend其中I=1,2,…,n。
}即n个进程的程序描述是一样的。
8.试用p、v操作描述协调理发师和顾客之间的同步问题:
某个理发店有一间n个椅子的理发厅。
当没有顾客时,理发师去睡觉。
如果有顾客进来时,理发师正在睡觉,这个顾客会叫醒他。
可将此题看作是N个生产者和一个消费者问题。
顾客作为生产者,每到来一个,就应将自己放入计数器RC,以便让理发师消费至最后一个产品(顾客),因此顾客进程执行的第一个语句便是RC=RC+l。
而第一个到来的顾客应负责唤醒理发师,理发师此时正在信号量WAKEUP上等待(P(WAKEUP);该信号量初值为0),由第一个顾客执行V(WAKEUP)。
若该顾客不是第一个到达,则在信号量WAIT上等待(P(WAIT);该信号量初值为0),等到理发师处理完前一个顾客后,执行V(WAIT)便可叫出该顾客理发。
以上过程循环往复,理发师每处理完一个顾客,就令计数器RC减l,RC=0便知此时无顾客,理发师可继续睡觉,等待下一批顾客的到达。
再设信号量MUTEX(初值为1),保证对计数器RC的互斥使用。
进程如下:
Cobegin
顾客进程:
begin
P(mutex);
rc=rc+l;
ifrc=1thenV(wakeup);
elseP(wait);
V(wakeup);
理发;
end;
理发师进程:
begin
P(wakeup);
Repeat
理发;
P(mutex);
rc=rc-l;
ifrc=1thenV(wait);
V(wakeup);
Untilrc=0;
end;
Coend.
9.某数据库有一个写进程,N个读进程,他们之间读写操作的互斥要求是:
①写进程正在写数据库时,不能有其他进程读该数据库。
②读进程之间不互斥,可以同时读该数据库。
③如果有若干进程正在读该数据库,一个写进程正等待写,则随后欲读的进程也不能读该数据库,需等待写进程先写。
请用信号灯及p、v操作描述这一组进程的互斥及工作过程。
该题规则③与往常的读写问题不一样。
一般情况是,当有读进程在访问时,后来的读进程可源源不断地进人数据库,这往往会造成写进程饿死,而本题却考虑到写进程的利益,即当有写进程请求访问时,后来到达的读进程不可进人数据库,此时需要设置一变量wc用来记录是否有请求访问数据库的写迸程,若有,则禁止读进程进人数据库。
Cobegin
读者进程:
Begin
Whilewc=ldoskip;
P(mutex);
rC:
二FC+l;
ifrc=1thenP(wr);
V(mutex);
Reading;
P(mutex);
rc:
=rc+l;
ifrc=0thenV(wr);
V(mutex);
End;
写者进程:
begin
wc:
=1;
P(wr);
writing;
wc:
=0;
V(wr);
end;
Coend.
wc记录是否有写进程提出访问请求;rc为计数器,记录正在访间的读进程个数,后来到达的读进程若发现wc=l,则不得进人对况的修改操作,尽管此时可能有读进程正在访问数据库;rc、wc初值为0,wr为互斥访问数据库的信号量,初值为l,mutex为互斥访问rc的信号量,初值为1。
10.桌上有一只盘子,最多可容纳2个水果,每次只能放入或取出一个水果。
爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,儿子专等吃盘子中的橘子,女儿专等吃盘子中的苹果。
请用p、v操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。
盘子为互斥资源,因可以放两个水果,empty初值为2;father放苹果前先看看有无空间,若有则抢盘子,放入apple后向女儿发信号(V(apple));mother放橘子前先看看有无空间,若有则抢盘子,放入橘子后向儿子发信号(V(omnge));女儿先看有无苹果,若有则抢盘子,取走苹果后将盘子置空(V(empty));儿子先看有无橘子,若有则抢盘子,取走橘子后将盘子置空。
该题是生产者/消费者问题的变形,有两对生产者和消费者。
生产者需指明是给哪个消费者的产品,但消费者取走产品后无须特别通知某个生产者,因为空出的缓冲区(盘子)可由两个生产者随意争夺。
设信号量mutex初值为1,控制对盘子的互斥访问;apple表示盘中苹果个数,orange表示盘中橘子个数;初值均为0。
Cobegin
father进程:
Begin
P(empty);
P(mutex);
放苹果;
V(mutex);
V(apple);
End;
mother进程:
Begin
P(empty);
P(mutex);
放橘子;
V(mutex);
V(orange);
End;
daughter进程:
Begin
P(apple);
P(mutex);
放苹果;
V(mutex);
V(empty);
End;
son进程:
Begin
P(orange);
P(mutex);
放橘子;
V(mutex);
V(empty);
End;
Coend.
11.产生死锁的原因和必要条件是什么?
解决死锁问题可破坏必要条件的哪几条,分别采用何种算法?
产生死锁的原因是:
①资源数量不足;②进程推进不合理。
必要条件有四个:
互斥条件、不剥夺条件、部分分配、环路条件。
解决死锁问题可破坏四个必要条件之一即可,采用的算法有:
有序资源分配法,银行家算法等。
12.一系统具有150个存储单元,在T0时刻按下表所示分配给3个进程。
进程
最大需求的存储单元数
当前已分配的存储单元数
P1
70
25
P2
60
40
P3
60
45
对下列请求应用银行家算法分别分析判定是否安全?
若是安全的,请给出一个可能的进程安全执行序列。
①第4个进程P4到达,最大需求60个存储单元,当前请求分配25个单元。
②第4个进程P4到达,最大需求50个存储单元,当前请求分配35个单元。
该题的两个问题都是问P4当前的需求是否可以满足。
对于P4来说,关键不在其最大的需求量是多少,而是其当前需求量是多少;系统在此时剩余资源数是40个。
①P4的最大需求量为60,当前请求分配25个,为计算是否安全,应在假设分配之后看是否找得到安全序列。
结果是至少可以找到一个安全序列〈P3P2P1P4〉,答案不惟一。
②P4得到35个单元后,系统剩余资源数为5,此时4个进程的剩余需求量均无法满足,为不安全状态,因而找不到安全序列。
Ch4
1.试比较进程和作业的区别。
作业可被看作是用户向计算机提交任务的任务实体,例如一次计算、一个控制过程等。
而进程则是计算机为了完成用户所提交的任务实体而设置的执行实体,是系统分配资源的基本单位。
显然,计算机要完成一个任务实体,必须要有一个以上的执行实体。
也就是说,一个作业总是由一个以上的多个进程组成的。
那么作业是怎样分解为进程的呢?
首先,系统必须为一个作业创建一个根进程,然后,在执行作业控制语句时,根据任务要求,系统或根进程为其创建相应的子进程,然后,为各子进程分配资源和调度各子进程执行以完成作业要求的任务。
作业:
任务实体;进程:
执行实体。
2.什么是分级调度?
处理机调度是操作系统的主要功能之一,它的实现策略决定了操作系统的类型,其调度算法的优劣直接影响整个系统的性能。
处理机调度分成作业调度和进程调度二级调度。
作业调度,作业就是用户程序及其所需的数据和命令的集合,作业管理就是对作业的执行情况进行系统管理的程序的集合。
作业调度程序的主要功能是审查系统是否能满足用户作业的资源要求以及按照一定的算法来选取作业。
进程调度,其主要功能是根据一定的算法将cpu分派给就绪队列中的一个进程。
进程调度是操作系统中最基本的一种调度,其调度策略的优劣直接影响整个系统的性能。
3.假设有4道作业,它们的提交时刻及执行时间由下表给出:
作业号
提交时刻(小时)
执行时间(小时)
1
10.00
2
2
10.20
1
3
10.40
0.5
4
10.50
0.3
计算在单道程序环境下,采用FIFO、最短作业优先算法时的平均周转时间和平均带权周转时间,并给出它们的调度顺序。
解:
四道作业的运行时间表如下:
作业号
提交时间(时)
执行时间(小时
FCFS
SJF
完成时间
(时)
周转时间
(小时)
完成时间(时)
周转时
间(小时)
1
10.0
2
12.0①
2.0
12.0①
2.0
2
10.2
1
13.0②
2.8
13.8④
3.6
3
10.4
0.5
13.5③
3.1
12.8③
2.4
4
10.5
0.3
13.8④
3.3
12.3②
1.8
FCFS:
调度顺序是1、2、3、4
平均周转时间T=(2.0+2.8+3.1+3.3)/4=2.8(小时)
平均带权周转时间W=(2.0/2.0+2.8/1+3.1/0.5+3.3/0.3)/4=5.05(小时)
SJF:
调度顺序是1、4、3、2
平均周转时间J=(2.0+3.6+2.4+1.8)/4=2.45(小时)
平均带权周转时间W=(2.0/2.0+3.6/1+2.4/0.5+1.8/0.3)/4=3.9(小时)
说明:
短作业优先调度算法能明显地降低作业的平均周转时间。
Ch5
1.存储管理的主要功能是什么?
①内存空间的分配与回收:
能否把外存中的数据和程序调入内存都取决于能否在内存中为它们安排合理的位置。
因此,存储管理模块要为每
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- os 习题 参考
![提示](https://static.bingdoc.com/images/bang_tan.gif)