计算机操作系统作业(二)_第1页
计算机操作系统作业(二)_第2页
计算机操作系统作业(二)_第3页
计算机操作系统作业(二)_第4页
计算机操作系统作业(二)_第5页
免费预览已结束,剩余8页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机操作系统作业(二)计算机操作系统作业(二)计算机操作系统作业(二)资料仅供参考文件编号:2022年4月计算机操作系统作业(二)版本号:A修改号:1页次:1.0审核:批准:发布日期:选择题1.在进程的组成部分之中,进程在运行中不可修改的部分是___B__。A.私用程序段B.共享程序段C.数据段D.进程控制块2.在消息缓冲通信中,消息队列属于___A___资源。A.临界B.共享C.永久D.可剥夺3.进程间的同步是指进程间在逻辑上的相互___B___关系。A.联接B.制约C.继续D.调用4.进程A和进程B通过共享缓冲区协作完成数据处理,进程A负责生产数据并放入缓冲区,进程B从缓冲区中读数据并输出。进程A和进程B之间的关系是____B__。A.互斥关系B.同步关系C.互斥和同步D.无制约关系5.进程从运行状态到阻塞状态可能是由于_C____。A.进程调度程序的调度B.现运行进程的时间片耗尽C.现运行进程执行了wait操作D.现运行进程执行了signal操作6.下面关于线程的叙述中正确的是__A____。A.线程包含CPU现场,可以独立执行程序B.每个线程有自己独立的地址空间C.线程之间的通信必须使用系统调用函数D.进程只能包含一个线程7.并发进程之间___D___。A.彼此无关B.必须同步C.必须互斥D.可能需要同步或互斥8.信号量S不能用于___D___操作。A.signalB.waitC.赋初值D.运算表达式9.___D___是一种只能进行wait操作和signal操作的特殊变量A.调度B.进程C.同步D.信号量10.分配给进程占用处理机的时间到而强迫进程P让出处理器,或有更高优先级的进程要运行,迫使正在运行的进程P让出处理器,则进程P状态变化的情况为___A___A.运行态->就绪态B.运行态->等待态C.就绪态->运行态D.等待态->就绪态11.下面关于进程的叙述中正确的是__A____。A.进程获得CPU运行是通过调度得到的B.优先级是进程调度的重要依据,一旦确定就不能改变C.在单CPU的系统中,任何时刻都有一个进程处于运行状态D.进程申请CPU得不到满足时,其状态变为阻塞12.操作系统通过__B____对进程进行管理。A.进程B.进程控制块C.进程启动程序D.进程控制区13.若一个进程拥有100个线程,这些线程属于用户级线程,它们在系统调度执行时间上占用的时间片个数是__A____。A.1B.100C.1/100D.014.到其他3种状态的进程状态是__D____。A.就绪B.阻塞C.完成D.执行15.信号量的初值为2,当前值为-3,则表示等待进程有___C___。A.1个B.2个C.3个D.5个16.wait操作可能导致___C___。A.进程就绪B.进程结束C.进程阻塞(等待)D.新进程创建17.下列的进程状态变化中不可能发生的变化是___A___。A.等待→运行B.运行→等待C.运行→就绪D.等待→就绪18.如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置为__C____。A.3B.1C.2D.019.一个进程释放一种资源将有可能导致一个或几个进程___D___。A.由就绪变运行B.由运行变就绪C.由阻塞变运行D.由阻塞变就绪20.进程控制块PCB不包括的内容是___D___。A.CPU现场B.进程优先级C.进程运行状态D.文件缓冲区21.PCB是描述进程状态和特性的数据结构,一个进程___D___。A.可以有多个PCBB.可以和其他进程共用一个PCBC.可以没有PCBD.只能有唯一的PCB22.进程和程序的本质区别是___B___。A.内存和外存B.动态和静态特征C.共享和独占使用计算机资源D.顺序和非顺序执行指令23.用于解决进程间互斥的方法是___B___。①信号量及wait、signal操作②加锁与解锁③信箱方式④消息缓冲方式⑤特权指令方式A.③、④和⑤B.①和②C.①和③D.②和⑤24.在操作系统中,每个进程具有独立性,进程之间又具有相互制约性。对于任何两个并发进程,它们___C___。A.必定无关B.必定相关C.可能相关D.可能相同25.进程所请求的一次打印输出结束后,将使进程状态从__D____A.运行态变为就绪态B.运行态变为等待态C.就绪态变为运行态D.等待态变为就绪态解析:运行中的进程有3种状态:运行状态、就绪状态和等待状态。运行状态:是指进程已获得CPU,并且在CPU中执行的状态。就绪状态:是指进程已具备运行条件,但由于没有获得CPU而不能运行所处的状态,一旦CPU分配给它,就可以运行。等待状态:是指进程因等待某种事件发生而暂时不能运行的状态。例如,当两个进程竞争使用同一资源时,没有占用该资源的进程便处于等待状态。它必须等到该资源被释放后才可以去使用它。引起等待的原因一旦消失,进程就变为就绪状态,以便在适当的时候投入运行。26.在下面的叙述中,不正确的是__C___。A.一个进程可创建一个或多个线程B.一个线程可创建一个或多个线程C.一个线程可创建一个或多个进程D.一个进程可创建一个或多个进程27.在下面的叙述中正确的是___B___。A.线程是比进程更小的能独立运行的基本单位B.引入线程可提高程序并发执行的程度,可进一步提高系统效率C.线程的引入增加了程序执行时时空开销D.一个进程一定包含多个线程解析:线程是进程内一个相对独立的执行单元,但并不能单独运行,只能在程序中运行。线程的引入减少了程序执行时的时空开销。一个进程可包含一个或多个线程。28.下面关于线程的叙述中,正确的是__C____)。A.不论是系统支持线程还是用户级线程,其切换都需要内核的支持B.线程是资源的分配单位,进程是调度和分配的单位C.不管系统中是否有线程,进程都是拥有资源的独立单位D.在引入线程的系统中,进程仍是资源分配和调度分派的基本单位解析:引入线程后,进程仍然是资源分配的单位。线程是处理器调度和分派的单位,线程本身不具有资源,它可以共享所属进程的全部资源29.在下面的叙述中,正确的是___D___。A.引入线程后,处理机只在线程间切换B.引入线程后,处理机仍在进程间切换C.线程的切换,不会引起进程的切换D.线程的切换,可能引起进程的切换30.进程依靠__D____从阻塞状态过渡到就绪状态。A.程序员的命令B.系统服务C.等待下一个时间片到来D."合作"进程的唤醒二、简答题1.什么是线程进程和线程的关系是什么 线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度实体。在具有多线程机制的操作系统中,处理机调度的基本单位不是进程而是线程。一个进程可以有多个线程,而且至少有一个可执行线程。进程和线程的关系是:(1)线程是进程的一个组成部分。(2)进程的多个线程都在进程的地址空间活动。(3)资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源分配额中扣除并分配给它。(4)处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。(5)线程在执行过程中,需要同步。2.进程能自己将自己唤醒吗进程能自己将自己撤销吗唤醒进程和撤消进程都是要通过CPU上运行程序来实现的。一个进程入睡了,它就不可能被调度到CPU上运行;一个进程在撤消前必须先进入终止状态,而处于终止状态的进程不可能被调度到CPU上运行。因此,进程被唤醒、被撤消都不能由自己来完成,只能由别的进程实现。3.父进程创建子进程之后,父子进程间的关系是什么?一个进程创建子进程之后,进程与产生的进程之间的关系是父子关系,分别称为父进程和子进程。子进程一经产生就与父进程并发执行,子进程共享父进程的正文段和已经打开的文件。4.简述引进线程的好处。

(1)以线程作为系统调度的基本单位,减少了系统的时空开销。以进程为系统调度的基本单位的系统中,进程的切换是很频繁的。在切换中由于要保留当时的运行环境,还要设置新选中的进程的运行环境,这既花费了处理机的时间,又增加了主存的空间,从而也限制了系统进程的数量和进程的切换速度。

(2)引进线程提高了系统的并行能力。线程作为进程内的一个可执行实体,减少了并行粒度。线程作为调度的基本单位而不是资源分配的基本单位,调度更为容易,而且采用线程提高系统的并行能力比采用进程更为有效。

(3)同一进程的线程共享进程的用户地址空间,所以同一进程的线程间的通信更容易实现。5.当一个进程的父进程被撤销时,该进程是撤销好还是不撤销好? 在实际系统中,两种处理办法都是可行的,且各有优缺点。若撤消,则该进程的任务可能还没有完成,这显然是不利的,特别是当该进程的运行结果对其他进程的运行很重要(如该进程是其他进程的前趋进程,没有它的运行结果其他进程无法运行)时;若不撤消,则该进程又可能成为不可控的"孤儿",从而产生不可预测的结果。比较好的做法是,当一个进程的父进程被撤消时,可以将该进程"过继"给系统内一个级别较高的进程(如Unix中的1#进程),让它有一个"新的父亲",这样既可以继续完成其任务又不会成为不可控的。6.为什么说进程同步问题关系到OS的成败同步机制应遵循的准则是什么 进程同步问题若处理不当,有可能会产生种种"与时间有关性错误",特别是当两个或多个进程共享了公共变量而又没有互斥地使用这些变量时,极有可能导致用户程序运行结果的不正确,这量种灾难性的后果。这种OS显然是不成功的,是用户不敢使用的。有以下四条准则:空闲让进、忙则等待、有限等待、让权等待。7.进程之间存在哪几种相互制约关系各是什么原因引起的下列活动分别属于哪种制约关系(1)若干同学去图书馆借书。(2)两队举行篮球比赛。(3)流水线生产的各道工序。(4)商品生产和消费。进程间存在着两种相互制约的关系:直接制约关系(即同步问题)和间接制约关系(即互斥问题)。同步问题是存在逻辑关系的进程之间相互等待产生的制约关系,互斥问题是相互无逻辑关系的进程间竞争使用相同的资源所发生的制约关系。(1)属于互斥关系,因为书的个数是有限的,一本书只能借给一个同学。(2)属于互斥关系,篮球只有一个,两队都要争夺。(3)属于同步关系,各道工序的开始都依赖前道工序的完成。(4)属于同步关系,商品没生产出来,消费无法进行,商品未消费完,生产也无需进行。8.试比较说明进程和程序的区别有哪些? (1)每个进程实体中包含了程序段和数据段这两个部分,因此说进程是与程序是紧密相关的。但从结构上看,进程实体中除了程序段和数据段外,还必须包含一个数据结构,即进程控制块PCB。(2)进程是程序的一次执行过程,因此是动态的;动态性还表现在进程由创建而产生、由调度而执行、由撤消而消亡,即它具有一定的生命周期。而程序则只是一组指令的有序集合,并和永久地存放在某种介质上,其本身不具有运动的含义,因此是静态的。(3)多个进程实体可同时存放在内存中并发地执行,也正是引入进程的目的。而程序(在没有为它创建进程时)的并发执行具有不可再现性,因此程序不能正确地并发执行。(4)进程是一个能够独立运行、独立分配资源和独立接受调度的基本单位。而因程序不具有PCB,所以它是不可能在多道程序环境下独立运行的。(5)程与程序不一一对应。同一个程序的多次运行,将形成多个不同的进程;同一个程序的一次执行也可以产生多个进程;而一个进程也可以执行多个程序三、应用题1.有一个理发师,一把理发椅和n把供等候理发的顾客坐的椅子。如果没有顾客,则理发师便在理发椅子上睡觉;当一个顾客到来时,必须唤醒理发师,进行理发;如果理发师正在理发时,又有顾客来到,则如果有空椅子可坐,他就坐下来等,如果没有空椅子,他就离开。为理发师和顾客各编一段程序描述他们的行为,要求不能带有竞争条件。#defineCHAIRS/*为等候的顾客准备的椅子数*/semaphorecustomers=0;semaphorebarbers=0;semaphoremutex=1;/*用于互斥*/intwaiting=0;voidcustomers(){wait(mutex);if(waiting<CHAIRS){waiting=waiting+1;signal(mutex):signal(customers);坐下等待;wait(barbers);}else{signal(mutex);}voidbarber(){while(1){wait(customers);wait(mutex);waiting=waiting-1;signal(mutex);理发;signal(barbers);}}}2.计算进程PC和打印进程P01、P02共享一个单缓冲区,计算进程负责计算,并把计算结果放入单缓冲中;打印进程P01、P02则负责从单缓冲中取出计算结果进行打印,而且对每个计算结果,P01和P02都需分别打印一次。请用记录型信号量描述上述进程间的同步关系。为了实现计算进程和打印进程之间的同步,并使单缓冲中的每个计算结果都被两个打印进程分别打印一次。可设置四个信号量:full1表示缓冲中是否有可供P01打印的计算结果,full2表示缓冲中是否有可给P02打印的计算结果;emptypl、empty2则表示计算结果是否已被P01l、P02取走,只有当一个结果被两个打印进程都取走后,缓冲区才变空,计算进程才可将下一个计算结果放入单缓冲。相应的同步算法可描述如下:semaphoreempty1=1,enpty2=1,full1=0,full2=0;PC:While(1){computrtnextnumber;wait(empty1):wait(empty2);addthenumbertobufer;signal(full1);signal(full2);}P01:While(1){wait(full1);takefrombufer;signal(emptyl):printlastnumber;}P02:{wait(full2);takefrombuffer;signal(empty2);printlastnumber;}3.设有三个进程,输入进程(input)、计算进程(compute)和输出进程(output),它们通过共享两个缓冲区buf1和buf2协作完成任务。如下图所示三个进程之间的合作关系如下:(1)输入进程使用put()函数把数据送到buf1,供计算进程调用calculate()函数计算;(2)计算进程每次调用get()函数从buf1取出已输入的可计算的数据进行计算,并把计算结果使用put()函数把数据送到buf2送入buf供输出进程打印;(3)输出进程调用get()函数把buf2中的数据使用print()函数输出。定义合适的信号量,并用伪代码完成实现过程。信号量:nonf1、none1:输入进程与计算进程同步,buf1是否为空;nonf2、none1:计算进程与输出进程同步,buf2是否为空;s1、s2:分别互斥使用buf1和buf2procedureinputwhile(1){wait(nonf1)wait(s1)put(data);signal(s1);signal(none1);}procedurecomputewhile(1){wait(none1);wait(s1);data=get();data=calculate(data);signal(s1);signal(nonf1);wait(nonf2);wait(s2);put(data);signal(s2);signal(none2);}procedureoutputwhile(1){wait(none2);wait(s2);data=get();print(data);signal(s2);signal(nonf2);}4.下面给出的两个进程互斥的算法是安全的吗为什么#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);从概念上讲,系统中各进程在逻辑上是独立的,它们可以按各自的速度向前推进。但由于它们共享某些临界资源,因而产生了临界区问题。对于具有临界区问题的并发进程,它们之间必须互斥,以保证不会同时进入临界区。这种算法不是安全的。因为,在进入临界区的enter-crtsec()不是一个原语操作,如果两个进程同时执行完其循环(此前两个flag均为false),则这两个进程可同时进入临界区。5.进程A1,A2,…,An通过K个缓冲区向进程B1,B2,…,Bm不断地发送消息。发送和接收工作遵循如下规则:(1)每个发送进程一次发送一个消息,写

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论