您好,欢迎访问三七文档
1.1存储程序式的计算机的主要特点是什么?答:是集中顺序过程控制,即控制部件根据程序对整个计算机的活动实行集中过程控制,并根据程序规定的顺序依次执行每一个操作。集中控制:由CPU集中管理顺序性:程序计数器控制过程性:模拟人们手工操作过程1.2批处理系统和分时系统各具有什么特点?为什么分时系统的响应比较快?答:在批处理系统中操作人员将作业成批装入计算机并由计算机管理运行,在程序的运行期间用户不能干预,因此批处理系统的特点是:用户脱机使用计算机,作业成批处理,系统内多道程序并发执行以及交互能力差。在分时系统中不同用户通过各自的终端以及交互方式共同使用一台计算机,以计算机“分时”的方法轮流为每个用户服务。分时系统的主要特点是:多个用户使用计算机的同时性,人机问答方式的交互性,每个用户独立使用计算机的独占性以及系统响应的及时性。分时系统一般采用时间轮转的方法,使一台计算机同时为多个终端用户服务,因此分时系统的响应比较快。1.4什么是多道程序设计技术?试论述多道程序运行的特征。答:多道程序设计技术是指同时把多个作业(程序)放入内存并允许它们交替执行和共享系统中的各类资源;当一道程序因为某种原因(如I/O请求)而暂停执行时,CPU立即转去执行另一道程序。多道程序运行具有如下特征:多道:计算机内存中同时存放几道相互独立的程序、宏观上并行:同时进入系统的几道程序都处于运行过程中,它们先后开始了各自的运行,但都未运行完毕。微观上串行:从微观上看,内存中的多道程序轮流或分时地占有处理机,交替执行。1.6操作系统的主要特征是什么?为什么会具有这样的特征?答:操作系统具备的主要特征就是并发和共享。另外,由于操作系统要随时处理各种事件,所以它也具备不确定性。具有这样的特性是因为为了充分利用计算机系统的资源,一般采用多个同时性用户分用的策略。以顺序计算为基础的计算机系统要完成并处理的功能,必将导致顺序计算模型与并行计算模型的矛盾,必须解决资源共享和多任务并发执行的问题。2.1什么是操作系统虚拟机?答:配置了操作系统的裸机称为操作系统虚拟机。2.3什么是处理机的态?为什么要区分处理机的态?答:是中央处理机的工作状态,当前它正在执行哪些程序。为了保护操作系统和进行正确地管理和控制,其本身是不能被破坏的。为此,系统应建立一个保护环境,采用的办法就是区分处理机的工作状态。至少需要区分两种状态:管态和用户态。2.4什么是管态?什么是用户态?两者有何区别?答:管态(系统态)是操作系统管理程序执行时机器所处的状态。用户态(目的态)是用户程序执行时机器所处的状态。这需要计算机硬件的支持,在计算机状态寄存器下中需设置一个系统状态位(模式位)。若有了系统状态位就可以区分当前正在执行的是系统程序还是用户程序。2.5什么是中断?在计算机系统中为什么要引进中断?答:是指某个事件(如电源掉电、定点加法溢出或I/O传输结束等)发生时,系统中止现行程序的运行、引出处理事件程序对该事件进行处理,处理完毕后返回断点,继续执行。引进中断是为了实现并并发活动,为了实现计算机系统的自动化工作。2.8中断和俘获有什么不同?答:由处理机外部事件引起的中断称为外中断,又称中断。由处理机内部事件引起的中断称为俘获。终端和俘获的来源和响应的先后次序不同.2-9什么是中断响应,其实质是什么?答:中断响应是当处理机发现已有中断请求时,中止现行的程序执行,并自动引出中断处理程序的过程。其实质是交换指令执行地址和处理机状态。2.10什么是程序状态字,在微机中它一般由哪两部分组成?答:是反映程序执行时机器所处的现行状态的代码。在微机中它一般是由指令计数器(PC)和处理机状态寄存器(PS)组成。2.11什么是向量中断?什么是中断向量?答:向量中断是指当中断发生时,由中断源自己引导处理机进入中断服务程序的中断过程。中断向量就是存储该类型中断服务例行程序的入口地址和处理机状态字的存储单元。2.12以trap指令为例,用图说明自陷处理的一般过程。PC进栈PS进栈PC(指令计数器)PS(处理机状态字)SP(处理机堆栈指针)自陷处理程序的PC自陷处理程序的PS3436(3)(2)(1)(4)3.2系统引导的主要任务是什么?答:将操作系统的必要部分装入主存并使系统运行,最终处于命令接受状态。3.3处理应用程序分哪几个作业步?答:①用某种预言编制一个程序,该程序被称为源程序。②将源程序和初始数据记录在某种输入介质上,一般在终端设备上直接编辑源程序。③按照一定的要求控制计算机工作,并经过加工,最终计算出结果。3.4静态连接和动态链接有什么区别?答:静态连接是将所需的外部调用函数连接到目标文件中形成一个完整的主存映像文件。动态链接是将这一连接工作延迟到程序运行的时候进行,它需要的支持是动态链接库。3.6什么是系统调用?简述系统调用的执行过程。答:1、系统调用是操作系统提供给编程人员的唯一接口。是利用访管指令定义的指令。2、用户在程序中使用系统调用,给出系统调用名和函数后,即产生一条相应的陷入指令,通过陷入处理机制调用服务,引起处理机中断,然后保护处理机现场,取系统调用功能号并寻找子程序入口,通过入口地址表来调用系统子程序,然后返回用户程序继续执行。4.1试解释下列名词:程序的顺序执行一个计算由若干操作组成,而这些操作必须按照某种先后次序来执行,以保证操作的结果是正确的,则这类计算过程就是程序的顺序执行过程。程序的并发执行若干个程序段同时在系统中运行,这些程序段的执行在时间上是重叠的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重叠是很小的一部分,也称这几个程序段是并发执行的。4.3什么是进程?进程与程序的主要区别是什么?答:进程是指一个具有一定独立功能的程序关于某个数据集合的一次运行活动。进程是动态的,程序的静态的,进程是程序的动态执行过程。4-6进程有哪几种基本状态?在一个系统中为什么必须区分出这几种状态?答:进程有三种基本状态,即运行状态,就绪状态,等待状态。如果系统能为每个进程提供一台处理机,则系统中所有进程都可以同时执行,但实际上处理机的数目总是小于进程数,因此往往只有少数几个进程可真正获得处理机控制权。4.7某系统进程状态变迁图如图4.31所示,所采用的调度方法为非剥夺方法,回答以下问题:㈠发生变迁2、变迁3、变迁4、的原因是什么?答:当运行进程在分得的时间片内未完成,时间片到将发生变迁2.当运行进程在执行过程中,需要等待某时间的发生才能继续向下执行,此时会发生变迁3.当等待进程等待的事件发生了,将会发生变迁4.㈡下述因果变迁是否可能发生?如果可能的话,在什么情况下发生?①3→1②2→1③3→2④4→1答:正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在就绪队列非空时必然引起一个就绪进程被调度执行的变迁1。正运行的进程因时间片到变为就绪状态的变迁2,必然引起一个就绪进程被调度执行的变迁1.4.8什么是进程控制块?它有什么作用?答:为了描述一个进程和其他进程以及系统资源的关系,为了刻画一个进程在各个不同时期所处的状态,人们采用一了个与进程相联系的数据块,称为进程控制块PCB(processcontrolblock)或称为进程描述器(processdescriptor)。其作用是描述进程的动态特征,进程与其他进程和系统资源的关系。4-11在下图所示的进程流程图中,有五个进程合作完成某一任务。说明这五个进程之间的同步关系,并用p,v操作实现之,要求写出程序描述。答:main(){ints2,s3,s4,s5=0;/*表示进程p2,p3,p4,p5能否执行*/cobeginP1();P2();P3();P4();P5();coend}P1()P2()P3()P4()P5(){...{p(s2);{p(s3);{p(s4);{p(s5);...............v(s2);...........v(s3);}v(s5);v(s5);}v(s4);}}}4-18用于进程控制的原语主要有哪几个?答:主要有:创建原语,撤销原语,阻塞原语,唤醒原语。5.2什么是死锁?试举例说明?答:死锁是两个或多个进程被无限期地阻塞、相互等待的一种状态。设一个具有3个磁带驱动器的系统,现有3个进程,某时某刻,每个进程都占用了一个磁带SF见P116图4.33驱动器。如果每个进程都不释放自己已占用的磁带驱动器,而且还需要另一个磁带驱动器,那么这3个进程就会处于互相死等的状态,这种状态称为死锁。5-6下图表示一带闸门的运河,其上有两架吊桥。吊桥坐落在一条公路上,为使该公路避开一块沼泽地而令其横跨运河两次。运河和公路的交通都是单方向的。运河上的基本运输由驳船担负。在一艘驳船接近吊桥A时就拉汽笛警告,若桥上无车辆,吊桥就吊起,直到驳船尾部通过此桥为止。对吊桥B也按同样次序处理。(1)一艘典型驳船的长度为200米,当它在河上航行时是否会产生死锁?若会,其理由是什么?(2)如何能克服一个可能的死锁?请提出一个防止死锁的办法。(3)如何利用信号灯上的P,V操作实现车辆和驳船的同步?答:(1)驳船长200米,当驳船通过了A桥,其船头到达B桥,请求B桥吊起,而此时它的尾部仍占据A桥。若这个时候B桥上及B桥到A桥之间的公路上都被汽车占据,而汽车又要求通过A桥。这样驳船和汽车都无法前进,形成死锁的局面。(2)可以有以下两种方法:c资源的静态分配。即进程把它所需要的所有资源在运行前提前申请,系统把它所需要的全部资源一次性都分配给它。也就是说,这时把A桥和B桥看成一个资源。打破了产生死锁的四个必要条件之一的部分分配条件。d可以规定资源按序申请和分配,从而破坏了死锁的循环等待条件,防止死锁的发生。规定如下:B桥的序号小于A桥的序号,驳船和汽车都必须先申请序号小的资源B桥,申请得到满足后,再申请序号大的资源A桥。(3)算法如下:c设置两个互斥信号量mutexa,mutexb,用来实现驳船和汽车对A桥和对B桥的互斥使用;设置一个共享变量count,用来记录当前占用A桥和B桥的汽车数并设置互斥信号量mutex,用来实现汽车对共享变量count的互斥访问。Main(){intmutexa,mutexb,mutex,countmutexa=1;mutexb=1;mutex=1;count=0;cobeginbargei;//i=1,2,..,mcarj;//j=1,2,..,ncoend}bargei(){.....P(mutexb);P(mutexa);吊起B桥;吊起A桥;驳船通过A桥;放下A桥;驳船通过B桥;放下B桥;V(mutexa);V(mutexb);.....}carj(){......P(mutex);count++;if(count==1){P(mutexb);P(mutexa);}V(mutex);汽车通过B桥;汽车通过AB段公路;汽车通过A桥;P(mutex);count--;if(count==0){V(mutexb);V(mutexa);}V(mutex);.....}d设置两个互斥信号量mutexa,mutexb,用来实现驳船和汽车对A桥和对B桥的互斥使用;设置两个共享变量counta和countb,分别用来记录A桥和B桥上的汽车数并设置互斥信号量mutex1和mutex2,用来实现汽车对共享变量counta和countb的互斥访问。Main(){intmutexa,mutexb,mutex1,mutex2,counta,countb;mutexa=1;mutexb=1;mutex1=mutex2=1;counta=countb=0;cobeginbargei;//i=1,2,...,mcarj;//j=1,2,...,nCoend}bargei(){.....P(mutexb);吊起B桥;P(mutexa);吊起A桥;驳船通过A桥;放下A桥;V(mutexa);驳船通过B桥;放下B桥;V(mutexb);....}carj(){....P(mutex2);countb++;if(countb==1)P(mutexb);
本文标题:操作系统课后习题
链接地址:https://www.777doc.com/doc-5451232 .html