计算机操作系统作业2含答案全解.docx

上传人:b****1 文档编号:14073751 上传时间:2023-06-20 格式:DOCX 页数:24 大小:66.78KB
下载 相关 举报
计算机操作系统作业2含答案全解.docx_第1页
第1页 / 共24页
计算机操作系统作业2含答案全解.docx_第2页
第2页 / 共24页
计算机操作系统作业2含答案全解.docx_第3页
第3页 / 共24页
计算机操作系统作业2含答案全解.docx_第4页
第4页 / 共24页
计算机操作系统作业2含答案全解.docx_第5页
第5页 / 共24页
计算机操作系统作业2含答案全解.docx_第6页
第6页 / 共24页
计算机操作系统作业2含答案全解.docx_第7页
第7页 / 共24页
计算机操作系统作业2含答案全解.docx_第8页
第8页 / 共24页
计算机操作系统作业2含答案全解.docx_第9页
第9页 / 共24页
计算机操作系统作业2含答案全解.docx_第10页
第10页 / 共24页
计算机操作系统作业2含答案全解.docx_第11页
第11页 / 共24页
计算机操作系统作业2含答案全解.docx_第12页
第12页 / 共24页
计算机操作系统作业2含答案全解.docx_第13页
第13页 / 共24页
计算机操作系统作业2含答案全解.docx_第14页
第14页 / 共24页
计算机操作系统作业2含答案全解.docx_第15页
第15页 / 共24页
计算机操作系统作业2含答案全解.docx_第16页
第16页 / 共24页
计算机操作系统作业2含答案全解.docx_第17页
第17页 / 共24页
计算机操作系统作业2含答案全解.docx_第18页
第18页 / 共24页
计算机操作系统作业2含答案全解.docx_第19页
第19页 / 共24页
计算机操作系统作业2含答案全解.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机操作系统作业2含答案全解.docx

《计算机操作系统作业2含答案全解.docx》由会员分享,可在线阅读,更多相关《计算机操作系统作业2含答案全解.docx(24页珍藏版)》请在冰点文库上搜索。

计算机操作系统作业2含答案全解.docx

计算机操作系统作业2含答案全解

一、选择丿

1.在进程的组成部分之中,进程在运行中不可修改的部分是O

A.私用程序段B.共享程序段

C.数据段D.进程控制块

2.响应比高者优先作业调度算法是以计算时间和来考虑的。

A.输入时间B.完成时间C.周转时间D.等待时间

3.在消息缓冲通信中,消息队列属于资源。

A.临界B.共享C.永久D.可剥夺

4.进程间的同步是指进程间在逻辑上的相互关系。

A.联接B.制约C.继续D.调用

5.最适合于分时系统的进程调度算法是。

A.先来先服务(FCFS)B.最短作业优先(SSJF)

C.优先数法D.轮转法(RR)

6.进程A和进程E通过共享缓冲区协作完成数据处理,进程A负贵生产数据并放入

缓冲区,进程B从缓冲区中读数据并输出。

进程A和进程B之间的关系是。

A.互斥关系B.同步关系C.互斥和同步D.无制约关系

7.在优先级调度中,类进程可能被“饿死”,即长时间得不到调度。

A.短进程B.长进程C.低优先级进程D.大内存进程

8.进程从运行状态到阻塞状态可能是由于。

A.进程调度程序的调度B.现运行进程的时间片耗尽

C.现运行进程执行了wait操作D.现运行进程执行了signal操作

9.银行家算法在解决死锁问题中是用于的。

A.预防死锁B.避免死锁C.检测死锁D.解除死锁

10.不是进程调度算法。

A.时间片轮转法B.先来先服务方法

C.响应比高者优先法D.均衡调度算法

11.下面关于线程的叙述中正确的是。

A.线程包含CPU现场,可以独立执行程序B.每个线程有自己独立的地址空间

C.线程之间的通信必须使用系统调用函数D.进程只能包含一个线程

12.并发进程之间o

A.彼此无关B.必须同步C.必须互斥D.可能需要同步或互斥

13.当一个进程运行时,系统可能基于某种原则强行将其撤下,把处理器分配给其他进

程,这种调度方式是O

A.非剥夺方式B.剥夺方式C.中断方式D.查询方式

14.信号量S不能用于操作。

A.signalB.waitC.赋初值D.运算表达式

15.是一种只能进行wait操作和signal操作的特殊变量

A.调度B.进程C.同步D.信号量

16.分配给进程占用处理机的时间到而强迫进程P让出处理器,或有更高优先级的进

程要运行,迫使正在运行的进程P让出处理器,则进程P状态变化的情况为

A.运行态一>就绪态B.运行态一>等待态

C.就绪态一>运行态D.等待态一>就绪态

17.下面关于进程的叙述中正确的是。

A.CPU现场B.进程优先级C.进程运行状态D.文件缓冲区

29.PCE是描述进程状态和特性的数据结构,一个进o

A.可以有多个PCEB.可以和其他进程共用一个PCE

C.可以没有PCED.只能有唯一的PCE

30.资源顺序分配法破坏了死锁发生的必要条件。

A.互斥占用B.占有等待C.非剥夺D.循坏等待

解析:

发生死锁的四个必要条件如下:

互斥条件、占有并请求资源、非剥夺条件和循环等待条件。

一次分配所有资源的方法是当进程需要资源时,一次性提出所有的请求,若请求的所有资源均满足则分配,只要有一项不满足,那么不分配任何资源,该进程阻塞,直到所有的资源空闲后,满足了进程的所有需求时再分配。

这种分配方法不会部分占有资源,所以就打破了死锁的四个必要条件之一,实现了对死锁的预防。

但是,这种分配方式需要凑齐所有资源,所以,当一个进程所需的资源比较多时,资源的利用率会比较低,甚至会造成进程的饥饿。

正确答案为E。

31.进程和程序的本质区别是。

A.内存和外存B.动态和静态特征

C.共享和独占使用计算机资源D.顺序和非顺序执行指令

32.设有两个进程共享3个同类资源,为使系统不死锁,每个进程最多可以申请

资源。

A.0B.1C.2D.3

33.作业调度中的先来先服务算法是以为出发点考虑的。

A.作业执行时间B.作业的周转时间

C.作业等待时间D.等待时间加运行时同

34.设m为同类资源数,n为系统中的并发进程数。

当n个进程共享m个互斥资源时,

每个进程的最大需求是w。

下列情况下,系统会死锁的是。

A.111=2,11=1,^2B.m=2,n=2,w=l

C.m=4,n=3,W=2D.m=4,n=2,w=3

当2个进程已经拥有2个资源,都申请第3个资源时,导致死锁。

35.用于解决进程间互斥的方法是。

①信号量及went、signal操作②加锁与解锁③信箱方式

④消息缓冲方式⑤特权指令方式

A.③、④和⑤B.①和②C.①和③D.②和⑤

36.在操作系统中,每个进程具有独立性,进程之间又具有相互制约性。

对于任何两个

并发进程,它们

二、简答题

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),它们通过共享两个缓冲区bufl和bu£2协作完成任务。

如下图所示

三个进程之间的合作关系如下:

(1)输入进程使用put()函数把数据送到bufl,供计算进程调用calculateQ函数计算;

(2)计算进程每次调用get()函数从bufl取出已输入的可计算的数据进行计算,并把计算结果使用put。

函数把数据送到bu£2送入buf供输出进程打印;

(3)输出进程调用get。

函数把bu£2中的数据使用pirnt()函数输出。

定义合适的信号量,并用伪代码完成实现过程。

4.设系统中有三类资源A、E和C,又设系统中有5个进程Pl,P2,P3,P4和P5。

在T0时刻系统状态如下:

最大需求量

己分配资源量

剩余资源量

A

B

C

A

B

C

ABC

P1

1

2

10

0

0

3

163

P2

1

7

5

1

0

0

P3

2

3

5

1

3

5

P4

0

6

4

0

0

2

P5

0

6

5

0

0

1

(1)系统是否处于安全状态?

(请给出详细的判断过程)如是,则给出进程安全序列。

(2)如果进程P5申请1个资源类A和1个资源类C,能否实施分配?

为什么?

5.设有五道作业,它们的提交时间和运行时间见下表,试给出在如下表所示的三种调度算法下,作业的执行顺序,以及平均周转时间和带权平均周转时间:

\7\lz)x

123z(\z<\z<\

先来先服务调度算法;

短作业优先调度算法;响应比高优先调度算法。

作业提交和运行时间表

作业名

提交时间血

需执行时间/h

JI

10.1

0.8

J2

103

0.5

J3

10.5

0.4

J4

10.6

03

J5

10.7

0.2

6.假设系统有同类资源10个,供P,Q、R三个进程共享,P、Q、R所需资源总数分别为8、4、9,它们申请资源的次序和数量如下表所示。

进程资源申请表

次序

进程

申请量

1

R

2

2

P

4

3

Q

2

4

P

2

5

R

1

6

Q

2

按银行家算法为它们分配资源:

(1)写出执行完序号为6的申请时,各进程的状态和已占的资源数。

(2)请估计系统是否会出现死锁,并简要说明理由。

7.下面给出的两个进程互斥的算法是安全的吗?

为什么?

#definetrue;

#definefalse;

Hitflag[2];

flag[1]=flag[2]=false;

enter-crtsec(i)

inti;

{

Wlule(flag[l-i])

flag[i]=tme;

}

leave-crtsec(i)

Inti;

{

flag[i]=false;

}

processI;

Enter-cilsec(i);

Incriticalsection;

Leave-citsec(i);

&设系统有三种类型的资源,数量为(4,2,2),系统中有进程A,C按如下顺序请

求资源:

进程A申请(3,2,1)

进程E申请(1,0,1)

进程A申请(0,1,0)

进程C申请(2,0,0)

请你给出一和防止死锁的资源剥夺分配策略,完成上述请求序列,并列出资源分配过程,指明哪些进程需要等待,哪些资源被剥夺。

9.进程Al,A2,…,Ail通过K个缓冲区向进程Bl,B2,…,Bm不断地发送消息。

发送和接收工作遵循如下规则:

(1)每个发送进程一次发送一个消息,写入缓冲区,缓冲区大小与消息长度一致;

⑵对每个消息,Bl,B2,…,Bm都需接收一次,读入各自的数据区内;

(3)K个缓冲区都满时,发送进程等待,没有可读的消息时,接收进程等待。

试用wait和signal原语操作组织正确的发送和接收操作。

一、选择题

BDABDBCCBDADBDDAABADDCCAACCDDDBCCDBC

二、简答题

线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度实体。

在具有多线程机制的操作系统中,处理机调度的基本单位不是进程而是线程。

一个进程可以有多个线程,而且至少有一个可执行线程。

进程和线程的关系是:

(1)线程是进程的一个组成部分。

(2)进程的多个线程都在进程的地址空间活动。

(3)资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源分配额中扣除并分配给它。

(4)处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。

(5)线程在执行过程中,需要同步。

2.

唤醒进程和撤消进程都是要通过CPU上运行程序来实现的。

一个进程入睡了,它就不可能被调度到CPU上运行;一个进程在撤消前必须先进入终止状态,而处于终止状态的进程不可能被调度到CPU上运行。

因此,进程被唤醒、被撤消都不能由自己来完成,只能由别的进程实现。

3.

一个进程创建子进程之后,进程与产生的进程之间的关系是父子关系,分别成为进程和子进程。

子进程一经产生就与你进程并发执行,子进程共享父进程和子进程。

子进程一经产生就与你进程并发执行,子进程共享父进程的正文段和已经打开的文件。

4.

(1)以线程作为系统调度的基本单位,减少了系统的时空开销。

以进程为系统调度的基本单位的系统中,进程的切换是很频繁的。

在切换中由于要保留当时的运行环境,还要设置新选中的进程的运行坏境,这既花费了处理机的时间,又增加了主存的空间,从而也限制了系统进程的数量和进程的切换速度。

(2)引进线程提高了系统的并行能力。

线程作为进程内的一个可执行实体,减少了并行粒度。

线程作为调度的基本单位而不是资源分配的基本单位,调度更为容易,而且采用线程提高系统的并行能力比采用进程更为有效。

(3)同一进程的线程共享进程的用户地址空间,所以同一进程的线程间的通信更容易实现。

5.

在实际系统中,两种处理办法都是可行的,且各有优缺点。

若撤消,则该进程的任务可能还没有完成,这显然是不利的,特别是当该进程的运行结果对其他进程的运行很重要(如该进程是其他进程的前趋进程,没有它的运行结果其他进程无法运行)时;若不撤消,则该进程又可能成为不可控的”孤儿”,从而产生不可预测的结果。

比较好的做法是,当一个进程的父进程被撤消时,可以将该进程”过继”给系统内一个级别较高的进程(如Umx中的1#进程),

让它有一个”新的父亲”,这样既可以继续完成其任务又不会成为不可控的。

6.

进程同步问题若处理不当,有可能会产生种种”与时间有关性错误”,特别是当两个或多个进程共享了公共变量而又没有互斥地使用这些变量时,极有可能导致用户程序运行结果的不正确,这量种灾难性的后果。

这种os显然是不成功的,是用户不敢使用的。

有以下四条准则:

空闲让进、忙则等待、有限等待、让权等待。

7.

进程间存在着两种相互制约的关系:

直接制约关系(即同步问题)和间接制约关系(即互斥问题)。

同步问题是存在逻辑关系的进程之间相互等待产生的制约关系,互斥问题是相互无逻辑关系的进程间竞争使用相同的资源所发生的制约关系。

因为书的个数是有限的,一本书只能借给一个同学。

篮球只有一个,两队都要争夺。

各道工序的开始都依赖前道工序的完成。

商品没生产出来,消费无法进行,商品未消费完,生产也无需进

(1)高级调度又称为作业调度。

它是批处理系统中使用的一种调度。

其主要任务是按照某种算法从外存的后备队列上选择一个或多个作业调入内存,并为其创建进程、分配必要的资源,然后再将所创建的进程控制块插入就绪队列中。

(2)低级调度又称进程调度。

它是距离硕件最近的一级调度。

其主要任务是按照某种算法从就绪队列上选择一个(或多个)进程,使其获得CPUo

(3)引入中级调度的目的是为了提高内存利用率和系统吞吐量。

其功能是,让那些暂时不能运行的进程不再占用宝贵的内存资源,而是调其到外存上等候。

此时的进程状态为挂起状态。

当这些进程重新具备运行条件且内存空闲时,由中级调度选择一部分挂起状态的进程调入内存并将其状态变为就绪状态。

9.

(1)时间片原则。

在轮转算法中,CPU轮流为诸多进程服务,每个进程运行完自己的时间片后,系统就将CPU剥夺过来,交给下一个进程使用。

(2)优先级原则。

为紧迫的作业赋予较高的优先级,这种作业到达系统或由阻塞状态被唤醒后,若其优先级高于当前运行的进程的优先级,可以剥夺当前运行进程的CPU。

(3)短作业(进程)优先原则。

若一个作业(进程)到达系统,其运行长度比当前运行的进程长度明显的短,则剥夺当前运行的进程CPU。

10.

1)一个进程运行完毕。

(2)一个正在运行的进程被阻塞。

(3)在抢占式调度中,一个高优先级的进程被创建。

(4)在抢占式调度中,一个高优先级进程由阻塞唤醒。

(5)在轮转式调度中,正垢进程运行完一个时间片。

(1)死锁是指多个进程因竞争资源而造成的一种僵持状态。

若无外力作用,这些进程都将永远处于阻塞状态,不能再运行下去。

(2)产生死锁的原因有:

资源不足、进程推进次序不当。

(3)产生死锁的必要条件有:

互斥条件、请求和保持条件、非剥夺条件、环路等待条件。

比较三种解决死锁的方法:

(1)预防死锁方法,主要是破坏产生死锁的必要条件。

该方法是最容易实现的,但系统资源利用率较低。

(2)避免死锁方法,比较实用的有银行家算法(BankerAlgorithm)o该算法需要较多的数据结构,实现起来比较困难,但资源利用率最高。

(3)检测死锁方法是基于死锁定理设计的。

定期运行该算法对系统的状态进行检测,发现死锁便予以解除。

其中,需要比较一下各咱死锁解除方案的代价,找到代价最小的方案。

该方法最难实现,资源利用率较高。

12・

(1)每个进程实体中包含了程序段和数据段这两个部分,因此说进程是与程序是紧密相关的。

但从结构上看,进程实体中除了程序段和数据段外,还必须包含一个数据结构,即进程控制块PCE。

(2)进程是程序的一次执行过程,因此是动态的:

动态性还表现在进程由创建而产生、由调度而执行、由撤消而消亡,即它具有一定的生命周期。

而程序则只是一组指令的有序集合,并和永久地存放在某种介质上,其本身不具有运动的含义,因此是静态的。

(3)多个进程实体可同时存放在内存中并发地执行,也正是引入进程的目的。

而程序(在没有为它创建进程时)的并发执行具有不可再现性,因此程序不能正确地并发执行。

(4)进程是一个能够独立运行、独立分配资源和独立接受调度的基本单位。

而因程序不具有PCB,所以它是不可能在多道程序环境下独立运行的。

(5)程与程序不一一对应。

同一个程序的多次运行,将形成多个不同的进程;同一个程序的一次执行也可以产生多个进程;而一个进程也可以执行多个程序。

三、应用题

1.

^defineCHAIRS/*为等候的顾客准备的椅子数*/

semaphorecustomers=0:

semaphorebarbeis=O;

semaphoremutex=l:

/*用于互斥*/

mtwaiting";

voidbaiberQ

{

wliile

(1)

{

wait(customers);

wait(mutex);

waitmg=waiting-l:

signal(mutex);

理发;

signal(barbers):

}

}

voidcustomers()

{

wait(mutex);

if(waitmg

{

waitmg=waitnig+l:

signal(mutex):

signal(customers):

坐下等待;

wait(barbers):

}

else

{

signal(mutex);

}

}

2.

为了实现计算进程和打印进程之间的同步,并使单缓冲中的每个计算结果都被两个打印进程分别打印一次。

可设置四个信号量:

fbiii表示缓冲中是否有可供poi打印的计算结果,h】112表示缓冲中是否有可给P02打印的计算结果:

emptypkemptv2则表示计算结果是否已被P011、P02取走,只有当一个结果被两个打印进程都取走后,缓冲区才变空,计算进程才可将下一个计算结果放入单缓冲。

相应的同步算法可描述如下:

Varempty1,enpty2.fiillhfull2:

semaphore:

=1,1,0.0;

begin

Parbegin

PC:

begm

Repeat

computrtnextnumber;

P(eniptvl):

P(eniptv2);

addthenumbertobufer;

V(fiilll);

V(丘】112);

Untilfalse;

end

P01:

begin

repeat

P(fuUl);

takefrombufer;

V(emptyl):

printlastnumber;

untilflase;

end

P02:

begin

Repeat

P(hiU2):

takefrombuffer;

V(empty2);

printlastnumber;

untilfalse

end

paiend

end

3.

信号量:

nonfl.nonel:

输入进程与计算进程同步,bufl是否为空;

nonf2、nonel:

计算进程与输出进程同步,bu£2是否为空;

si、s2:

分别互斥使用bufl和bu£2

procedureinput

begin

wait(nonfl)

wait(sl)

put(data);

signal(sl);

signal(nonel);

untilfalse

end;

procedurecompute

begin

wait(nonel);

wait(sl);

data=getQ;

data=calculate(data);

signals1);

signal(nonfl);

wait(nonf2);

wait(s2);

put(data);

signal(s2);signal(none2);untilfalse

end;

procedureoutput

begin

wait(none2);

wait(s2);data=getQ;print(data);signal(s2);

signal(nonf2);untilfalse

end;

4.

(1)利用安全性算法对TO时刻的资源分配情况进行分析,结果如下:

Work

Need

Allocation

Work+Allocation

Finish

P3

163

100

135

298

true

P1

298

127

003

2911

true

P2

2911

075

100

3911

true

P4

3911

064

002

3913

true

P5

3913

062

001

3914

true

系统处于安全状态,安全序列为:

P3,Pl,P2,P4,P5o

(2)Pl发出请求向量Request!

(1,0,1),系统按银行家算法进行检查:

1)Request1(L0,1)<=Needl(l,2,6)

2)Request1(1,0,1)<=AvailablyI,6,3)

3)系统先假定可为Pl分配资源,并修改Available.Allocation!

Needl向量,资源

变化情况如下:

剩余资源可满足P4,分给P4给还后(064)可满足P5,分配P5归还后(065)不满足其它进程要求,即不能实施分配,因为分配后找不到安全序列,系统将处于不安全状态。

5.

2.

(1)采用先来先服务(FCFS)算法。

作业名

提交时间/h

需执行时间/h

开始运行时间/h

完成时间/h

JI

10.1

0.3

10.1

10.4

J2

103

0.5

10.4

10.9

J3

10.5

0.4

10.9

11.3

J4

10.6

0.3

11.3

11.6

J5

10.7

0.2

116

11.8

JbJ2,J3,J4,J5

T=[(10・4」0・l)+(10・9J0・3)+(ll・3・10

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2