操作系统习题解答Word格式.docx
《操作系统习题解答Word格式.docx》由会员分享,可在线阅读,更多相关《操作系统习题解答Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
占有处理器正在运行。
进程在执行中状态会不断地改变,每个进程在任何时刻总是处于上述三种基本状态的某一种基本状态,进程状态之间转换关系:
运行态→等待态往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
等待态→就绪态则是等待的条件已满足,只需分配到处理器后就能运行。
运行态→就绪态不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。
例如时间片用完,或有更高优先级的进程来抢占处理器等。
就绪态→运行态系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。
、进程控制块是什么,有何作用?
通常进程控制块包含哪些信息?
进程控制块(,简称),是操作系统为进程分配的用于标志进程,记录各进程执行情况的。
进程控制块是进程存在的标志,它记录了进程从创建到消亡动态变化的状况,进程队列实际也是进程控制块的链接。
操作系统利用进程控制块对进程进行控制和管理。
标志信息含唯一的进程名
说明信息有进程状态、等待原因、进程程序存放位置和进程数据存放位置
现场信息包括通用、控制和程序状态字寄存器的内容
管理信息存放程序优先数和队列指针
进程控制块的作用有:
∙()记录进程的有关信息,以便操作系统的进程调度程序对进程进行调度。
这些信息包括标志信息、说明信息、现场信息和管理信息等;
∙()标志进程的存在,进程控制块是进程存在的唯一标志
、什么是可再入程序?
()什么是可再入程序。
一个能被多个用户同时调用的程序称做"
可再入"
的程序。
()可再入程序的性质。
∙可再入程序必须是纯代码,在执行时自身不改变;
∙一个可再入程序要求调用者提供工作区,以保证程序以同样方式为各用户服务。
编译程序和操作系统程序通常都是"
可再入"
程序,能同时被不同用户调用而构成不同的进程。
、阐述进程调度的常用算法:
先来先服务、优先数法、轮转法。
∙先来先服务调度算法该算法按进程进入就绪队列的先后次序选择可以占用处理器的进程。
∙优先数调度算法对每个进程确定一个优先数,该算法总是让优先数最高的进程先使用处理器。
对具有相同优先数的进程,再采用先来先服务的次序分配处理器。
系统常以任务的紧迫性和系统效率等因素确定进程的优先数。
进程的优先数可以固定的,也可随进程执行过程动态变化。
一个高优先数的进程占用处理器后,系统处理该进程时有两种方法,一是"
非抢占式"
,另一种是"
可抢占式"
。
前者是此进程占用处理器后一直运行到结束,除非本身主动让出处理器,后者则是严格保证任何时刻总是让优先数最高的进程在处理器上运行。
∙时间片轮转调度法把规定进程一次使用处理器的最长时间称为"
时间片"
时间片轮转调度算法让就绪进程按就绪的先后次序排成队列,每次总选择该队列中第一个进程占用处理器,但规定只能使用一个时间片,如该进程尚未完成,则排入队尾,等待下一个供它使用的时间片。
各个进程就这样轮转运行。
时间片轮转算法经常用于分时操作系统中。
、程序状态字包含哪些主要内容?
()程序基本状态
()中断码
()中断屏蔽位
、比较进程调度与作业调度的不同点。
)作业调度是宏观调度,它决定了哪一个作业能进入主存。
进程调度是微观调度,它决定各作业中的哪一个进程占有中央处理机。
(或)作业调度是高级调度,它位于操作系统的作业管理层次。
进程调度是低级调度,它位于操作系统分层结构的最内层。
()作业调度是选符合条件的收容态作业装入内存。
进程调度是从就绪态进程中选一个占用处理机。
、程序说明系统调用()的应用。
请在①②③④处填入有关父、子进程的正确语句:
/**/
()
{
;
①
()>
(“②”);
}
(“③”);
(“④”);
执行本程序时,子进程在标准输出上打印以下结果:
.
父进程在标准输出上打印以下结果:
.
、单道批处理环境下有个作业,各作业进入系统的时间和估计运行时间如下表所示:
作业
进入系统时间
估计运行时间分钟
()如果应用先来先服务的作业调度算法,试将下面表格填写完整。
开始时间
结束时间
周转时间分钟
作业平均周转时间
()如果应用最短作业优先的作业调度算法,试将下面表格填写完整。
.
()
:
()
、有一个具有两道作业的批处理系统,作业调度采用短作业优先的非抢式调度算法,进程调度采用以优先数为基础的抢占式调度算法,在下表所示的作业序列中,作业优先数即为进程优先数,优先数越小优先级越高。
()列出所有作业进入内存时间及结束时间。
()计算平均周转时间。
每个作业运行将经过两个阶段:
作业调度(算法)和进程调度(优先数抢占式)。
另外,批处理最多容纳道作业,更多的作业将在后备队列等待。
(1),作业到达并投入运行。
(2),作业到达且优先权高于作业,故作业投入运行而作业在就绪队列等待。
(3),作业到达,因内存中已有两道作业,故作业进入作业后备队列等待。
(4),作业运行结束,作业到达,按短作业优先算法,作业被装入内存进入就绪队列。
而由于作业的优先级高于作业,故作业投入运行。
(5),作业运行结束,作业被调入内存,且作业的优先级高于作业,故作业投入运行。
(6),作业运行结束,作业投入运行。
(7),作业运行结束。
各作业周转时间为:
作业,作业,作业,作业。
平均作业周转时间为分钟。
第四章并发进程的同步与互斥
、进程间同步和互斥的含义是什么?
同步:
并发进程之间存在的相互制约和相互依赖的关系。
互斥:
若干进程共享一资源时,任何时刻只允许一个进程使用。
、用文字描述银行家算法的基本思想?
银行家算法的基本思想是:
将系统中的所有资源比做银行家的资金,每进行
一次资源的分配,银行家都要从当前的资源分配情况出发,计算这种分配方案的
安全性,如果是安全的,则进行分配,否则选择其它可能的分配方案。
这样,每
次分配都计算安全性,从而可以避免死锁的发生。
、简述死锁的防止与死锁的避免的区别。
死锁的防止是系统预先确定一些资源分配策略,进程按规定申请资源,系统按预先规定的策略进行分配,从而防止死锁的发生。
而死锁的避免是当进程提出资源申请时系统测试资源分配,仅当能确保系统安全时才把资源分配给进程,使系统一直处于安全状态之中,从而避免死锁。
、试说明资源的静态分配策略能防止死锁的原因。
资源静态分配策略要求每个进程在开始执行前申请所需的全部资源,仅在系统为之分配了所需的全部资源后,该进程才开始执行。
这样,进程在执行过程中不再申请资源,从而破坏了死锁的四个必要条件之一“占有并等待条件”,从而防止死锁的发生。
、有三个进程,和并发工作。
进程需用资源和;
进程需用资源和。
回答:
()若对资源分配不加限制,会发生什么情况?
为什么?
()为保证进程正确工作,应采用怎样的资源分配策略?
.()可能会发生死锁
例如:
进程,和分别获得资源,和后再继续申请资源时都要等待(分),这是循环等待。
(或进程在等待新源时均不释放已占资源)
()可有几种答案:
.采用静态分配 由于执行前已获得所需的全部资源,故不会出现占有资源又等待别的资源的现象(或不会出现循环等待资源现象)。
或.采用按序分配 不会出现循环等待资源现象。
或.采用银行家算法 因为在分配时,保证了系统处于安全状态。
6、某车站售票厅,任何时刻最多可容纳名购票者进入,当售票厅中少于名购票者时,则厅外的购票者可立即进入,否则需在外面等待。
若把一个购票者看作一个进程,请回答下列问题:
()用操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。
()根据所定义的信号量,把应执行的操作填入适当,以保证进程能够正确地并发执行。
(,,……)
;
进入售票厅;
购票;
退出;
;
()若欲购票者最多为个人,写出信号量可能的变化范围(最大值和最小值)。
.()定义一信号量,初始值为。
意义:
>
的值表示可继续进入售 票厅的人数
表示售票厅中已有名顾 客(购票者)
<
的值为等待进入售票 厅的人数
()()
进入售票厅;
()
()的最大值为
的最小值为-
注:
信号量的符号可不同(如写成),但使用时应一致(即上述的全应改成)。
7、假定系统有三个并发进程,和共享缓冲器和。
进程负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器中。
进程从缓冲器中取出一记录,加工后存入缓冲器。
进程将中的记录取出打印输出。
缓冲器和每次只能存放一个记录。
要求三个进程协调完成任务,使打印出来的与读入的记录的个数,次序完全一样。
请用操作,写出它们的并发程序。
;
;
:
(接收来自输入设备上一个记录)
接收的一个记录;
();
();
加工
打印
8、某系统中有台打印机,有三个进程,,分别需要台,台和台。
若,,已申请到台,台和台。
试问:
按银行家算法能安全分配吗?
请说明分配过程。
系统能为进程分配二台打印机。
因为尽管此时台打印机已分配给进程台,台和台,全部分配完,但已分配到所需要的全部台打印机,它不会对打印机再提出申请,所以它能顺利运行下去,能释放占用的台打印机,使进程,均可能获得乘余的要求台和台,按银行家算法是安全的。
9、有两个用户进程和,在运行过程中都要使用系统中的一台打印机输出计算结果。
()
试说明、两进程之间存在什么样的制约关系?
为保证这两个进程能正确地打印出各自的结果,请用信号量和、操作写出各自的有关申请、使用打印机的代码。
要求给出信号量的含义和初值。
()、两进程之间存在互斥的制约关系。
因为打印机属于临界资源,必须一个进程使用完之后另一个进程才能使用。
():
用于互斥的信号量,初值为。
进程进程
......
()()
申请打印机申请打印机
使用打印机使用打印机
试以生产者—消费者问题说明进程同步问题的实质。
一个生产者,一个消费者和一个产品之间关系是典型的进程同步问题。
设信号量为仓库内产品,操作配对进行缺一不可。
生产者进程将产品放人仓库后通知消费者可用;
消费者进程在得知仓库有产品时取走,然后告诉生产者可继续生产。
10、请描述产生死锁的四个必要条件。
互斥使用(资源独占)一个资源每次只能给一个进程使用
不可强占(不可剥夺)资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放
请求和保持(部分分配,占有申请)-一个进程在申请新的资源的同时保持对原有资源的占有(只有这样才是动态申请,动态分配)
循环等待-存在一个进程等待队列{,,…,},其中等待占有的资源,等待占有的资源,…,等待占有的资源,形成一个进程等待环路
11、两个并发执行的进程和的程序如下:
进程
打印的值;
;
其中为整数,初值为。
若进程先执行了三个循环后,进程和进程又并发执行了一个循环,写出可能出现的打印值。
正确的打印值应该是多少?
请用、操作进行管理,使进程和并发执行时不会出现与时间有关的错误。
因为初值为,若进程先执行了三个循环,此时的值为。
当进程和进程并发执行时可能会有如下两种执行次序,即进程先执行一次循环,然后再进程执行一次循环,此时打印的是正确值,执行后中的值为。
但若进程先执行一次循环,然后再进程执行一次循环,则打印的值是,执行后中的值是。
这是错误的,即发生了与时间有关的错误。
用、操作进行管理,使进程和并发时不会出现与时间有关的错误的程序如下:
(为互斥信号量,初值为),
12、四个进程,和四个信箱进程间借助相邻的信箱传递消息:
每次从中取出一条消息,经加工送入中。
其中分别设有个格子,每个格子放一条消息,初始时,装满了三条消息,其余为空。
写出使用信号量实现进程()同步及互斥的流程。
分别用于控制互斥访问,初值为。
分别用于控制同步访问,其中初值为,初值为,表示信箱中消息条数。
分别用于同步控制对的访问。
初值为,初值为,初值为,分别用于表示信箱中空格子个数。
另用(,)表示将消息送到()号信箱中;
而用(,)表示接收已存在于()中的消息。
则使用信号量实现进程(,)同步及互斥的流程如下:
,,:
();
();
…
{可类似于实现之};
13、设系统中仅有一类数量为的独占型资源,系统中个进程竞争该类资源,其中各进程对该类资源的最大需求量为。
当、、分别取下列值时,试判断哪些情况会发生死锁?
为什么?
①
,,
②,,
③,,
④,,⑤,,
③可能会发生死锁。
只要一个进程占用了少于个独占型资源而另一个进程占用了其余的独占型资源,两个进程都会相互处于等待对方进程释放资源的状态。
⑤也可能会发生死锁。
当每个进程都分配了两个资源时,个进程都会彼此等待。
14、假定具有个进程的进程集合={},系统中有三类资源,和。
其中类资源有个,类资源有个,类资源有个。
假定在某时刻有如下状态:
试给出,并说明当前系统是否处于安全状态,如果是,给出安全序列。
如果不是,说明理由。
当前系统处于安全状态,安全序列如下求解:
(,,)
寻找 <
(,,)(
,,,)
()<
(,,)
(,,)()
,,)
(,,)()(,,)
(,,)(,
)
(,,)(,)
()<
(,,)
(,,)()
所以安全序列为<,,,,>。
15、有一阅览室,读者进入时必须先在一张登记表上登记。
该表中每个表项代表阅览室中的一个座位。
读者离开时要消掉其登记信息。
阅览室共有个座位。
登记表每次仅允许一位读者进行登记或注销。
读者登记时,发现登记表满,他在阅览室外等待,直至有空位再登记进入。
试用类语言和、操作,描述读者行为。
{}
();
16、考虑一个共有个存储单元的系统,如下分配给三个进程,最大需求,己占有;
最大需求,己占有;
最大需求,己占有。
使用银行家算法,以确定下面的任何一个请求是否安全。
()进程到达,最大需求,最初请求个。
()进程到达,最大需求,最初请求。
如果安全,找出所有的安全序列;
如果不安全,给出结果分配情况。
()由于系统目前还有个单元,进程到达,把个单元分给它。
这时系统还余个单元,可把个单元分给,它执行完后会释放个单元。
于是可供(还要个单元),(还要个单元),(还要个单元)任何一个执行。
安全序列为:
,,,,,,,
()进程到达,最大需求,最初请求。
如果把个单元分给,系统还余个单元,不再能满足任何一个进程的需求,系统进入不安全状态。
17、在一个盒子里,混装了数量相等的黑白围棋子。
现在用自动分拣系统把黑子、白子分开,设分拣系统有二个进程和,其中拣白子;
拣黑子。
规定每个进程每次拣一子;
当一个进程在拣时,不允许另一个进程去拣;
当一个进程拣了一子时,必须让另一个进程去拣。
试写出两进程和能并发正确执行的程序。
实质上是两个进程的同步问题,设信号量和分别表示可拣白子和黑子,不失一般性,若令先拣白子。
{
();
拣白子
拣黑子
}
.
18、系统有、、、共种资源,在某时刻进程、、、和对资源的占有和需求情况如表,试解答下列问题:
(1)系统此时处于安全状态吗?
(2)若此时发出(、、、),系统能分配资源给它吗?
()系统处于安全状态,存在安全序列:
,,,,
()不能分配,否则系统会处于不安全状态。
19、假设有个存储区域,其编号为,,…,,用一个位的标志字,位号也是,,…,分别描述个存储区域使用状态:
当某一位为时,表示对应存储区域已分配,若为,表示对应存储区域空闲。
进程:
负责存储区域分配,每次分配一个区域,找出标志字某为的位置成。
负责存储区域回收,把回收存储区域标志字对应位清成。
要求:
()分析进程与进程的具体同步关系。