计算机操作系统作业2含答案资料Word文档格式.docx
- 文档编号:18607826
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:21
- 大小:36.23KB
计算机操作系统作业2含答案资料Word文档格式.docx
《计算机操作系统作业2含答案资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机操作系统作业2含答案资料Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
就绪态B.运行态->
等待态
C.就绪态->
运行态D.等待态->
就绪态
17.下面关于进程的叙述中正确的是______。
A.进程获得CPU运行是通过调度得到的
B.优先级是进程调度的重要依据,一旦确定就不能改变
C.在单CPU的系统中,任何时刻都有一个进程处于运行状态
D.进程申请CPU得不到满足时,其状态变为阻塞
B.错误优先级是可以动态改变的。
C.错误没进程的时候,系统可以空闲。
D.错误变为就绪态。
18.操作系统通过______对进程进行管理。
A.进程B.进程控制块C.进程启动程序D.进程控制区
19.若一个进程拥有100个线程,这些线程属于用户级线程,它们在系统调度执行时间上占用的时间片个数是______。
A.1B.100C.1/100D.0
本题主要考查关于进程和线程之间资源共享的知识点。
在引入线程的操作系统中,线程是进程中的一个实体,是系统独立调度和分派的基本单位。
但是线程自己基本上不拥有系统资源,所以它不是资源分配的基本单位,它只拥有一部分在运行中必不可少的与处理机相关的资源,如线程状态、寄存器上下文和栈等,它同样有就绪、阻塞和执行三种基本状态。
它可与同属一个进程的其他线程共享进程所拥有的全部资源。
一个线程可以创建和撤销另一个线程;
同一个进程中的多个线程之间可以并发执行。
由于用户线程不依赖于操作系统内核,因此,操作系统内核是不知道用户线程的存在的,用户线程是由用户来管理和调度的,用户利用线程库提供的API来创建、同步、调度和管理线程。
所以,用户线程的调度在用户程序内部进行,通常采用非抢先式和更简单的规则,也无须用户态和核心态切换,所以速度很快。
由于操作系统不知道用户线程的存在,所以,操作系统把CPU的时间片分配给用户进程,再由用户进程的管理器将时间分配给用户线程。
那么,用户进程能得到的时间片即为所有用户线程共享。
因此,正确答案应为A。
20.解除死锁通常不采用的方法是______。
A.终止一个死锁进程B.终止所有死锁进程
C.从死锁进程处抢夺资源D.从非死锁进程处抢夺资源
21.到其他3种状态的进程状态是______。
A.就绪B.阻塞C.完成D.执行
22.信号量的初值为2,当前值为-3,则表示等待进程有______。
A.1个B.2个C.3个D.5个
若信号量为正,则表示资源数;
若信号量为负,则表示等待的进程数
23.wait操作可能导致______。
A.进程就绪B.进程结束C.进程阻塞(等待)D.新进程创建
24.在操作系统中为避免系统的死锁采用______。
A.银行家算法B.破坏占有并等待条件
C.死锁检测和恢复D.破坏非剥夺条件
25.下列的进程状态变化中不可能发生的变化是______。
A.等待→运行B.运行→等待C.运行→就绪D.等待→就绪
26.如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置为______。
A.3B.1C.2D.0
27.进程之间交换数据不能通过______途径进行。
A.共享文件B.消息传递C.访问进程地址空间D.访问共享存储区域
28.进程控制块PCB不包括的内容是______。
A.CPU现场B.进程优先级C.进程运行状态D.文件缓冲区
29.PCB是描述进程状态和特性的数据结构,一个进程______。
A.可以有多个PCB B.可以和其他进程共用一个PCB
C.可以没有PCB D.只能有唯一的PCB
30.资源顺序分配法破坏了死锁发生的______必要条件。
A.互斥占用B.占有等待C.非剥夺D.循环等待
解析:
发生死锁的四个必要条件如下:
互斥条件、占有并请求资源、非剥夺条件和循环等待条件。
一次分配所有资源的方法是当进程需要资源时,一次性提出所有的请求,若请求的所有资源均满足则分配,只要有一项不满足,那么不分配任何资源,该进程阻塞,直到所有的资源空闲后,满足了进程的所有需求时再分配。
这种分配方法不会部分占有资源,所以就打破了死锁的四个必要条件之一,实现了对死锁的预防。
但是,这种分配方式需要凑齐所有资源,所以,当一个进程所需的资源比较多时,资源的利用率会比较低,甚至会造成进程的饥饿。
正确答案为B。
31.进程和程序的本质区别是______。
A.内存和外存B.动态和静态特征
C.共享和独占使用计算机资源D.顺序和非顺序执行指令
32.设有两个进程共享3个同类资源,为使系统不死锁,每个进程最多可以申请______资源。
A.0B.1C.2D.3
33.作业调度中的先来先服务算法是以______为出发点考虑的。
A.作业执行时间B.作业的周转时间
C.作业等待时间D.等待时间加运行时同
34.设m为同类资源数,n为系统中的并发进程数。
当n个进程共享m个互斥资源时,每个进程的最大需求是w。
下列情况下,系统会死锁的是______。
A.m=2,n=l,w=2B.m=2,n=2,w=1
C.m=4,n=3,W=2D.m=4,n=2,w=3
当2个进程已经拥有2个资源,都申请第3个资源时,导致死锁。
35.用于解决进程间互斥的方法是______。
①信号量及wait、signal操作②加锁与解锁③信箱方式
④消息缓冲方式⑤特权指令方式
A.③、④和⑤B.①和②C.①和③D.②和⑤
36.在操作系统中,每个进程具有独立性,进程之间又具有相互制约性。
对于任何两个并发进程,它们______。
A.必定无关B.必定相关C.可能相关D.可能相同
二、简答题
1.什么是线程?
进程和线程的关系是什么?
2.进程能自己将自己唤醒吗?
进程能自己将自己撤销吗?
3.父进程创建子进程之后,父子进程间的关系是什么?
4.简述引进线程的好处。
5.当一个进程的父进程被撤销时,该进程是撤销好还是不撤销好?
6.为什么说进程同步问题关系到OS的成败?
同步机制应遵循的准则是什么?
7.进程之间存在哪几种相互制约关系?
各是什么原因引起的?
下列活动分别属于哪种制约关系?
(1)若干同学去图书馆借书。
(2)两队举行篮球比赛。
(3)流水线生产的各道工序。
(4)商品生产和消费。
8.高级调度和低级调度的主要任务是什么?
为什么引入中级调度?
9.在剥夺调度中,有哪些剥夺原则?
10.引起进程调度的主要因素。
11.何为死锁?
产生死锁的原因和必要条件是什么?
比较三种解决死锁的方法?
12.试比较说明进程和程序的区别有哪些?
三、应用题
1.有一个理发师,一把理发椅和n把供等候理发的顾客坐的椅子。
如果没有顾客,则理发师便在理发椅子上睡觉;
当一个顾客到来时,必须唤醒理发师,进行理发;
如果理发师正在理发时,又有顾客来到,则如果有空椅子可坐,他就坐下来等,如果没有空椅子,他就离开。
为理发师和顾客各编一段程序描述他们的行为,要求不能带有竞争条件。
2.计算进程PC和打印进程P01、P02共享一个单缓冲区,计算进程负责计算,并把计算结果放入单缓冲中;
打印进程P01、P02则负责从单缓冲中取出计算结果进行打印,而且对每个计算结果,P01和P02都需分别打印一次。
请用记录型信号量描述上述进程间的同步关系。
3.设有三个进程,输入进程(input)、计算进程(compute)和输出进程(output),它们通过共享两个缓冲区buf1和buf2协作完成任务。
如下图所示
三个进程之间的合作关系如下:
(1)输入进程使用put()函数把数据送到buf1,供计算进程调用calculate()函数计算;
(2)计算进程每次调用get()函数从buf1取出已输入的可计算的数据进行计算,并把计算结果使用put()函数把数据送到buf2送入buf供输出进程打印;
(3)输出进程调用get()函数把buf2中的数据使用print()函数输出。
定义合适的信号量,并用伪代码完成实现过程。
4.设系统中有三类资源A、B和C,又设系统中有5个进程P1,P2,P3,P4和P5。
在T0时刻系统状态如下:
最大需求量已分配资源量剩余资源量
ABCABCABC
P1
P2
P3
P4
P5
1210003163
175100
235135
064002
065001
(1)系统是否处于安全状态?
(请给出详细的判断过程)如是,则给出进程安全序列。
(2)如果进程P5申请1个资源类A和1个资源类C,能否实施分配?
为什么?
5.设有五道作业,它们的提交时间和运行时间见下表,试给出在如下表所示的三种调度算法下,作业的执行顺序,以及平均周转时间和带权平均周转时间:
(1)先来先服务调度算法;
(2)短作业优先调度算法;
(3)响应比高优先调度算法。
作业提交和运行时间表
作业名
提交时间/h
需执行时间/h
J1
10.1
0.8
J2
10.3
0.5
J3
10.5
0.4
J4
10.6
0.3
J5
10.7
0.2
6.假设系统有同类资源10个,供P,Q、R三个进程共享,P、Q、R所需资源总数分别为8、4、9,它们申请资源的次序和数量如下表所示。
进程资源申请表
次序
进程
申请量
1
2
3
4
5
6
…
R
P
Q
按银行家算法为它们分配资源:
(1)写出执行完序号为6的申请时,各进程的状态和已占的资源数。
(2)请估计系统是否会出现死锁,并简要说明理由。
7.下面给出的两个进程互斥的算法是安全的吗?
#definetrue;
#definefalse;
Intflag[2];
flag[1]=flag[2]=false;
enter-crtsec(i)
inti;
{
While(flag[1-i])
flag[i]=true;
}
leave-crtsec(i)
Inti;
flag[i]=false;
processI;
…
Enter-crtsec(i);
Incriticalsection;
Leave-crtsec(i);
8.设系统有三种类型的资源,数量为(4,2,2),系统中有进程A,B,C按如下顺序请求资源:
进程A申请(3,2,1)
进程B申请(1,0,1)
进程A申请(0,1,0)
进程C申请(2,0,0)
请你给出一和防止死锁的资源剥夺分配策略,完成上述请求序列,并列出资源分配过程,指明哪些进程需要等待,哪些资源被剥夺。
9.进程A1,A2,…,An通过K个缓冲区向进程B1,B2,…,Bm不断地发送消息。
发送和接收工作遵循如下规则:
(1)每个发送进程一次发送一个消息,写入缓冲区,缓冲区大小与消息长度一致;
(2)对每个消息,B1,B2,…,Bm都需接收一次,读入各自的数据区内;
(3)K个缓冲区都满时,发送进程等待,没有可读的消息时,接收进程等待。
试用wait和signal原语操作组织正确的发送和接收操作。
BDABDBCCBDADBDDAABADDCCAACCDDDBCCDBC
1.
线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度实体。
在具有多线程机制的操作系统中,处理机调度的基本单位不是进程而是线程。
一个进程可以有多个线程,而且至少有一个可执行线程。
进程和线程的关系是:
(1)线程是进程的一个组成部分。
(2)进程的多个线程都在进程的地址空间活动。
(3)资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源分配额中扣除并分配给它。
(4)处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。
(5)线程在执行过程中,需要同步。
2.
唤醒进程和撤消进程都是要通过CPU上运行程序来实现的。
一个进程入睡了,它就不可能被调度到CPU上运行;
一个进程在撤消前必须先进入终止状态,而处于终止状态的进程不可能被调度到CPU上运行。
因此,进程被唤醒、被撤消都不能由自己来完成,只能由别的进程实现。
3.
一个进程创建子进程之后,进程与产生的进程之间的关系是父子关系,分别成为进程和子进程。
子进程一经产生就与你进程并发执行,子进程共享父进程和子进程。
子进程一经产生就与你进程并发执行,子进程共享父进程的正文段和已经打开的文件。
4.
(1)以线程作为系统调度的基本单位,减少了系统的时空开销。
以进程为系统调度的基本单位的系统中,进程的切换是很频繁的。
在切换中由于要保留当时的运行环境,还要设置新选中的进程的运行环境,这既花费了处理机的时间,又增加了主存的空间,从而也限制了系统进程的数量和进程的切换速度。
(2)引进线程提高了系统的并行能力。
线程作为进程内的一个可执行实体,减少了并行粒度。
线程作为调度的基本单位而不是资源分配的基本单位,调度更为容易,而且采用线程提高系统的并行能力比采用进程更为有效。
(3)同一进程的线程共享进程的用户地址空间,所以同一进程的线程间的通信更容易实现。
5.
在实际系统中,两种处理办法都是可行的,且各有优缺点。
若撤消,则该进程的任务可能还没有完成,这显然是不利的,特别是当该进程的运行结果对其他进程的运行很重要(如该进程是其他进程的前趋进程,没有它的运行结果其他进程无法运行)时;
若不撤消,则该进程又可能成为不可控的"
孤儿"
,从而产生不可预测的结果。
比较好的做法是,当一个进程的父进程被撤消时,可以将该进程"
过继"
给系统内一个级别较高的进程(如Unix中的1#进程),让它有一个"
新的父亲"
,这样既可以继续完成其任务又不会成为不可控的。
6.
进程同步问题若处理不当,有可能会产生种种"
与时间有关性错误"
,特别是当两个或多个进程共享了公共变量而又没有互斥地使用这些变量时,极有可能导致用户程序运行结果的不正确,这量种灾难性的后果。
这种OS显然是不成功的,是用户不敢使用的。
有以下四条准则:
空闲让进、忙则等待、有限等待、让权等待。
7.
进程间存在着两种相互制约的关系:
直接制约关系(即同步问题)和间接制约关系(即互斥问题)。
同步问题是存在逻辑关系的进程之间相互等待产生的制约关系,互斥问题是相互无逻辑关系的进程间竞争使用相同的资源所发生的制约关系。
(1)属于互斥关系,因为书的个数是有限的,一本书只能借给一个同学。
(2)属于互斥关系,篮球只有一个,两队都要争夺。
(3)属于同步关系,各道工序的开始都依赖前道工序的完成。
(4)属于同步关系,商品没生产出来,消费无法进行,商品未消费完,生产也无需进行。
8.
(1)高级调度又称为作业调度。
它是批处理系统中使用的一种调度。
其主要任务是按照某种算法从外存的后备队列上选择一个或多个作业调入内存,并为其创建进程、分配必要的资源,然后再将所创建的进程控制块插入就绪队列中。
(2)低级调度又称进程调度。
它是距离硬件最近的一级调度。
其主要任务是按照某种算法从就绪队列上选择一个(或多个)进程,使其获得CPU。
(3)引入中级调度的目的是为了提高内存利用率和系统吞吐量。
其功能是,让那些暂时不能运行的进程不再占用宝贵的内存资源,而是调其到外存上等候。
此时的进程状态为挂起状态。
当这些进程重新具备运行条件且内存空闲时,由中级调度选择一部分挂起状态的进程调入内存并将其状态变为就绪状态。
9.
(1)时间片原则。
在轮转算法中,CPU轮流为诸多进程服务,每个进程运行完自己的时间片后,系统就将CPU剥夺过来,交给下一个进程使用。
(2)优先级原则。
为紧迫的作业赋予较高的优先级,这种作业到达系统或由阻塞状态被唤醒后,若其优先级高于当前运行的进程的优先级,可以剥夺当前运行进程的CPU。
(3)短作业(进程)优先原则。
若一个作业(进程)到达系统,其运行长度比当前运行的进程长度明显的短,则剥夺当前运行的进程CPU。
10.
1)一个进程运行完毕。
(2)一个正在运行的进程被阻塞。
(3)在抢占式调度中,一个高优先级的进程被创建。
(4)在抢占式调度中,一个高优先级进程由阻塞唤醒。
(5)在轮转式调度中,正垢进程运行完一个时间片。
11.
(1)死锁是指多个进程因竞争资源而造成的一种僵持状态。
若无外力作用,这些进程都将永远处于阻塞状态,不能再运行下去。
(2)产生死锁的原因有:
资源不足、进程推进次序不当。
(3)产生死锁的必要条件有:
互斥条件、请求和保持条件、非剥夺条件、环路等待条件。
比较三种解决死锁的方法:
(1)预防死锁方法,主要是破坏产生死锁的必要条件。
该方法是最容易实现的,但系统资源利用率较低。
(2)避免死锁方法,比较实用的有银行家算法(BankerAlgorithm)。
该算法需要较多的数据结构,实现起来比较困难,但资源利用率最高。
(3)检测死锁方法是基于死锁定理设计的。
定期运行该算法对系统的状态进行检测,发现死锁便予以解除。
其中,需要比较一下各咱死锁解除方案的代价,找到代价最小的方案。
该方法最难实现,资源利用率较高。
12.
(1)每个进程实体中包含了程序段和数据段这两个部分,因此说进程是与程序是紧密相关的。
但从结构上看,进程实体中除了程序段和数据段外,还必须包含一个数据结构,即进程控制块PCB。
(2)进程是程序的一次执行过程,因此是动态的;
动态性还表现在进程由创建而产生、由调度而执行、由撤消而消亡,即它具有一定的生命周期。
而程序则只是一组指令的有序集合,并和永久地存放在某种介质上,其本身不具有运动的含义,因此是静态的。
(3)多个进程实体可同时存放在内存中并发地执行,也正是引入进程的目的。
而程序(在没有为它创建进程时)的并发执行具有不可再现性,因此程序不能正确地并发执行。
(4)进程是一个能够独立运行、独立分配资源和独立接受调度的基本单位。
而因程序不具有PCB,所以它是不可能在多道程序环境下独立运行的。
(5)程与程序不一一对应。
同一个程序的多次运行,将形成多个不同的进程;
同一个程序的一次执行也可以产生多个进程;
而一个进程也可以执行多个程序。
#defineCHAIRS/*为等候的顾客准备的椅子数*/
semaphorecustomers=0;
semaphorebarbers=0;
semaphoremutex=1;
/*用于互斥*/
intwaiting=0;
voidbarber()
{
while
(1)
wait(customers);
wait(mutex);
waiting=waiting-1;
signal(mutex);
理发;
signal(barbers);
}
voidcustomers()
if(waiting<
CHAIRS)
waiting=waiting+1;
signal(mutex):
signal(customers);
坐下等待;
wait(barbers);
else
为了实现计算进程和打印进程之间的同步,并使单缓冲中的每个计算结果都被两个打印进程分别打印一次。
可设置四个信号量:
full1表示缓冲中是否有可供P01打印的计算结果,full2表示缓冲中是否有可给P02打印的计算结果;
emptypl、empty2则表示计算结果是否已被P01l、P02取走,只有当一个结果被两个打印进程都取走后,缓冲区才变空,计算进程才可将下一个计算结果放入单缓冲。
相应的同步算法可描述如下:
Varempty1,enpty2,full1,full2:
semaphore:
=1,1,0,0;
begin
Parbegin
PC:
begin
Repeat
computrtnextnumber;
P(empty1):
P(empty2);
addthenumbertobufer;
V(full1);
V(full2);
Untilfa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 作业 答案 资料