操作系统典型例题分析.docx
- 文档编号:9801269
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:39
- 大小:45.39KB
操作系统典型例题分析.docx
《操作系统典型例题分析.docx》由会员分享,可在线阅读,更多相关《操作系统典型例题分析.docx(39页珍藏版)》请在冰豆网上搜索。
操作系统典型例题分析
1操作系统引论
1、什么是操作系统,它的主要功能是什么?
关于操作系统,至今沿无严格的统一的定义,对操作系统的定义有各种说法,不同的说法反映了人们从不同的角度所揭示的操作系统的本质特征。
(1)从资源管理的角度,操作系统是控制和管理计算的软、硬件资源,合理地组织计算机的工作流程以及方便用户的程序集合。
(2)从硬件扩充的角度,操作系统是控制和管理计算机裸机之上的第一层软件,是对计算机硬件功能的一次扩充。
操作系统的主要功能有处理机管理、内存管理、设备管理文件管理等功能,以及用户接口。
2、什么是多道程序设计技术?
多道程序设计技术的主要特点是什么?
多道程序设计技术就是把多个程序同时放入内存,它们共享系统中的各种资源,并发地在处理机上运行。
特点如下:
(1)多道,即计算机内存中同时存入多道相互独立的程序。
(2)宏观上并行,是指同时进入系统的多道程序都处于运行过程中。
(3)微观上串行,是指在单处理机环境下,内存中的多道程序轮流地占有CPU,交替执行。
3、批处理系统是怎样的一种操作系统?
它的特点是什么?
批处理系统是一种基本的操作系统类型。
在该系统中,用户的作业(包括程序、数据及程序的处理步骤)被成批地输入到计算机中,然后在操作系统的控制下,用户的作业自动地执行。
批处理系统的特点是“成批”和“自动”。
成批是指多个作业同时进入系统,其中一部分放在内存中,其余的入在外存的后备队列中,这样便于系统搭配合理的作业使之执行,从而充分发挥系统中各种资源的作用。
自动是指作业一旦提交,用户就不能干预自己的作业。
4、什么是分时系统?
什么是实时系统?
试从交互性、及时性、独立性、多路性和可靠性几个方面比较分时系统和实时系统。
分时系统允许多个终端用户同时使用计算机,在这样的系统中,用户感觉不到其他用户的存在,好像独占计算机一样。
实时系统是指系统对特定输入做出的反应速度足以控制发出实时信号的对象。
“实时”二字的含义是指在计算机对于外来信息能够及时处理,并在被控对象允许的范围内做出快速反应。
分时系统具有的多路性、独立性、及时性和交互性这四大特征,实时系统也同样具备,另外,实时系统对可靠性的要求比较高。
下面从以下几方面对他们进行比较。
(1)多路性。
实时信息重系统与分时系统一样具有多路性。
操作系统按分时原则为多个终端用户提供服务。
而对于实时控制系统,其多路性主要表现在经常对多咱的现声信息进行采集以及对多个对象或多个执行机构进行控制。
(2)独立性。
不管是实时信息处理系统还是实时控制系统,与分时系统一样都具独立性。
每个终端用户在向实时系统提出服务请求时,彼此独立地工作、互不干扰。
(3)及时性。
实时信息处理系统对及时性要求与分时系统类似,都以人们能接受的等待时间来确定。
而实时控制系统对及时性要求更高,是以控制对象所要求的开始截止时间或完成截止时间来确定,一般为秒级、几百毫秒级、毫秒级,有时甚至要求低于几百微秒。
(4)交互性。
实时信息处理系统具有交互性,但人与系统的交互,仅限于访问系统中某些特定的专用服务程序。
它不像分时系统那样向终端用户提供数据处理、资源共享等服务。
实时控制系统的交互性要求系统具有连续的人机对话的能力,也就是说,在交互的过程中要对用户的输入有一定的记忆和进一步推断的能力。
(5)可靠性。
分时系统虽然也要求具有可靠性,但相比之下,实时系统则要求系统高度可靠。
因为任何的差错都可能造成巨大的经济损失,甚至产生无法预料的后果。
因此,在实时系统中,都要采取多级容错措施,来保证系统的安全性及数据的安全性。
5、实时系统分为哪两种类型?
实时系统按使用方式的不同可分为两类:
实时控制系统和实时信息处理系统。
实时控制系统利用计算机对实时过程进行控制和提供监督环境。
实时信息处理系统利用计算机对实时数据进行处理。
6、操作系统的主要特征是什么?
操作系统的主要特征是并发性、共享性、虚拟性和不确定性。
并发性是指两个或两个以上的事物在同一时间间隔发生。
共享性是指多道程序或任务对计算机资源的共同享用。
虚拟性是指操作系统采用软件的手段将一个物理上的实体对应为多个逻辑上的对应物。
不确定性是指操作系统是在一个不确定的环境中运行,人们不能对所运行程序的行为以及硬件设备的情况做出任何的假定,也无法确切地知道操作系统正处于什么样的状态。
7、操作系统与用户的接口有几种?
它们各自用在什么场合?
操作系统与用户的接口分为命令接口和程序接口,命令接口提供一组命令供用户使用。
命令接口用于用户操作级别。
程序接口提供一组系统调用,供用户在程序中取得操作系统服务而设置。
程序接口用于用户程序级别。
8、“操作系统是控制硬件的软件。
”这一说法确切吗?
为什么?
这说法不确切。
因为操作系统不仅控制和管理计算机的硬件资源,还要控制和管理计算机的软件资源,把操作系统定义为控制硬件的软件是片面的。
9、将下列左右两列词连接起来形成意义最恰当的对。
DOS网络操作系统
OS/2自由软件
UNIX多任务
LINUX单任务
WINDOWSNT为开发操作系统而设计C语言
DOS网络操作系统
OS/2自由软件
UNIX多任务
LINUX单任务
WINDOWSNT为开发操作系统而设计C语言
2进程与线程
1、操作系统中为什么要引入进程的概念?
为了实现并发进程之间的合作和协调,以及保证系统的安全,操作系统在进程管理方面要做哪些工作?
在多道程序的环境中,程序的并发执行代替了程序的顺序执行,并发执行的程序破坏了程序的封闭性和可再现性,使得程序和它的执行不再一一对应。
此外,程序的并发执行导致了资源的竞争和共享,这就造成并发执行的程序之间可能存在相互制约关系。
因此并发执行的程序不再处于封闭的系统中,而出现了许多新的特征,如动态性、并发性、独立性及并发程序之间相互制约性待。
程序这个静态的概念已经无法真实地反映并发执行的程序的特征,所以需要一个能够描述并发程序执行的过程的实体——进程。
进程是一个数据集合上的执行过程。
操作系统在进程管理方面要做的主要工作有以下几方面:
(1)进程控制:
设置一套机制来完成进程的创建、撤销以及进程状态的转化。
(2)进程同步:
实现对系统中运行的所有进程之间的协调,包括进程互斥和进程同步。
(3)进程通信:
在多道程序环境中,进程之间需要合作以共同完成一项任务,这些进程之间需要交换信息来协调各自的工作进度。
所以系统必须具有进程之间通信的能力。
(4)进程调度:
当处理机空闲时,按一定算法挑选一个进程,使其占有处理,投入运行。
2、试描述当前正在运行的进程状态改变时,操作系统进行进程切换的步骤?
当正在执行的进程状态改变时,进程切换的步骤如下:
(1)保存处理的状态到该进程的PCB中,包括各种寄存器的内容,如通用寄存器、指令计数器、程序状态字(PSW)寄存器及栈指针。
(2)对当明运行进程的PCB进行更新,包括改变进程的状态和其他相关信息。
(3)根据情况将该进程的PCB移入相应的队列(可能是就绪队列、阻塞队列及就绪挂起等)。
(4)进行进程调度,挑选一个进程。
(5)更新被选中进程的PCB,包括将其状态改为运行状态。
(6)根据被选择进程的PCB内容,得到被选进程对应程序的地址。
(7)恢复被选中进程的处理机状态。
3、现代操作系统一般都提供多任务的环境,度回答以下问题:
(1)为运行多进程的并发执行,系统必须建立哪些关于进程的数据结构?
(2)为支持进程的状态变迁,系统至少应提供哪些进程控制原语?
(3)当进程的状态变迁时,相应的数据结构发生变化吗?
多任务环境即多道程序环境或多进程环境。
(1)为支持多进程的并发执行,系统必须建立的数据结构是PCB,不同状态进程的PCB用链表组织起来,开成就绪队列、阻塞队列等。
(2)为运行进程的状态变迁,系统至少提供的进程控制原语包括创建原语、撤销原语、阻塞原语和唤醒原语,当内存紧张时还应提供挂起原语和激话原语。
(3)当进程的状态变迁时,相应的数据结构发生变化,具体如下:
创建原语:
建立进程的PCB,并将进程投入就绪队列。
撤销原语:
删除进程的PCB,并将进程在其队列中摘除。
阻塞原语:
将进程PCB中进程的状态从运行状态改为阻塞状态,并将进程投入到阻塞队列。
唤醒原语:
将进程PCB中进程的状态从阻塞状态改为就绪状态,并将进程从阻塞队列摘下,投入到就绪队列中。
4、什么是进程控制块,从进程管理、中断处理、进程通信、文件管理、设备管理及存储管理的角度设计进程控制块应包含的内容。
进程控制块(PCB)是为了描述进程的动态变化而设置的一个与进程相联系的数据结构,用于记录系统管理进程所需信息。
PCB是进程存在的唯一标识,操作系统通过PCB得知进程的存在。
为了进程管理,进程控制块的内容应包括以下几方面:
(1)进程的描述信息,包括进程标识符、进程名等;
(2)进程的当前状态;(3)当前队列链接指针;(4)进程的家族关系。
为了中断处理,进程控制块的内容应包括处理机状态信息和各种寄存器的内容,如通用寄存器、指令计数器、程序状态字(PSW)寄存器及栈指针等。
为了内存管理的需要,进程控制块的内容应包括程序在内存的地址及外存地址。
为了进程通信,进程控制块的内容应包括进程使用的信号量、消息队列指针等。
为了设备管理,进程控制块的内容应包括进程占有资源情况。
5、假设系统就绪队列中有10上进程,这10个进程轮换执行,每隔300ms轮换一次,CPU在进程切换时所花费的总时间是10ms,试问系统化在进程切换上的开销占系统整个时间的比例是多少?
就绪队列中有10个进程,这10个进程轮换执行,每个进程的运行时间是300ms,切换另一个进程所花费的总时间是10ms,因此系统化在进程切换上的时间开销占系统整个时间的比例是:
10/(300+10)=3.2%
6、试述线程的特点及其与进程之间的关系。
线程是进程内的一个相对独立的运行单元,是操作系统调度和分派的单位。
线程只拥有一点必不可少的资源(一组寄存器和栈),但可以和同属于一个进程的其他线程共享进程拥有的资源。
线程是进程的一部分,是进程内的一个实体;一个进程可以有多个线程,但至少必须有一个线程。
在多线程的操作系统中,线程是独立调度的分派的单位,进程是拥有资源的单位。
7、根据下图,回答以下问题。
(1)进程发生状态变迁1、3、4、6、7的原因。
(2)系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,这种变迁称为因果变迁。
下述变迁是否为因果变迁;3—>2、4—>5、7—>2、3—>6,试说明原因。
(3)根据图说明该系统CPU调度的策略和效果。
6
(1)从图中可以看出,1表示新进程创建后,进入高优先级就绪队列;3表示进程因请求I/O或等待栽事件而阻塞;4表示进程运行的时间片到;6表示进程I/O完成或等待的事件到达;7表示进程运行完毕而退出。
(2)从图中可看出,3—>2是因果变迁,当一个进程从运行态变为阻塞态时,此时CPU空闲,系统首先到高优先级队列中选择一个进程投入运行。
4—>5是因果变迁,当一个进程时间片到,从运行态变为就绪状态时,此时CPU空闲,系统首先到高优先级队列中选择进程,但如果高优先级队列为空,则从低优先级队列中选择一个进程投入运行。
7—>2是因果变迁,当一个进程运行完毕时,CPU空闲,系统首先到高优先级队列中选择一个进程投入运行。
3—>6不是因果变迁。
一个进程阻塞是由于自身的原因而发生的,和另一个进程等待的事件到达没有因果关系。
(3)从图可以看出,当进程调度时,首先从高优先级就绪队列选择一个进程,赋予它的时间片为100ms。
如果高优先级就绪队列为空,则从低优先级就绪队列选择进程,但赋予该进程的时间片为500ms。
这种策略一方面照顾了短进程,一个进程如果在100ms运行完毕它将退出系统,更主要的是照顾了I/O量大的进程,进程因I/O进入阻塞队列,当I/O完成后它就进入了高优先级就绪队列,在高优先级就绪队列等待的进程总是优先级就绪队列的进程。
而对于计算机量较大的进程,它的计算机如果在一个100ms的时间片内不能完成,它将进入低优先级就绪队列,在这个队列的进程被选中的机会要少,只有当高优先级就绪队列为空,才从低优先级就绪队列选择进程,但对于计算量大的进程,系统给予的适当照顾是时间片增大为500ms。
8、回答以下问题。
(1)若系统中没有运行进程,是否一定没有就绪进程?
为什么?
(2)若系统中既没有运行进程,也没有就绪进程,系统中是否就没有阻塞进程?
请解释。
(3)如果系统采用优先级调度策略,运行的进程是否一定是系统中优先级最高的进程。
(1)是。
若系统中没有运行进程,系统会马上选择一个就绪进程队列中的进程投入运行。
只有在就绪队列为空时,CPU才会空闲。
(2)不一定,当系统中所有进程分别等待各自希望发生的事件时,它们都处于阻塞状态,此时系统中既没有运行进程,也没有就绪进程。
这种情况出现时,如果各个进程没有相互等待关系,只要等待的事件发生了,进程就会从等待状态转化为就绪状态。
但如果处于阻塞状态的进程相互等待彼此占有的资源,系统就可能发生死锁。
(3)不一定。
因为高优先级的进程有可能处于等待状态,进程调度程序只能从就绪队列中挑选一个进程投入运行。
被选中进程的优先级在就绪队列中是最高的,但在整个系统中它不一定是最高的,等待队列中进程的优先级有可能高于就绪队列中所有进程的优先级。
9、假如有以下程序段,回答下面问题。
S1:
a=3-x;S2:
b=2*a;S3:
c=5+a;
(1)并发程序执行的Bernstein条件是什么?
(2)试画图表示它们执行时的先后次序。
(3)利用Bernstain条件证明,S1、S2和S3哪两个可以并发执行,哪两个不能。
(1)Bernstain提出的程序并发执行的条件如下:
R(Pi)={a1,a2,……am}表示程序Pi在执行期间所要参考的所有变量的集合,称为“读集”;W(Pi)={b1,b2,……bn}表示程序Pi在执行期间要改变的所有变量的集合,称为“写集”。
两个程序P1和P2并发执行的条件是,当且仅当
R(P1)
W(P2)
R(P2)
W(P1)
W(P1)
W(P2)={}
(2)三个程序段对应的三个进程的先后执行次序是,S1先于S2和S3运行,如下图所示。
S3
(3)R(S1)={x},W(S1)={a}
R(S2)={a},W(S2)={b}
R(S3)={a},W(S3)={c}
所以W(S1)
R(S2)={a},因此S1和S2不能并发执行。
W(S1)
R(S3)={a},因此S1和S3也不能并发执行。
而
R(S2)
W(S3)
R(S3)
W(S2)
W(S2)
W(S3)={},因此S2和S3可以并发执行。
3进程同步与通信
1、以下进程之间存在相互制约关系吗?
若存在,是什么制约关系?
为什么?
(1)几个同学去图书馆借同一本书;
(2)篮球比赛中两队同学争抢篮板球;(3)果汁流水线生产中捣碎、消毒、灌装、装箱等各道工序;(4)商品的入库和出库;(5)工人做工与农民种粮。
进程之间的相互制约分为互斥关系和同步关系。
互斥关系是多个进程之间竞争临界资源,而禁止两个以上的进程同时进入临界区所发生的制约关系。
同步关系是合作进程之间协调彼此的工作,而控制自己的执行速度,由此产生的相互合作、相互等待的制约关系。
(1)几个同学去图书馆借同一本书。
存在互斥关系。
因为一本书只能借给一个同学。
(2)篮球比赛中两队同学争抢篮板球。
存在互斥关系。
因为篮球只有一个,两队只能有一个队抢到篮球。
(3)果汁流水线生产中捣碎、消毒、灌装、装箱等各道工序。
存在同步关系,因为后一道工序的开始依赖于前一道工序的完成。
(4)商品的入库和出库。
存在同步关系,因为商品若没有入库就无法出库,若商品没有出库,装满了库房,也就无法再入库。
(5)工人做工与农民种粮。
工人和农民之间没有相互制约关系。
2、说明P、V操作为什么要设计成原语?
用信号量S表示共享资源,其初值为1表示有一个资源。
设有两个进程申请该资源,若其中一个进程先执行P操作。
P操作中的减1操作由3条机器指令组成:
取S送寄存器R;R-1送R;R送S。
若P操作不用原语实现,在执行了前述三条指令中的2条,即还未执行R送S时(此时S的值仍为1),进程被剥夺CPU,另一个进程执行也要执行P操作,执行后S的值为0,导致信号量的值错误。
正确的结果是两个进程执行完P操作后,信号量的值为-1,进程阻塞。
V操作也同样。
所以要把信号量的P、V操作设计成原语,要求该操作中的所有指令要么都做,要么都不做。
3、设有一个售票大厅,可容纳200人购票。
如果厅内不足200人,则允许进入,超过则在厅外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开。
试问:
(1)购票者之间是同步关系还是互斥关系?
(2)用P、V操作描述购票者的工作过程。
购票者之间是互斥关系。
P、V操作描述购票者的工作过程如下:
semaphoreempty=2000;
semaphoremutex=1;
voidbuyer()
{P(empty);
P(mutex);
购票;
V(mutex);
V(empty);}
售票大厅可容纳200人购票,说明最多允许200人共享售票大厅。
引入一个信号量empty,初值为200;由于购票者必须互斥地购票,故再设置一个信号量mutex,初值为1。
4、分析生产者和消费者问题中多个P操作颠倒引起的后果。
答:
如果将生产进程的两个P操作,即P(empty)和P(mutex)的位置互换,生产者和消费者问题描述如下:
semaphoremutex=1;
semaphoreempty=n;
semaphorefull=0;
inti,j;
ITEMbuffer[n],data_p,data_c;
voidproducer()/*生产者进程*/
{while(true)
{produceanitemindata_p;
P(empty)
P(empty)
buffer[i]=data_p;
i=(i+1)%n;
V(nutex);
V(full);
}
}
voidconsumer()/*消费者进程*/
{while(true)
{P(full)
P(mutex)
data_c=buffer[j];
j=(j+1)%n;
V(nutex);
V(empty);
consumetheitemindata_c;
}
}
按上面的描述,当生产者进程生产了n个产品而使缓冲区满时,生产者如若继续执行,可能顺利通过P(mutex)。
但当执行P(empty)时,由于缓冲区已满,生产者将在信号量empty上等待。
若之后消费者欲取产品,执行P(full)顺利通过,但当执行P(mutex)时,由于生产者获得了进入临界区的权力,消费者只能在mutex上等待。
此时生产者在empty上等待,消费者在mutex上等待,从而导致生产者等待消费者取走产品,消费者等待生产者释放缓冲区,这种相互等待就造成系统死锁。
4调度与死锁
1、某进程被唤醒后立即投入运行,能说明系统采用的是可剥夺调度算法吗?
不能。
如果当前就绪队列为空,被样被唤醒的进程就是就绪队列中唯一的一个进程,于是调试程序自然选中它投入运行。
2、在哲学家进餐问题中,如果将先拿起左边筷子的哲学家称为左撇子,将先拿起右边筷子的哲学家称为右撇子。
请说明在同时存在左、右撇子的情况下,任何的就座安排都不能产生死锁。
该题的关键是证明该情况不满足产生的四个必要条件之一。
在死锁的四个必要条件中,本题对于互斥条件、请求与保持条件、不可剥夺条件肯定是成立的,因此必须证明环路条件不成立。
对于本题,如果存在环路条件必须是左、右的哲学家都拿起了左(或右)边的筷子,而等待右(或左)边的筷子,而这种情况只能出现在所有哲学家都是左(或右)撇子的情况下,但由于本题有右(或左)撇子存在,因此不可能出现循环等待链,所以不可能产生死锁。
3、系统中有5个资源被4个进程所共享,如果每个进程最多需要两个资源,试问系统是否会产生死锁?
由于资源数大于进程数,所以系统中总会有一个进程获得的资源数大于等于2,该进程已经满足了它的最大需求,当它运行完毕后会把它占有的资源归还给系统,此时其余3个进程也能满足最大需求而顺利运行完毕。
因此系统不会产生死锁。
4、计算机系统中有8台磁带机,由N个进程竞争使用,每个进程最多需要3台。
问当N为多少时,系统没有死锁的危险?
当N<4时,系统没有死锁的危险。
因为当N为1时,它最多需要3台磁带机,系统中共有8台,其资源数已足够1个进程使用,因此绝对不会产生死锁;当N为2时,两个进程最多需要6台磁带机,系统中共有8台,其资源数也足够两个进程使用,因此也不会产生死锁;当N为3时,无论如何分配,3个进程中必有进程得到3台磁带机,该进程已经达到它的最大需求,当它运行完毕后可释放这3台磁带机,这就保证了其他两个进程也可顺利执行完毕。
因此当N<4时,系统没有死锁的危险。
当N=4时,假设4个进程都得到两个资源,此时系统中已没有剩余资源,而4个进程都没有到达它们的最大需求,所以系统有可能产生死锁。
同理,当N>4时,也有产生死锁的危险。
5、设系统中有5个进程P1、P2、P3、P4和P5,有三种类型的资源A、B和C,其中A资源的数量是17,B资源的数量是5,C资源的数量是20,T0时刻系统状态如下表。
回答以下问题:
(1)计算每个进程还可能需要的资源,并填入表的“仍需要资源数”栏目中。
(2)T0时刻系统是否处于安全状态?
为什么?
(3)如果T0时刻进程P2又有新的资源请求(0,3,4),是否实施资源分配?
为什么?
(4)如果T0时刻进程P4又有新的资源请求(2,0,1),是否实施资源分配?
为什么?
(5)在第(4)题的基础上,若进程P1又有新的资源请求(0,2,0),是否实施资源分配?
为什么?
进程
已分配资源数量
最大资源需求量
仍然需求资源数
A
B
C
A
B
C
A
B
C
P1
2
1
2
5
5
9
P2
4
0
2
5
3
6
P3
4
0
5
4
0
11
P4
2
0
4
4
2
5
P5
3
1
4
4
2
4
(1)5个进程P1、P2、P3、P4和P5仍然需要A、B和C,三类资源数量如下表:
进程
已分配资源数量
最大资源需求量
仍然需求资源数
A
B
C
A
B
C
A
B
C
P1
2
1
2
5
5
9
3
4
7
P2
4
0
2
5
3
6
1
3
4
P3
4
0
5
4
0
11
0
0
6
P4
2
0
4
4
2
5
2
2
1
P5
3
1
4
4
2
4
1
1
0
(2)由已知条件,系统中A、B和C,三类资源的总数是(17,5,20),从表中可以计算出已分配情况是(15,2,17),剩余可用资源的数量是(2,3,3),如果先让进程P5执行,可以满足它的最大需求。
当进程P5运行完毕,又可释放它占有的资源,使系统中可用资源的数量增加为(5,4,7);此时可让P4执行,满足它的最大需求后又可释放它占有的资源,使系统中可用资源的数量增加为(7,4,11);然后让P3执行,满足它的最大需求后又可释放它占有的资源,使系统中可用资源的数量增加为(11,4,16);之后可让
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 典型 例题 分析