• 481.00 KB
  • 2022-04-22 11:52:46 发布

自考《操作系统》主编:谭耀铭 课后解答.doc

  • 69页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'自学教材:《操作系统》主编:谭耀铭;出版社:中国人民大学出版社。第一章复习题答案1、计算机系统由哪些部分组成?答:2、什么是计算机的操作系统?答:操作系统是计算机的一种系统软件,由它统一管理计算机系统的资源和控制程序的执行。操作系统既是一种资源管理程序,又是一种其他程序执行的控制程序,其目的是提供一个供其它程序执行的良好环境。 3、操作系统管理计算机系统的哪些资源?答:操作系统管理的计算机系统资源包括两大类:硬件资源和软件资源。计算机系统的硬件资源主要包括CPU、主存储器、辅助存储器(磁带、磁盘等)以及各种输入输出设备(键盘、显示器、打印机等);软件资源包括各种程序和数据。4、操作系统怎样为用户提供良好的运行环境?答:操作系统是一种系统程序,其目的是提供一个供其他程序执行的良好环境。首先操作系统要使得计算机系统使用方便:操作系统为用户提供方便的使用接口,用户按需要输入命令或从提供的"菜单"中选择命令,操作系统按命令去控制程序的执行;用户也可以请求操作系统的功能模块为其服务,而不必了解硬件的特性。其次操作系统要使得计算机系统能高效地工作:操作系统扩充硬件的功能,而硬件的功能发挥的更好;操作系统使拥护合理共享资源,防止各用户间的干扰;操作系统以文件形式管理软件资源,保证信息的安全和快速存取。5、操作系统怎样提高系统的效率?答:为提高系统的效率:·操作系统扩充硬件的功能,使硬件的功能发挥得更好;·操作系统使用户合理共享资源,防止各用户间的相互干扰;·操作系统以文件形式管理软件资源,保证信息安全和快速存取。6、批处理操作系统怎样实现计算机操作的自动化? 答:用户把准备好的一批作业信息,包括程序、数据、作业控制说明书通过相应的输入设备传送到大容量的磁盘上等待处理。操作系统中的作业调度程序按照某种原则从磁盘上选择若干作业装入主存储器,主存储器中的这些作业可以占用中央处理机运行。当某个作业执行结束时,启动打印机,输出计算结果。然后又可以从磁盘上选择作业装入主存储器,让其运行。这样,在作业控制说明书的控制下,无需认为干预,批处理操作系统实现了计算机操作的自动化。7、分时操作系统的主要特点是什么?答:分时操作系统支持多道程序同时执行,实现了人机交互对话,主要有以下特点:·同时性允许多个终端用户同时使用一个计算机系统;·独立性用户在各自的终端上请求系统服务,彼此独立,互不干扰;·及时性分时系统对用户的请求能在较短的时间内给出应答,使用户觉得系统即时响应了对他的请求而感到满意。·交互性采用了人-机对话的工作,用户在终端上可以直接输入、调试和运行自己的程序,能及时修改程序中的错误且直接获得结果。8、什么是“前台”作业?什么是“后台”作业?为什么对“前台”作业要及时响应?答:批处理操作系统实现自动控制无需人为干预,分时操作系统实现了人机交互对话,这两种操作系统各具有各自的优点。为了充分发挥批处理系统和分时系统的优点,一个计算机系统上配置的操作系统往往具有批处理能力,有提供分时交互的能力。这样,用户可以先在分时系统的控制下,以交互式输入、调试和修改自己的程序;然后,可以把调试好的程序转交给批处理系统自动控制其执行而产生结果。这些由分时系统控制的作业称为"前台"作业,而那些由批处理系统控制的作业称为"后台"作业。在这样的系统中,对前台作业应该及时响应,使用户满意;对后台作业可以按一定的原则进行组合,以提高系统的效率。9、实时操作系统的主要特征是什么?答:能使计算机系统接受到外部信号后及时进行处理,并且在严格的规定时间内处理结束,再给出反馈信号的操作系统统称"实时操作系统",简称"实时系统"。其特征是:(1)及时响应,快速处理 实时系统的时间要求是强制性严格规定的,仅当在规定的时间内返回一个正确的结果时,才能认为系统的功能是正确的。(2)高可靠性和安全性不强求系统资源的利用率10、网络操作系统和分布式操作系统都是配置在计算机网络上的操作系统,它们之间有什么本质上的不同?答:分布式操作系统与网络操作系统本质的不同之处在于,分布式操作系统的网络中的多台计算机没有主次之分;分布式操作系统能使系统中若干台计算机相互协作完成一个共同的任务。把一个计算问题分成若干个可并行执行的子运算,让每个子计算在系统中的各计算机上并行执行,充分利用各计算机的优势。这样,一个程序就分布在几台计算机并行执行,相互协作得到结果。11、从资源管理的角度来看,操作系统的基本功能可分成哪些部分?·答:从资源管理的角度来看,操作系统的基本功能可分为五大部分·(1)处理器管理为用户地分处理器时间,尽可能地使处理器处于忙状态,提高处理器的工作效率。·(2)存储管理实现对主存储器的管理,为用户分配主存空间,保护主存中的程序和数据不被破坏,提高主存空间的利用率。·(3)文件管理面向用户实现按文件名存取文件,管理用户信息的存储、检索、共享和保护,合理地分配和使用文件的存储空间。·(4)设备管理负责管理各种外围设备,包括设备的分配、启动以及SPOOL的实现技术。·(5)作业管理实现作业调度和控制作业的执行。作业调度从等待处理的作业中选择可以装入主存储器的作业,对已经装入主存储器的作业按用户的意图控制其执行。第二章复习题答案(1)计算机系统既有操作系统程序,又有用户程序,在什么情况下操作系统程序才能占用中央处理器? 答:一个计算机系统,尤其是采用多道程序设计的计算机系统,不仅有操作系统和其他的系统软件,而且还有若干应用程序。这些程序只有占用中央处理执行时才能履行自己职责。而中央处理器在任何时刻最多只能被一个程序占用。计算机开启时,自动执行引导程序。引导程序首先进行系统初始化的工作,然后把操作系统中的核心装入主存储器。此后操作系统便等待用户请求(事件)的发生,当有某个事件出现,硬件便能识别并能发生一个中断,从而通知操作系统,由它的服务程序去处理,处理结束后,又等待下一个事件发生。中断是计算机系统结构一个重要的组成部分。中断装置由一些特定的寄存器的控制线路组成,CPU每执行完一条指令,中断装置都要判断是否有事件发生。如果没有事件发生,CPU继续执行;若有事件发生,中断装置中断原先占用CPU的程序的执行,让操作系统的处理事件服务程序占用CPU对事件进行处理,处理完后,再让被中断的程序继续占用CPU执行下去。(2)阐述硬件的中断装置的作用。答:中断是计算机系统结构一个重要的组成部分。在中断机制中的硬件部分(中断装置)的作用就是在CPU每执行完一条指令后,判别是否有事件发生,如果没有事件发生,CPU继续执行;若有事件发生,中断装置中断原先占用CPU的程序的执行,把被中断程序的断点保存起来,让操作系统的处理服务程序占用CPU对事件进行处理,处理完后,再让被中断的程序继续占用CPU执行下去。所以中断装置的作用总的来说就是使操作系统可以控制各个程序的执行,为用户提供各种服务。(3)操作系怎样让多个程序同时执行?答:一个计算机系统,尤其是采用多道程序设计的计算机系统,不仅有操作系统和其他的系统软件,而且还有若干应用程序。这些程序只有占用中央处理执行时才能履行自己职责。而中央处理器在任何时刻最多只能被一个程序占用。 中断装置在判别到有某个事件发生时,就会触发一个中断让操作系统去占用处理器。操作系统对事件处理结束后,又主动让出处理器,并根据对事件处理情况从那些具备占用处理器条件的程序中选择一个,让它占用处理器,直到系统再一次发生事件而被中断。操作系统总是按照预定的策略去选择可占用处理器的程序,系统中若干程序可以交替地占用处理器,形成多个程序同时执行的状态。(4)为什么要把“启动I/O”等指令定义为特权指令?答:一个程序可以在其它程序等待外围设备传送信息时占用处理器执行,在执行中如果它也使用启动指令去启动一台正在工作的外围设备,那么就会造成冲突。为保护输入输出的完整性,把“启动I/O”等的一类可能影响系统安全的指令定义为特权指令。特权指令只允许操作系统使用,用户程序不能使用特权指令。用户程序若要启动I/O,必须请求操作系统代为启动,这种方式不但可以保证安全地使用外围设备,正确地传送信息,而且可减少用户为启动设备而必须了解外围设备特性以及启动等工作,大大方便了用户。(5)怎样限制用户程序中使用特权指令?答:为了保证正确的操作,应该限制用户程序使用特权指令,为此,中央处理器设置了两种工作方式:管态和目态。在管态下,中央处理器可执行包含特权指令在内的一切指令;在目态下,中央处理器不准执行特权指令。操作系统在管态下工作,用户程序在目态下工作。如果中央处理器在目态下取到了特权指令,中央处理器就拒绝执行该指令,并产生“非法操作”事件经中断装置和操作系统通知用户修改。(6)操作系统与硬件如何配合来实现存储保护的?答:主存储器往往同时装入了操作系统程序和若干用户程序,为了保证正确操作,必须对主存储器区域进行存储保护。存储保护随着主存储器管理方式的不同,实现保护的方法也有所不同,一般是操作系统与硬件配合来实现存储保护。 在连续分配的存储系统中,硬件中设置了两个寄存器来限定用户程序执行时可以访问的空间范围。这两个寄存器是基址寄存器和限长寄存器,用来限定用户程序执行时可以访问的主存空间范围。程序执行时,系统对每一个访问内存的地址进行核对:"基址寄存器值≤访问地址≤基址寄存器值+限长寄存器值"成立,则允许访问;否则,不允许访问。这样就保护了该区域以外的存储信息不受到破坏,一旦程序执行中出错也不会涉及其他程序。(7)为什么要研究操作系统的结构?答:操作系统是一种程序量大且接口复杂的系统软件。设计一个操作系统要投入大量的人力和花费较长的时间。因而,如何保证操作系统能正确,高效地工作至关重要。由于程序的结构是影响程序质量的内在因素,因此,有必要对操作系统的结构进行研究。(8)应从哪些方面考虑操作系统的结构设计?答:操作系统的结构设计应追求以下目标:·正确性:一个结构良好的操作系统不仅能保证正确性而且易于验证其正确性;·高效性:核心程序是影响计算机系统效率的的关键所在应遵循少而精的原则,使处理既有效又灵活。·可维护性:操作系统要容易维护·可移植性:在结构设计时,尽量减少与硬件直接有关的程序量并将其独立封装(9)操作系统采用层次结构有什么优点?答:各种设计方法总的目标都要保证操作系统工作的可靠性。层次结构法的最大特点是把整体问题局部化,采用层次结构不仅结构清晰,而且便于调试,有利于功能的增加,删减和修改。层次结构的主要优点是有利于系统的设计和调试,正确性容易得到保证,也提高了可维护性和可移植性。(10)用户怎样使用操作系统提供的接口? 答:用户是通过操作系统来使用计算机系统的,操作系统为用户提供两种类型的使用接口:操作员接口:用户可以用作业控制语言写出控制作业执行步骤的"作业说明书",也可以从键盘上输入操作控制命令或从"命令菜单"中选择命令指出作业的执行步骤。程序员接口:操作系统提供了许多不同功能的子程序-系统功能调用,用户可以在程序中调用这些子程序。(11)操作系统为什么要提供"系统调用"?答:在用户编写的源程序一级,用户使用程序设计语言描述算题任务的逻辑要求,有一些要求的实现只有通过操作系统的功能程序才能完成。操作系统编制了许多不同功能的子程序,用户程序在执行中可以调用这些子程序。由操作系统提供的这些子程序称为"系统功能调用"程序,简称"系统调用"。系统调用是操作系统提供给用户程序的服务接口。第三章处理器管理1、什么是多道程序设计?答:让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种设计技术称“多道程序设计”,这种计算机系统称“多道程序设计系统”或简称“多道系统”。2、多道程序设计怎样提高系统效率?答:多道程序设计利用了系统与外围设备的并行工作能力,从而提高工作效率。具体表现为: ·提高了处理器的利用率;·充分利用外围设备资源:计算机系统配置多种外围设备,采用多道程序设计并行工作时,可以将使用不同设备的程序搭配在一起同时装入主存储器,使得系统中各外围设备经常处于忙碌状态,系统资源被充分利用;·发挥了处理器与外围设备以及外围设备之间的并行工作能力;从总体上说,采用多道程序设计技术后,可以有效地提高系统中资源的利用率,增加单位时间内的算题量,从而提高了吞吐率。3、多道程序设计一定能提高系统效率吗?答:多道程序设计对算题量和算题时间的影响。采用多道程序设计能改变系统资源的使用情况,提高系统效率。但是应注意以下两个问题:·可能延长程序的执行时间;·并行工作道数与系统效率不成正比。从表面上看,增加并行工作道数就可提高系统效率,但实际上并行工作道数与系统效率是不成正比,因为并行的道数要根据系统配置的资源和用户对资源的要求而定:    (1)主存储器的大小限制了可同时装入的程序数量;  (2)外围设备的数量也是一个制约条件;  (3)多个程序同时要求使用同一资源的情况也会经常发生。总之,多道程序设计能提高系统资源的使用效率,增加单位时间的算题量;但是对每个计算问题来说,从算题开始到全部完成所需要的时间可能延长,另外在确定并行工作道数时应综合系统的资源配置和用户对资源的要求。4、操作系统中为什么要引入“进程”?答:程序是具有特定功能的一组指令或语句的集合,它指出了处理器执行操作的步骤。在多道程序设计的系统中,可能有多个程序同时运行,而同一个程序也可能多次并行执行,仅用程序的概念不能正确反映出程序执行时的活动规律和状态变化,为了从变化的角度动态研究程序的执行,就需要引入“进程”的概念。 进程是指一个程序在一个数据集合上的一次执行(三个“一”)。程序是静止的,进程是动态的(执行),进程包括程序和程序处理的对象,进程能够得到程序处理的结果。5、可再入程序有什么特性?答:可再入程序是指一个能够被多个用户同时调用的程序。(可以再次调入)。它的特性有两点:(1)可再入程序必须是纯代码,在执行时自身不改变;(2)一个可再入程序要求调用者提供工作区,以保证程序以同样方式为各用户服务。6、进程有哪些基本状态?它们的变化关系是怎样的?答:通常,根据进程执行过程中不同时刻的状态,可归纳为三种基本状态:·等待态:等待某个事件的完成;  ·就绪态:等待系统分配处理器以便运行;  ·运行态:占有处理器正在运行。进程在执行中状态会不断地改变,每个进程在任何时刻总是处于上述三种基本状态的某一种基本状态.运行态→等待态往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。等待态→就绪态则是等待的条件已满足,只需分配到处理器后就能运行。运行态→就绪态不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。就绪态→运行态系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。7、阐述进程控制块的作用?答:进程控制块(ProcessControl Block,简称PCB),是操作系统为进程分配的用于标志进程,记录各进程执行情况的。进程控制块是进程存在的标志,它记录了进程从创建到消亡动态变化的状况,进程队列实际也是进程控制块的链接。操作系统利用进程控制块对进程进行控制和管理。进程控制块的作用有:·(1)记录进程的有关信息,以便操作系统的进程调度程序对进程进行调度。这些信息包括标志信息、说明信息、现场信息和管理信息等;·(2)标志进程的存在,进程控制块是进程存在的唯一标志8、进程能否访问自己的进程控制块内容?进程控制块是系统为程序建立的用于标志进程,记录各进程执行情况的。进程本身不能访问或者修改自己的进程控制块的内容,但父进程可以访问或修改其子孙进程的进程控制块内容,以便对它的子孙进程进行必要的管理和控制。9、处理器为什么要区分“目态”和“管态”两种操作模式?答:硬件提供的指令系统中有一部分不允许用户程序直接使用,这些不允许用户程序使用的指令称特权指令,特权指令只允许操作系统进行调度、控制或启动外围设备的程序使用。为了避免错误地使用特权指令,处理器分为两种操作模式:目态-只能执行特权指令以外的指令、管态-可执行指令系统中的一切指令。若程序处于"目态"操作模式,一旦出现特权指令,处理器就能识别出程序非法使用指令,形成程序性中断事件,终止程序的执行。在计算机系统中往往把用户程序置于目态下运行,已保证计算机系统的安全可靠。10、中断装置发现中断事件后应做哪些事? 答:中断装置发现了中断事件后,由操作系统的中断处理程序对中断事件进行处理,中断处理程序的主要工作有:·保护被中断进程的现场信息把中断时的通用寄存器,控制寄存器内容及旧PSW保存到被中断进程的进程控制块中。·分析中断原因根据旧PSW的中断码可知发生该中断的具体原因。·处理发生的中断事件一般只做一些简单处理,在多数情况下把具体的处理交给其他程序模块去做。11、说明中断屏蔽的作用?答:中断优先级只是规定了中断装置响应同时出现的中断的次序,当中断装置响应了某个中断后中断处理程序在进行处理时,中断装置也可能去响应另一个中断事件。因此会出现优先级低的中断事件的处理打断优先级高的中断事件的处理,使得中断事件的处理顺序与响应顺序不一致,而且会形成多重嵌套处理,使多现场保护、程序返回等工作变的复杂。中断屏蔽技术就是为了解决上述问题而提出的,在一个中断处理没有结束之前不响应其他中断事件,或者只响应比当前级别高的中断事件。于是,当中断装置检查到有中断事件后,便去查看PSW中中断屏蔽标志,如果没有屏蔽就响应该中断;否则,暂时不响应该中断,待屏蔽标志消除后再响应。12、为什么不能屏蔽自愿中断事件? 答:自愿中断事件是正在运行程序所期待中的事件,它是正在运行程序为请求调用操作系统的某个功能服务而执行一条“访管指令”所引起的中断。当处理器执行到访管指令时就产生一个中断,因而进程自愿中断的断点是确定的。自愿中断不同于强迫性中断,强迫中断不是当前进程所期待的,而是由于外部请求或意外而被迫打断当前进程的。自愿中断是用户程序访问系统功能的手段,在进程中是确定的,因而不能屏蔽。 13、哪些中断事件一定会引起进程状态的变化?哪些中断事件可能引起进程状态变化?有不引起进程状态变化的中断事件吗? 笑笑提供的答案:一定会引起进程状态变化的中断事件:硬件故障中断、输入输出中断、自愿中断;可能会引起变化的中断事件:外部性中断事件、程序性中断事件,例如定点溢出及除数为“0”等,不同的用户可以有不同的处理要求,所以有可能改变也有可能不改变;有不引起变化的中断事件:外部性中断事件。引起外部中断的原因很多,因此处理方法也就截然不同。例如时钟中断也是一种外部中断,但大多数情况下,时钟中断不改变进程的状态.以上只是个人理解,希望大家多跟我讨论,谢谢! 14、在一个单处理器的多道程序设计系统中,现有两道作业同时执行,其中以运算为主,另一道以输入输出为主,你将怎样赋予作业进程占有处理器的优先数?解释为什么?答:赋于输入输出作业以较高的优先权。确定作业的优先数一般从任务的紧迫性和系统效率等方面考虑。交互式作业进程的优先数大于批处理作业进程的优先数。 15、假定就绪队列中的进程按优先数自大到小顺序排列,当即有进程要加入就绪队列时,应将它的优先数排入相应的位置,试就单向链接的方式写出实现进程入队的程序。解:这就是一个单向链表的插入操作,用类C语言描述如下:procedureInsert(QueueReadyQue,PointerP){//ReadyQue是就绪队列指针,P是要插入队列进程指针//P中的priority指示其进程的优先数//P中的Next指示其后继进程指针PointerP1=ReadyQue,P2=ReadyQue;//P1指示比P优先数小的第一个进程指针//P2指示比P优先数大的第一个进程指针while(P->prioritypriority&&P1->Next){//查找要插入位置的前后结点P2=P1;P1=P1->Next;}//查到后将P插入到就绪队列中P->Next=P1;P2->Next=P;}//EndProcedure16、当进程调度选中一个进程后,怎样才能让它占用处理器?答:当进程调度选中一个进程后,把选中进程的进程控制块中有关的现场信息,如通用寄存器、控制寄存器和程序状态字寄存器的内容送入处理器相应的寄存器中,处理器就按该进程的要求工作,达到了进程占用处理器的目的。17、在分级调度算法中,为什么对不同就绪队列中的进程规定使用不同长度的时间片? 答:在分级调度算法中,对不同就绪队列中的进程,可规定使用不同长度的时间片,一般来说,第一级就绪队列的时间片短一些,以的各级就绪队列的时间片逐级延长,最后一级就绪队列的时间片最长,这样运行时间短的里程只需经过前面几级队列就能得到结果,且它们被优先调度,有利于提高系统的吞吐率。而对运行时间长的进程在进入了低级就绪队列后可得到较长的时间片,以减少调度次数来保证系统效率。对经常使用外围设备的进程来说,每次等待外围设备传输结束后总是排入第一级就绪队列,它们会被优先调度,有利于处理器与外围设务以及外围设备之间的并行工作,从而提高资源的使用效率。18、有5个进程P1,P2,P3,P4,P5它们同时依次进入就绪队列,它们的优先数和所需要的处理器时间如表3-1所示   进程处理器时间优先数P1103P211P323P414P552忽略进行调度等所花费的时间,请回答下列问题a、写出分别采用“先来先服务”和“非抢占式的优先数”调度算法选中进程执行的顺序。b、分别计算出上述两种算法使进程在就绪队列中的等待时间以及两种算法下的平均等待时间。解:a)采用先来先服务法的执行顺序是P1→P2→P3→P4→P5。这是由其进入的顺序所确定的。采用“非抢占式的优先数”调度算法时,各进程的执行顺序是P1→P4→P3→P5→P2. b)如表所示:先来先服务法:进程等待时间运行时间P1010P2101P3112P4131P5145平均等待时间(0+10+11+13+14)/5=9.6非抢占式的优先数调度算法:进程等待时间运行时间P1010P4101P3112P5135P2181平均等待时间(0+10+11+13+18)/5=10.4四章复习题题号:123456789101、解释下列术语:逻辑地址、绝对地址、重定位、程序浮动、存储保护答:逻辑地址:用户程序中使用的从“0”地址开始的连续地址。绝对地址:主存储器以字节为单位编址单位,每个字节都有一个地址与其对应,这些主存储器的地址编号就是绝对地址。重定位:为了保证作业的正确执行,必须根据分配给作业的主存区域对作业中指令和数据的存放进行重定位,这种把逻辑地址转换成绝对地址的工作称为“重定位”或“地址转换”。重定位的方式有“静态重定位”和“动态重定位”两种。 程序浮动:若作业执行时,被改变了存放区域仍能正确执行,则称程序是可浮动的。采用动态重定位的系统支持“程序浮动”存储保护:存储管理中为了防止各作业相互干扰和保护各区域内的信息不被破坏而采取的对各作业的存储区域进行保护的措施。2、比较各种存储管理方式的特征(包括主存空间的分配方式、是否要有硬件的地址转换机构作支撑、适合单道或多道系统等)、重定位方式、地址转换的实现(操作系统和硬件怎样配合)、存储保护的实现(操作系统和硬件各自做些什么工作)。答:存储管理方式特征重定位地址转换存储保护单分区管理除操作系统占用的一部分存储空间外,其余的用户区域作为一个连续的分区分配给用户使用  不需要硬件转换机构  适用于单道系统静态方式界限寄存器值+逻辑地址→绝对地址主存最大地址≥绝对地址≥界限地址固定分区的管理分区数目、大小固定  设置上、下限寄存器  不需要硬件转换机构  适用于多道系统静态方式逻辑地址+下限地址→绝对地址。下限地址≤绝对地址≤上限地址可变分区的管理可变分区管理方式不是把作业装入到已经划分好的分区中,而是在作业要求装入主存储器时,根据作业需要的主存量和当时的主存情况决定是否可以装入该作业。  分区数目大小不定  设置基址、限长寄存器  适用于多道程序系统  需要硬件地址转换机构动态重定位逻辑地址+基址寄存器的值→绝对地址。基址值≤绝对地址≤基址值+限长值页式存储管理主存储器分为大小相等的"块"  程序中的逻辑地址进行分页,页的大小与块的大小一致。  用页表登记块页分配情况  需要硬件的支持  适用于多道系统动态重定位逻辑地址的页号部分→页表中对应页号的起始地址→与逻辑地址的页内地址部分拼成绝对地址。由页表中的标志位验证存取是否合法,根据页表长度判断是否越界 段存储管理程序分段  每一段分配一个连续的主存区域,作业的各段可被装到不相连的几个区域中。  设置段表记录分配情况  需要硬件机构  适用于多道系统动态重定位逻辑地址中的段号→查段表得到本段起始地址+段内地址→绝对地址由段表中的标志位验证存取是否合法,根据段表长度判断是否越界页式虚拟存储管理类似页式管理将作业信息保存在磁盘上部分装入主存  需要硬件支持  适用于多道系统动态重定位类似页式管理:  逻辑地址的页号部分→页表中对应页号的起始地址→与逻辑地址的页内地址部分拼成绝对地址。  若该页对应标志为0,则硬件形成"缺页中断"先将该页调入主存类似页式管理段式虚拟存储管理类似段式管理将作业信息保存在磁盘上部分装入主存  需要硬件支持  适用于多道系统动态重定位类似段式管理类似段式管理3、在可变分区管理方式下,采用移动技术有什么特点?移动一道作业时操作系统要做哪些工作?答:采用移动技术的主要优点是:1)可以使分散的空闲区集中起来,可以容纳新的作业,提高主存空间的利用率2)方便作业执行过程中扩充主存空间,一道作业在执行中要求增加主存量时,只要移动邻近作业就可以增加它所点的分区长度。移动一道作业时操作系统要进行的处理:1)判断被移动的作业是否在与外围设备交换信息,如是则不能移动,否则可以移动。2)操作系统在移动作业信息时先移动作业信息的存储位置。3)修改主存分配表中和保存在进程控制块中的分区起始地址和长度信息。4)采取必要措施,尽量减少移动的作业数和信息量,提高系统效率。 4、解释页式存储管理中为什么要设置页表和快表?答:在页式存储管理中,主存被分成大小相等的若干块,同时程序逻辑地址也分成与块大小一致的若干页,这样就可以按页面为单位把作业的信息放入主存,并且可以不连续存放,为了在作业执行过程中准确地查表逻辑地址与绝对地址的的对应关系,就需要为每个作业建立一张页表,表示逻辑地址中的页号与主存中块号的对应关系。页表一般存放在主存中,当要按给定的逻辑地址访问主存时,要先访问页表,计算出绝对地址,这样两次访主存延长了指令执行周期,降低了执行速度,而设置一个高速缓冲寄存器将页表中的一部分存放进去,这部分页表就是快表,访问主存时二者同时进行,由于快表存放的是经常使用的页表内容,访问速度很快,这样可以大大加快查找速度和指令执行速度。5、什么叫虚拟存储器?怎样确定虚拟存储器的容量?虚拟存储器是为“扩大”主存容量而采用的一种设计技巧,它利用作业在只装入部分信息时就可以执行的特性和程序执行中表现出来的局部性特性,借助于大容量的辅助存储器实现小主存空间容纳大逻辑地址空间的作业。虚拟存储器的容量由计算机的地址结构(地址总线位数)决定。如计算机的地址总线位数为32位,则最大的虚存容量为2^32=4294967296B=4GB6、叙述页式虚拟存储器的基本原理。答:页式虚拟存储器是在页式存储的基础上实现虚拟存储器的,其工作原理是: ·首先把作业信息作为副本存放在磁盘上,作业执行时,把作业信息的部分页面装入主存,并在页表中对相应的页面是否装入主存作出标志。·作业执行时若所访问的页面已经在主存中,则按页式存储管理方式进行地址转换,得到绝对地址,否则产生“缺页中断”由操作系统把当前所需的页面装入主存。·若在装入页面时主存中无空闲块,则由操作系统根据某种“页面调度”算法选择适当的页面调出主存换入所需的页面。7、用可变分区方式管理主存时,假定主存中按地址顺序依次有五个空闲区,空闲区的大小依次为32K、10K、5K,228K,100K.现有五个作业J1,J2,J3,J4,J5.它们各需主存1K,10K,108K,28K和115K.若采用最先适应分配算法能把这五个作业按J1--J5的次序全部装入主存?你认为按怎样的次序装入这五个作业可使主存空间利用率最高?答:按最先适应算法时32K空闲区可装入J1、J2,剩下21K。228K空闲区中装入J3,J4,剩下92K,结果是J5无法装入。仍按最先适应算法,若调整作业装入次序为J4、J1、J2、J3、J5。即在32K空闲区中依次装入J4(28K),J1(1K)(或先J1再J4),剩下3K,在10K空闲区中装入J3刚好,在228K空闲区中装入J3和J5,剩下5K。这时的主存空间利用率最高。8、某采用页式虚拟存储管理的系统,一个共7页的作业,作业执行时依次访问的页为1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6。若采用最近最少使用(LRU算法),作业得到两块主存和四块主存空间时各会产生多少次中断?如果采用先进先出(FIFO)算法又会怎样的结果?答:当采用LRU算法两块主存空间时(红色为所缺页)当前页23421562123763212361234215621237632123调出页 12342156 123763 12缺页中断共16次 LRU算法时四块主存空间时:    当前页12342156212376321236 1234215621237632123  123421566123763312   11342155612276661调出页      34   561  7   缺页中断共6次当采用FIFO算法两块主存空间时:访问页12342156212376321236当前页12342156211376321136 1234215622137632213调出页  12342156 213763 21缺页中断共16次采用FIFO算法四块主存空间时:访问页12342156212376321236当前页12344456211376621133 1233345622137762211  122234566213376622   11123455621137766调出页      123 4  562 1 3  7 缺页中断共10次9、有一个程序要把100*100数组置初值“0”,现假定有两个主存块可用来存放数组信息,主存块的大小为可存放200个数组元素,数组中的元素按行编址。两个主存块的初始状态都为空,若程序编制如下:    (a)VarA:array[1..100]ofarray[1..100]ofinteger;         forj:=1to100do           fori:=1to100do            A[i,j]=0   (b)VarA:array[1..100]ofarray[1.100]ofinteger;         fori:=1to100do            forj:=1to100do A[i,j]=0  当采用LRU页面调度算法时各会产生多少次缺页中断?答:由于主存地址是连续的,二维数组按行的顺序进行排列,在每个主存块可以存放二行数组,初始状态下主存中有两页、四行数组。(a)方案编制的程序,第一次访问的是A[1,1],即第一个单元;第二次访问的是A[2,1],在主存中也就是访问第101个单元,这样,第一次调入的两个页只能命中四次,当访问[5,1]时就产生缺页中断,这时调入一个页面,包括两行,则访问[6,1]时命中。依次下去当访问[7,1],[9,1]...[99,1]时均产生缺页中断。内循环结束后,进入外循环,访问[1,2]...[100,2]...直到访问完每个数据。每隔一次访问均产生一次中断。因此本方案的总的缺页中断次数是:50*100-2=4998 次。(B)方案时,因为在主存中按[1,1],[1,2],[1,3]...[1,100]的顺序访问,则第一次访问的四行均没有中断,访问到[5,1]时,产生一次中断,调入一页,依此类推,访问到[7,1],[9,1]...[99,1]时产生中断,总共的中断次数为:100/2-2=48 次(根据LRU算法,每次调入的页面是一个页面) 10、某采用段式存储管理的系统为装入主存的一个作业建立如表4-1所示的段表。     段号段长主存起始地址06602219114033002100903580123749601959回答下列问题:a、计算该作业访问[0,432],[1,10],[2,500],[3,400]时(方括号中第一元素为段号,第二元素为段内地址)的绝对地址。  b、总结段式存储管理的地址转换过程。答:a、[0,432]→(432<660)2219+432=2651  [1,10]→(10<140)3300+10=3310[2,500]→(因500>100所以地址越界,产生中断)[3,400]→(400<580)1237+400=1637(事实上,最后这个转换不再进行下去,因为程序非法操作被中止运行)  总结段式存储管理的地址转换过程如下:1)从逻辑地址中取出段号和段内地址2)根据段号,从段表中取出该段在主存中的始址和段长3)比较段内地址和段长,如段内地址≤段长,则继续下一步,否则产生越界中段,程序中断(非法操作)。4)计算本段始址+段内地址,得到绝对地址。 第五章复习题1、什么叫文件?答:文件是逻辑上具有完整意义的信息集合。2、叙述下述术语并说明它们之间的关系:存储介质、卷、块、文件和记录。答:存储介质是指可用来记录信息的磁带、硬磁盘组、软磁盘片、卡片等。存储介质的物理单位定义为“卷”。存储介质上存放的连续信息所组成的区域称为“块”,块是存储设备与主存储器之间进行信息交换的物理单位。逻辑上具有完整意义的信息集合称为“文件”。记录是指用户对文件内的信息按逻辑上独立的含义划分的信息单位,每个单位为一个逻辑记录。3、怎样确定文件的存取方式?答:文件的存取方式包括顺序存取和随机存取两种,采用哪种存取方式,主要取决于两方面的因素:(1)怎样使用文件。文件的性质决定了文件的使用,也就决定了存取方式的选择。对于由顺序字符或其他数据组成的文件,按照顺序存取的方式进行。对于按逻辑记录方式组织的文件,则采用随机存取的方式。 (2)存储介质的特性。磁带机是适合顺序存取的存储设备。而磁盘机则既可采用顺序方式,也可采用随机方式。4、文件系统应由哪些部分组成?简述各部分的主要工作?答:文件系统由以下各部分组成:(1)目录管理:文件目录是实现按名存取的一种手段,用户要求建立的新文件,目录管理的工作是把与该文件有关的属性登记在目录用户要求读文件时,应从文件目录中查找指定的文件并核对是否有权使用。目录结构应既能方便文件的检索,又能保证文件系统的安全。(2)文件的组织:文件组织包括文件的物理组织和文件的逻辑组织,而文件系统的这部分工作就是要能够在用户存取文件时把文件的逻辑组织和物理组织进行转换。(3)文件存储的空间管理:对文件使用存储空间的情况进行登记和管理,保证文件存储在空闲块中,并在文件删除时收回该文件所用的空间。(4)文件操作:文件操作是文件系统提供给用户使用文件的一组接口,包括建立文件、打开文件、读文件、写文件、关闭文件和删除文件等。(5)文件的共享、保护和保密:文件共享允许多个用户使用同一个文件,但是要注意共享文件的保护和保密,即防止文件被破坏和被未经授权的用户剽窃。 5、为了实现按名存取,文件目录应包含哪些内容?答:文件目录应包括的内容有:·有关文件存取控制信息。例如用户名、文件名、文件类型、文件属性(可读写、只读、只执行等)·有关文件结构的信息。例如文件的逻辑结构、物理结构、记录个数和在存储介质上的位置等。·有关文件管理的信息。例如文件建立的日期、修改日期、保留期限等。6、用户A有名为W1,W2和W3的三个私有文件,用户B有名为J1,J2的两个私有文件,这两个用户需要使用共享文件T。文件系统对所有用户提供按名存取功能,为保证存取的正确性,文件系统应设置合理的目录结构,请画出文件系统设计的目录结构。解:如图所示:7、假定磁带的记录密度为每英寸800个字符,每一个逻辑记录长为160个字符,块与块之间的间隙为0.6英寸,现有1000个逻辑记录需要存储到磁带上,分别回答下列问题:  a.不采用成组操作时磁带空间的利用率    b.采用以5个逻辑记录为一组的成组操作时磁带空间的利用率。    c.为了使磁带空间的利用率大于50%,采用记录成组时其块因子至少为多少?答:a.不采用成组操作时,磁带空间利用率为:(160×1000)/(160000+800×0.6×1000)=0.25=25%b.采用5个逻辑记录一组时,磁带空间利用率为:(160×1000)/(160000+800×0.6×1000/5)=62.5%c.设块因子为x,利用率为50%,则有得:160000/(160000+480000/x)=0.5解之得:x=3即块因子至少为3才可以使磁带空间利用率大于50%。8、解释顺序文件、链接文件和索引文件。答:这三种文件均是指物理文件:顺序文件:就是在磁盘上的按顺序结构组织的文件,按逻辑文件记录本身的顺序在磁盘上按序存放在连续的块中。读取时也从第一个记录开始顺序进行,这样的文件组织就是顺序文件。在文件目录中要指出文件名,存放的起始块号和占用块数。顺序文件的最大优点是存取速度快(可以连续访问)。而问题主要是存储空间利用率不高、输出文件时难以估计需要多少磁盘块、影响文件扩展。 2)链接文件:如果将逻辑文件中的各个逻辑记录任意存放到一些磁盘块中,再用指针把各个块按逻辑记录的顺序链接起来,在文件目录中只记录第一块的地址和最后一块的地址,读取时从第一块开始,根据每块中的指针访问到下一块直到最后一块,这种文件组织就是链接文件。链接结构解决了顺序结构中的所有问题,所有空闲块都可以被利用,在顺序读取时效率较高但需要随机存取时效率低下(因为要从第一个记录开始读取查找)。此外,对于链接结构,也有一些问题要注意:由于块中要存放指针信息,因此一部分空间被占用;读出信息时要把指针信息分离出来;还要防止指针丢失或破坏造成的混乱,所以又要增加一些管理的信息。总之链式结构会使用于存放文件信息的空间减少。3)索引文件:按索引方式组织的文件结构,文件的逻辑记录任意存放在磁盘中,通过一张“索引表”指示每个逻辑记录存放位置。访问时根据索引表中的项来查找磁盘中的记录,索引结构的文件既适合顺序存取记录,也可以方便地随机存取记录,并且容易实现记录的增删和插入,所以索引结构被广泛应用。9、假定某文件系统把文件存储到磁盘上采用链接结构,磁盘的分块大小为512字节,而逻辑记录的大小为250个字符。现有一个名为ABC的文件,共10个逻辑记录,回答下列问题:       a.怎样才能有效地利用磁盘空间        b.画出文件ABC在磁盘上的链接结构(磁盘块号自定)        c.若用户要求读包含第1425个字符的逻辑符号,请写出用户要求的主要工作步骤。答:a.可以将两个记录成组写在一个磁盘块上,正好占用500个字符,余下的12个字符(每个字符一个字节,共12个字节)位置用来存放下一块的指针。这时的磁盘利用率为: 250*10/(512*5)=97.7%b.如图所示:c.文件系统完成用户要求的主要工作步骤是:1)访问时首先计算出包含第1452个字符的逻辑记录是在第六个记录。从0开始的话记录号为5。  2)从文件目录中找到该文件第0号记录在磁盘上的物理块号3。3)根据读到块中的指针指示依次读取下一块直到包括5号记录的块14。  4)把14号块中的内容读到主存缓冲区。  5)把主存缓冲区中的第2条记录读入用户作业区。这条记录就是用户所请求访问的记录。10、有一个可以带4个终端的计算机系统,该系统配置了一个磁盘用来存储终端用户的程序和数据。今有4个上机的学生,他们在各自的终端上键入了自己的程序和数据,并都存储在磁盘上,凑巧他们给各自的程序取的文件名均为WJ,请问       a.系统应该采用怎样的目录结构才能区别这些学生的程序?并画出这个目录结构。       b.简单阐明系统怎样为这4个学生索取他们各自的程序。答:a.系统可采用二级目录结构或树形目录结构。图略。b.以二级目录结构存储时,系统首先找到学生的用户名(主文件目录),再在用户名下的的目录中查找WJ为名的程序,这样就可以找到他们各自的程序了。11、文件系统中为什么要设置“建立文件”、“打开文件”和“关闭文件”的操作?答:文件系统把用户组织的逻辑文件按一定方式转换成物理文件存放到存储介质上,当用户需要文件时,文件系统又从存储介质上读出文件并把它转换成逻辑结构。如果没有“建立文件”的操作,就无法将逻辑文件转换成物理文件。而“打开文件”的作用是检索文件所在位置以及核对存取方式必须,“关闭文件”是核实是否为文件的建立者或打开者执行的操作,并对修改部分进行保存。这几个操作均是为了正确实现文件的按名存取。因此要设置这些操作。12、如果用户要求读一个尚未打的文件时,文件系统怎样处理?答:如果用户要求读一个尚未打的文件时,文件系统会提示用户先打开文件,有的系统为了方便用户,提供一种隐式使用文件的方法,允许用户不需先调用“打开文件”、“建立文件”和“关闭文件”文件的操作,而直接调用“读文件”或“写文件”的操作。当用户要“读文件”时,系统先做“打开文件”(文件已存在)或“建立文件”(文件不存在)的操作,再执行“读文件”操作。 13、文件系统能允许用户关闭一个不是自己打开或建立的文件吗?答:“关闭文件”操作主要是核实只有文件的建立者或打开者才有权关闭文件。因此文件系统一般不允许别的用户来关闭一个不是自已打开的文件。(可能有人说,不对,我打开一个文件,我妹妹就能把它关掉。这里的用户并不是指操作的人,而是指用户程序,比如我用word打开了一个文件,这时另一个程序如Excel程序如果来想关闭这个文件是不允许的。但是操作系统的文件系统可以来关闭各个用户打开的文件。)14、区分文件的保护和保密。答:文件的保护是防止文件被破坏。文件的保密是防止不经文件拥有者授权而窃取文件。引起文件被破坏的原因有:硬件故障、软件失误和用户共享文件时的错误等。第六章复习题1、解释设备的绝对号和相对号。答:设备绝对号:在设备管理中,计算机系统为每一台设备确定一个编号,以便区分和识别不同设备,这个编号称为设备的绝对号。而用户在程序中定义的设备号就是“设备相对号”。2、用户程序中采用“设备类、相对号”的方式用来使用设备有什么优点? 答:用户程序中采用“设备类、相对号”的方式,使设备分配的适应性好,灵活性强:1)系统只要从指定的设备类中找出一台“好的且未分配的”设备来进行分配即可。2)如果分配给用户的设备在使用中出故障,则系统可以从同类设备中找出“好的且未分配”的另一台设备来替换。3、解释“设备的独立性”。答:用户程序中采用“设备类、相对号”方式使用设备时,用户编程就不必指定特定设备,在程序中由“设备类、相对号”定义逻辑设备。程序执行时由系统根据用户指定的逻辑设备转换成与其对应的具体物理设备。所以,用户编程时使用的设备与实际使用哪台设备无关,这就是“设备独立性”。4、什么是设备的静态分配方式。答:设备的静态分配是指当一个作业所需使用的独占设备能得到满足时,该作业才能被装入主存储器执行。此时该设备完全被分配给该作业占用,直到作业执行结束撤离时才收回这个设备。5、启动磁盘执行一次输入输出操作花费的时间由哪几部分组成?答:启动磁盘执行一次输入输出操作花费的时间由“寻找时间、延迟时间和传送时间”三部分时间组成。其中寻找时间是指磁头在移动臂带动下移动到指定术面所花的时间;延迟时间是指指定扇区旋转到磁头下所需的时间;传送时间是指由磁头进行读写完成信息传送的时间。 6、什么是磁盘的驱动调度?它包括哪两部分?总结对磁盘进行驱动调度的过程。答:在多道程序设计系统中,同时有多个访问者请求磁盘操作,此时系统采用一定的调度策略来决定各等待访问者的执行次序,所以系统决定等待磁盘访问者的执行次序的工作就是磁盘的“驱动调度”。磁盘调度分为移臂调度和旋转调度。根据访问者指定的柱面位置来决定执行次序的调度称“移臂调度”;当移动臂定位后,如有多个访问者等待访问该柱面时,根据延迟时间来决定执行次序的调度称为“旋转调度”。7、假定某磁盘共有200个柱面,编号为0-199,如果在为访问143号柱面的请求者服务后,当前正在为访问125号柱面的请求服务,同时有若干请求者在等待服务,它们每次要访问的柱面号为  86,147,91,177,94,150,102,175,130请回答下列问题:  a.分别用先来先服务算法,最短寻找时间优先算法、电梯调度算法和单各扫描算法来确定实际的服务次序。b.按实际服务计算上述算法下移动臂需移动的距离。答:a.先来先服务法:(125-86)+(147-86)+(147-91)+(177-91)+(177-94)+(150-94)+(150-102)+(175-102)+(175-130)=547最短寻找时间算法:(130-125)+(147-130)+(150-147)+(175-150)+(177-175)+(177-102)+(102-94)+(94-91)+(91-86)=143 电梯调度算法:(125-102)+(102-94)+(94-91)+(91-86)+(130-86)+(147-130)+(150-147)+(175-150)+(177-175)=130b.实际服务算法是指单向扫描算法,在此算法下,移动距离是:(130-125)+(147-130)+(150-147)+(175-150)+(177-175)+(199-177)+86+(91-86)+(94-91)+(102-94)=176(返回的移动不算入内)8、假定磁盘的移动臂现在处于第8号柱面,有如下6个请求者等待访问磁盘(见下图),请你列出最省时间的响应次序。 序号柱面号磁头号扇区号1963275631520649445209567152答:最省时间的响应次序是2、6、1、4、3、5。根据题意,只要访问的柱面号顺序为7,9,15,20的顺序均应为正确答案。因为题中未给出确定的扇区数及访问和处理所需时间。大约本题的出题重点在于考察移臂调度。至于本题的答案是根据这样的原则来的,在确定移臂次序之后,如果有访问相同柱面的,根据先来先响应的次序确定?ǖ比徽庵值鞫确桨冈谑导手胁灰欢ㄊ迪郑?/p>9、假定某磁盘的旋转速度是每圈20ms,格式化时每个盘面被分成10个扇区,现有10个逻辑记录存放在同一磁道上。     扇区号逻辑记录1A2B3C4D5E6F7G8H9I10J处理程序要顺序处理这些记录,每读出一个记录后处理程序要花4ms的时间进行处理,然后再顺序读下一个记录并处理,直到处理完这些记录,回答:a.顺序处理完这10个记录总共花费了多少时间?b.请给出一种记录优化分布的方案,使处理程序能在最短时间内处理完成这10个记录,并计算优化分布时需要花费的时间。答:a.顺序处理完这10个记录所费时间:读一个记录的时间是20/10=2ms每条记录处理时间为4ms.计算如下:  A记录:2+4=6ms  B记录:因为6ms后已转到第4扇区,因此还要转过8个扇区方能到达第2扇区取B记录,所需时间为:2*8+2+4=22ms.   同样的,C...J记录和B记录访问一样,会有8个扇区的空转时间。总的时间为:6+22*9=204msb.要使处理程序在最短时间内处理完毕,则根据我们上面的计算,把B记录安排在第扇区4上,把C记录存放在扇区7上...按照这个办法,可以得到记录的优化分布如下分配:ABCDEFGHIJ14710369258这时每处理一个记录后刚好转入下一记录扇区,所以处理时间总和为:10*(2+4)=60ms10、假定有一个磁盘组共100个柱面,每个柱面上有8个磁道,每个盘面被划分成8个扇区。现有一个含有6400个逻辑记录的文件,逻辑记录的大小与扇区大小一致,该文件以顺序结构的形式被存放到磁盘上。柱面、磁道、扇区的编号均从“0”开始,逻辑记录的编号也从“0”开始。文件信息从0柱面、0磁道、0扇区开始存放。试问:a.该文件的第3680个逻辑记录应存放在哪个柱面的第几磁道的第几个扇区?b.第78柱面的第6磁道的第6扇区应存放在了该文件的第几个逻辑记录?解:a.因为在磁盘中,文件是按柱面-磁道-扇区为序存放的。计算如下:(题中[]表示求整除的值??·柱面号=[3680/(8*8)]=57·磁道号=[(3680mod64)/8]=4·扇区号=(3680mod64)mod8=0b.反过来也可计算: 逻辑记录号=78*64+6*8+6=504611、解释通道命令、通道程序、通道地址字和通道状态字答:通道命令是计算机硬件设备提供的用于使用输出设备的操作命令,每一条通道命令规定了设备的一种操作。通常由命令码、数据主存地址、传送字节个数及标志码等部分组成。通道程序是由一组通道命令组成的,这一级通道命令规定了通道执行一次输入输出操作应用的工作。通道地址字(CAW)是在具有通道的计算机系统中,用来存放通道程序首地址的主存固定单元。通道状态字(CSW)是用于记录通道和设备执行情况的主存单元。通常包括通道命令地址、设备状态、通道状态和剩余字节个数等几个字段。通道状态字采用双机器字(64位)表示。12、中央处理器与通道之间是怎样配合工作的?答:首先,中为处理器执行“启动I/O”指令去启动通道,如启动成功,则通道执行指定的通道程序去控制外设工作。当通道工作正常完成时,即通道状态字中仅有通道结束、控制器结束和设备结束时,通道形成一个输入输出正常结束中断事件。此时操作系统使有关进程从等等状态进入就绪状态。如果通道工作时发现设备故障或设备特殊情况(如硬件故障、缺纸等)时形成操作异常结束的I/O中断事件。此时由操作系统组织通道复执(重新执行程序)或产生有关信息请求用户或操作员来处理。 总之,中央处理器是借助于I/O中断来实现配合工作的。通道借助I/O中断请求CPU进行干预,CPU根据产生的I/O中断事件了解输入输出操作的执行情况,对通道操作而言,当操作正常结束或异常结束(如设备故障、设备特殊情况引起异常结束)形成I/O中断,由CPU根据相应情况分别处理。13、输入井和输出井的作用是什么?答:为实现虚拟设备,必须在磁盘上划出的专用存储空间,这部分空间就是“井”,其中又分为两部分:用于存放作业的初始信息的井是输入井,存放作业执行结果的是输出井。14、SPOOL系统由哪些部分组成?简述它们的功能。答:SPOOL系统由三部分程序组成:·预输入程序。通过该程序把作业流中每个作业的初始信息传送到“输入井”保存起来以以备作业执行时使用。·井管理程序:包括井管理读程序和井管理写程序两个功能,井管理读程序负责从输入机上读取文件信息供用户使用,井管理写程序负责把作业执行产生的结果保存到输出井中。·缓输出程序。它负责查看“输出井”中是否有待输出的结果信息,若有则启动打印机把作业结果输出。15、实现虚拟设备的主要条件是什么?答:实现虚拟设备的硬件条件:大容量磁盘;中断装置和通道;中央处理器与通道并行工作的能力。 实现虚拟设备的软件条件是要求操作系统采用多道程序设计技术。16、SPOOL系统为什么能提高独占设备的利用率?答:SPOOL系统借助硬件的中断装置和通道技术使得中央处理器与各种外围设备以及各外围设备之间均可并行工作。操作系统采用多道程序设计技术,合理分配处理器,实现联机的外围设备同时操作。作业执行时从磁盘上读写信息来代替从输入机和打印机的读写操作,不仅使多个作业可以同时执行,而且加快了作业的执行速度,提高了单位时间内处理作业的能力。在作业执行的同时还可利用输入机继续预输入作业信息和利用打印机输出结果,于是,整个系统可以是第一批作业的执行结果在打印输出,第二批作业正在处理,第三批作业信息正在预输入到磁盘的“输入井”中。这种联机同时操作极大地提高了独占设备的利用率,也使计算机系统的各种资源被充分利用。17、实现虚拟设备后从哪些方面提高了系统效率?答:实现虚拟设备后系统从输入、输出以及作业执行速度方面均提高了效率。具体如上题答案中所述。第七章复习题1、解释作业和作业步答:用户要求计算机系统处理的一个问题称为一个作业。任何一个作业都要经过若干加工步骤才能得到结果,作业的每一个加工步骤就是一个“作业步”。2、阐述程序、作业、作业步和进程之间的联系和区别。 答:·程序是具有特定功能的一组指令或语句的集合,它指出了处理器执行操作的步骤;·进程是一个程序在一个数据集合上的一次执行,进程是动态的,是程序的执行,相同的程序可以有多个不同的进程,进程可以并发执行,进程有就绪、运行、等待三种基本状态。·作业是指用户要求计算机系统处理的一个问题。·作业步是指作业的每一个加工步骤。当用户要求处理问题时(有一个作业),首先要用某种程序语言编制源程序,并准备好加工数据,并把源程序和数据输入到计算机中,在系统的控制下进行编译、装配,然后系统创建处理问题的进程,运行后得到结果,这里的编译、装配和运行就是作业的加工步骤(作业步)。3、操作系统提供哪些手段供用户控制和管理他的作业?答:操作系统提供两种说明作业加工步骤的手段:作业控制语言和操作控制命令。用户使用操作系统提供的“作业控制语言”对作业执行的控制意图写好一份“作业控制说明书”,连同该作业的源程序和初始数据一同提交给系统,操作系统按照用户说明的控制意图来自动控制作业的执行。这种控制方式称为“批处理方式”,把采用批处理控制方式的作业称“批处理作业”。用户使用操作系统提供的“操作控制命令”来表达对作业执行的控制意图。用户通过逐条输入命令,操作系统把命令执行情况通知用户并让用户再输入下一条命令,以控制作业执行直到结束。这种采用交互控制方式的作业称为“交互式作业”。对于来自终端的作业也称为“终端作业"。4、什么叫作业调度?作业调度选择作业的必要条件是什么? 答:作业调度是指按一定的策略从“输入井”中选择资源能得到满足的作业装入主存储器,使作业能有机会占用处理器执行。作业调度选择作业的必要条件是系统中现有的尚未分配的资源能够满足该作业的资源要求。5、作业调度算法的选择主要应根据哪些因素来决定?答:作业调度是指按一定的策略从“输入井”中选择资源能得到满足的作业装入主存储器,使作业能有机会占用处理器执行。在作业调度中应考虑的原则是:公平性、均衡使用资源和极大的流量,但这些原则经常不能兼顾。应根据不同的目标来选择不同的调度算法,一个理想的调度算法应该是既能提高系统效率又能使进入系统的作业及时得到计算结果。但无论采用哪种算法,均要求系统中现有的尚未分配的资源能够满足该作业的资源要求。6、作业调度与进程调度之间的区别与关系是怎样的?答:作业调度是指按一定的策略从“输入井”中选择资源能得到满足的作业装入主存储器,使作业能有机会占用处理器执行。进程调度的是按一定策略从就绪队列中选择一个进程,让它占用处理器。(前者提供机会,后者实现机会)作业调度把输入井中的作业装入主存,此时系统为该作业创建一个进程,若有多个作业被装入主存储器,则同时存在多个进程。进程调度选择当前可占用处理器的进程,进程运行中由于某种原因状态发生变化,当它让出处理器时,进程调度就再选另一个作业的进程去运行。二者相互配合才能实现多道作业的并行执行。7、操作系统提供哪些便于用户控制交互式作业的使用接口?答:操作系统为用户提供多种交互式作业的操作使用接口,包括·操作控制命令包括命令名和参数,其一般格式为         命令名 参数1,参数2,... ·菜单技术操作简单、直观、不需记忆·窗口技术为用户提供图形用户接口--Windows8、终端用户的“注册”和“注销”各起什么作用?答:注册的作用实际上是对终端作业的调度,当用户输入“注册(logon)命令时,系统进行一些必要的核对工作。经识别用户、核对口令,分配资源,确认后允许用户使用系统。注销:当作业执行结束时,用户使用注销命令请求退出系统,系统将收回其占用的资源并计算用户使用系统的时间。9、一个具有分时兼批处理功能的操作系统应怎样调度和管理作业?为什么?答:在一个具有分时兼批处理的计算机系统中的调度管理策略是:·总是优先接纳终端作业:当有终端作业的就绪进程时,总让终端作业的就绪进程按“时间片轮转“的方法先占用处理器。·仅当终端作业数小于系统可以允许同时工作的作业数时,再调度成批处理作业。当无终端作业的就绪进程时,才去查看批处理作业的就绪队列,按确定的算法从中选择一个就绪队列让它占用处理器。·允许终端作业与批处理作业混合同时执行。这样做是为了既使终端用户满意,又能提高系统效率。10、某系统采用不能移动已在主存储器中作业的可变分区方式管理主存储器,现有供用户使用的主存空间100K,系统配有4台磁带机,有一批作业见下表:    作业序号进输入井时间要求计算时间需要主存容量申请磁带机数110:0025分钟15K2台210:2030分钟60K1台310:3010分钟50K3台410:3520分钟10K2台510:4015分钟30K2台该系统采用多道程序设计技术,对磁带机采用静态分配,忽略设备工作时间和系统进行调度所花的时间,请分别写出采用“先来先服务调度算法”和“计算时间最短者优先算法”选中作业执行的次序以及它们的平均周转时间。解:先来先服务法如下表:作业序号进输入井时间进入主存时间开始计算时间结束计算时间周转时间解释110:0010:1010:0010:2525此时输入井中只有一个作业且满足资源要求,因此被选中运行。210:2010:2010:2510:5535作业2到达输入井,满足资源要求,装入主存,等到作业1运行完毕进入运行态。410:3510:3510:5511:1540由于作业3要求主存空间无法满足,因此作业4先行一步,运行期间作业5进入输入井,并满足资源要求,因此作业5进入主存就绪。510:4010:5511:1511:3050作业3仍要等候,作业5可以运行。310:3011:3011:3011:4070最后作业3装入主存并运行平均周转时间为(22+35+40+50+70)/5=44分钟按计算时间最短者优先算法如下表:作业序号进输入井时间进入主存时间开始计算时间结束计算时间周转时间解释 110:0010:1010:0010:2525此时输入井中只有一个作业且满足资源要求,因此被选中运行。210:2010:2010:2510:5535作业2到达输入井,满足资源要求,装入主存,等到作业1运行完毕进入运行。510:4010:5510:5511:1030由于作业3要求主存空间无法满足,因此作业4先行一步装入主存,当作业2让出处理器的同时,作业5满足资源要求进入主存就绪。根据算法作业5先进入处理器运行。410:3510:3511:1011:3055310:3011:3011:3011:4070最后作业3装入主存并运行平均周转时间:(25+35+30+55+70)/5=43分钟11、在上题中,若允许移动已在主存储器中的作业,则作业被选中的次序又是怎样的呢?并计算出它们的平均周转时间?解:本题中,由于作业3需要3台磁带机,因此即使允许移动主存中的作业,得到足够存储空间,但是由于静态分配的策略,磁带机不足以让作业3满足。因此本题的结果和上题的结果是相同的。 第八章复习题1、解释进程的顺序性和并发性。答:目前使用的计算机基本上是冯.诺依曼式结构,其基本特点是处理器顺序执行指令。进程在顺序的处理器上的执行是严格按顺序进行的,这就是进程的顺序性。当一个进程独占处理器顺序执行时,具有两个特性:一、封闭性二、可再现性。 在多道程序设计系统中,多个作业可以同时执行,一个作业又由多个进程协助完成,当一个进程的工作没有全部完成之前,另一个进程就可以开始工作,它们的执行在时间上是重迭的。我们把它们称为是“可同时执行的”。若系统中存在一组可同时执行的进程,则就该进程就具有并发性,可同时执行的进程称为“并发进程”。2、并发进程执行时一定会产生与时间有关的错误吗?为什么?答:并发进程由于其执行的随机性,执行速度不能由自己控制,往往会出现一个进程对另一进程的影响不可预测的情况,从而产生与时间有关的错误。但是并发进程并不一定都会产生与时间有关的错误:首先,无关的并发进程不会产生与时间有关的错误;其次,有交往的并发进程如果不交叉访问共享变量,也不会产生与时间有关的错误。产生这类错误根本原因在于对共享变量不受限制的使用。3、什么是临界区?什么是相关临界区?答:并发进程中与共享变量有关的程序段称为“临界区”。相关临界区是指并发进程中涉及到相同变量的那些程序段。4、对相关临界区的管理有哪些要求?答:·1)一次最多让一个进程在临界区执行,当有进程在临界区时其他想进入临界区执行的进程必须等待。·2)任何一个进入临界区执行的进程必须在有限的时间内退出临界区,即任何一个进程都不应该无限地逗留在自己的临界区。 ·3)不能强迫一个进程无限地等待进入它的临界区,即有进程退出时应让一个等待进入临界区的进程进入它的临界区。5、若用PV操作管理某一组相关临界区,其信号量S的值在[-1,1]之间变化,当S=-1,S=0,S=1时它们各自的物理含义是什么?答:S=-1表示等待队列中有1个进程(|S|)等待进入临界区,而且当前已有进程在相关临界区中访问临界资源。S=0:表示当前有进程在相关临界区访问临界资源,并且不允许任何进程使用临界资源。S=1:表示有一个进程可以访问临界资源或进入相关临界区执行。6、两个并发进程的程序如下:beginN:integer;N:=3;cobeginPROCESSAbeginL1:N:=N+5;gotoL1end;PROCESSBbeginL2:print(N);N:=0;gotoL2end;coend;end; 若PROCESSA先执行了三个循环后,PROCESSA和PROCESSB又并发执行了一个循环,写出可能出现的打印值。正确的打印值应该是多少?请用PV操作进行管理,使它们并发执行时不出现与时间有关的错误。解:可能出现的打印值为18或23。因为N的初始值为3,当进程A执行三个循环后,N的值为18,此时ProcessA和ProcessB并发执行,如果正巧是B先进入CPU执行的话,打印值就是18,打印时A进程为N增加的值就没有被记录下来。正确的打印值应该是23。PV操作的管理程序如下:beginN:integer;N:=3;S:SEmaphore;S:=1cobeginPROCESSAbeginL1:P(S);N:=N+5;V(S);gotoL1end;PROCESSBbeginL2:P(S);print(N);N:=0;V(S);gotoL2end;coend;end; 7、a,b两点之间是一段东西向的单行车道,现要设计一个管理自动系统,管理规则如下:当ab之间有车辆在行驶时同方向的车可以同时驶入ab段,但另一方向的车必须在ab段外等待;当ab之间无车辆在行驶时,到达a点(或b点)的车辆可以进入ab段,但不能从a点和b点同时驶入;当某方向在ab段驶出了ab段且暂无车辆进入ab段时,应让另一方向等待的车辆进入ab段行驶。请用PV操作为工具,对ab段实现正确管理以保证行驶安全。解:在这里有两组进程,一组是向东行驶进程,一组是向西行驶进程,他们的相关临界区是ab道路.同时还要注意,各自进程还有相关临界区,那就是同方向进程的车辆总数(进入时加1,出ab段时要减1).在各组进程访问自己的共享变量(本进程车辆数)时要进行PV操作,同时,当访问两组进程的共享变量(ab段)时也要进行PV操作.过程如下beginS,SE,SW:SEmaphore;//S为两组不同进程的临界信号,SE,SW为各自临界信号CountE,CountW:Interger;//分别为两种进程进入ab段的车辆数CountE:=CountW:=0;//初始时ab段无车辆S:=SE:=SW:=1;//初始任何一边均可驶入CoBeginProcessEASTi(i=1,2,3...)//向东行驶进程可以有多个beginP(SE);//检查有无正在向东驶入或驶出的车辆(因为要访问本组进程的共享变量CountE)ifCountE=0thenP(S);//检查向东行驶车辆数是否为0//如果为0时,要检查是否有向西行驶的车辆.//P(S)的作用就是给ab段上的信号S-1,//如果原来有西行车辆,则操作后S小于0,本进程等待,//如果原来没有,则S=0,禁止西行车辆进入ab段通行.//如果CountE不为0,说明已经有本方向车辆通行,//就不必对ab段使用信号进行处理,直接进入ab段. CountE:=CountE+1;//向东行驶车辆数增加1.V(SE);//允许同样向东行驶的车辆进程通行pass(ab);//车辆驶过P(SE);//又要访问本组进程临界区了CountE:=CountE-1;//车子驶出ab段.ifCountE=0thenV(S);//如果ab段无向东行驶车辆则允许ab段由向西行驶进程使用.V(SE);//本组临界区访问结束,允许其他东行车辆进入或离开ab段end;ProcessWESTj(j=1,2,3...)//向西行驶进程beginP(SW);//本进程与向东行驶的过程类同,只是共享变量和信号变量不同.ifCountW=0thenP(S);CountW:=CountW+1;//向西行驶车辆数增加.V(SW);//允许其他西行车辆进入pass(ba);//车辆驶过P(SW);CountW:=CountW-1;//车子驶出ab段.ifCountW=0thenV(S);V(SW);end;coend;end;8、今有3个并发进程R,M,P,它们之间共享一个缓冲器。进程R负责从输入设备读信息,每读出一个记录后把它存放在缓冲器B中。进程M在缓冲器B中加工进程R存入的记录。进程P把加工后的记录打印输出。缓冲器B中每次只能存放一个记录,当记录被加工输出后,缓冲器B中又可存放一个新记录。请用PV操作为同步机制写出它们并发执行能正确工作的程序。 解:在这题中R是生产者,M是R的消费者。将M看成是生产者,则P是M的消费者。设置三个信号量SR,SM,SP,当其值为1时,SR表示缓冲器为空,SM表示缓冲器中存有待加工记录,SP表示缓冲器中记录已被加工好了。beginBuffer:integer;SR,SM,SP:SEmapore;SR=1;SM=0;SP=0;cobeginPROCESSR//读入一个记录进程beginL1:read;P(SR);//读之前检查缓冲器是否为空,为空则读入一条记录Buffer:=read;V(SM);//读好后允许加工进程工作gotoL1end;PROCESSM//加工记录进程beginL2:product;P(SM);//检查缓冲器中是否有待加工记录Buffer:=product; V(SP);//允许打印进程工作gotoL2end;PROCESSP//打印进程beginL3:printP(SP);//检查是否可以打印takeaproductfromBuffer;V(SR);//允许读入记录print;gotoL3end;coend;end;9、在公共汽车上,司机和售票员的工作流程如下图所示。为保证乘客的安全,司机和售票员应密切配合协调工作。请用PV操作来实现司机与售票员之间的同步。 解:在这个问题中,有两组进程,一组是司机启动车辆,行车和停车的进程,另一组是售票员售票、开车门和关车门的进程,两组进程的制约关系为启动车辆->行驶-停车->开车门->(旅客上车)关车门->启动车辆。关键在于开门应在停车之后,启动车辆应在关门之后。设有两个信号用于司机和售票员之间通信,一个是Run,另一个是Open,Run等于1表示可以开车,Open等于1表示可以开门。过程如下:beginBuffer:integer;Run,Open:Semapore;Run:=1;Open:=0;cobeginPROCESSBusman;//司机进程beginL1:P(Run)//检查是否可以启动车辆start;//启动车辆driving;//行驶stop;//停车V(Open);//允许开门gotoL1end;RPOCESSConductor;//售票员进程beginL2:sellingtickets;//售票P(Open);//检查是否可以打开车门Openthe door;//开车门让乘客上车Closethedoor;//关门V(Run);//允许开车gotoL2;end;coend;end;10、请用进程通信的办法解决生产消费者问题。解:设生产者的与消费者之间进行直接通信,在message中说明可用产品的信息。beginProcessM;//生产者进程:beginL1:{生产物品};send(B,message);//发送一条消息给B进程gotoL1;end;ProcessB;消费者进程:beginL2:recieve(M,message);//取出信箱信件,如有信件则可以消费 {取出物品消费};gotoL2;end; end;第九章复习题1、什么叫死锁?什么原因会引起死锁?答:若系统中存在一组进程(两个或多个进程),它们中的每一个进程都占用了某种资源而又都在等待其中另一个进程所占用的资源,这种等待永远不能结束,则说系统出现了“死锁”。死锁产生的原因有现除了与资源的分配策略有关,当系统中若干进程需求资源的总数大于系统能提供的资源数时,进程间会出现竞争资源,如果对进程竞争的资源分配不当就会引起死锁。死锁的出现也与并发进程的执行速度有关,并发进程的执行速度是不可预知的。因此可能形成死锁。2、某系统有输入机和打印机各一台,今有两个进程都要同时使用它们,采用PV操作实现请求使用和归还释放后,还会产生死锁吗?若否,说明理由;若会产生死锁则给出一种防止死锁的方法。答:这两个进程采用PV操作,可能不产生死锁,也可能产生死锁。如果PV操作对两个资源进行按序分配,则不会产生死锁,反之,则于进行的并发性,其执行速度无法预知,当一个进程得到输入机另一进程得到打印机时,PV操作虽然实现互斥访问,但两个进程进入循环等待而死锁。以下是根据按序分配的策略写成的PV操作控制方法:begin S1,S2:semaphore;S1=1;S2=1;cobeginPROCESSP1beginP(S1);//先申请S1再申请S2P(S2);操作V(S1);V(S2);end;  PROCESS P2beginP(S1);//先申请S1再申请S2P(S2);操作V(S1);V(S2);end;end; 可见其会类似于哲学家一样而产生死锁。(如进程R1占用了打印机,请求输入设备,而R2占用输入设备,请求打印机)。解决的方法是同时申请这两个资源,一起使用。3、若系统只有一个进程,它会被卷入死锁吗?请解释你的回答。答:当系统只有一个进程时,不会产生死锁现象,因为死锁现象必须要存在一组进程,在这组进程竞争资源的情况下才有可能产生。 4、现有同类资源12个供3个进程共享,假定进程所需资源和已占资源的情况如下表所示。3个进程在执行中又都提出申请一个资源的要求,回答:进程已占资源数最大需求数A14B46C58a.如果先满足进程A的要求,系统将会出现什么现象?解释之。b.你认为应按怎样的次序分配资源才合适?为什么?答:a.在当前状态下,尚余2个资源可供分配,如果先满足进程A的要求,把其中1个资源分配给A进程,此时A、B、C进程仍未拥有足够资源完成任务。系统进入不安全状态,随着进程的继续执行,剩余的1个资源无论分给哪个进程,均导至所有进程进入等告待而出现死锁。b.根据目前的资源占用情况,应该先满足B的要求,把剩下的2个资源分配给他,这样,B进程可执行完毕归还系统6个资源。这6个资源可以满足A和C进程的资源需求,从而使系统处于安全状态。5、某系统有A,B,C,D这4类资源供5个进程共享,进程对资源的需求和分配情况如下表所示。现在系统还剩资源A类1个,B类5个,C类2个和D类0个,请按银行家算法回答下面问题:进程已占资源数最大需求数ABCDABCDP100120012P210001750P313542356P406320652 P500140656a.现在系统是否处于安全状态?b.如果现在进程P2提出需要(0,4,2,0)个资源的要求,系统能否满足它的请求?答:a.在这里,进程P1已经拥有足够资源,在执行行后可归还C和D资源,,同时,进程P3可以得到足够的资源完成执行,其后,P2,P4、P5可以依次得到足够的资源来完成,因此,用银行家算法分配资源时,系统处于安全状态。b.系统可满足进程P2的资源要求。根据银行家算法,P2进程首次申请B类资源4个,不大于其所需的最大资源数(7个),也不大于系统尚存可用资源数(5个),同样对于C类资源也是可以满足的,因此系统按其当前申请数分配给P2进程。系统仍能按前面所述的资源分配序列P1,P3,P2,P4,P5来完成运行,系统处于安全状态。6、某系统有同类资源m个供n个进程共享,如果每个进程最多申请x个资源(1≤x≤m)且各进程的最大需求量之和小于(m+n),证明该系统不会发生死锁。证明:因为每个进程最多申请x个资源,最坏情况下n个进程各已申请了x-1个资源。所以现在还剩下的资源是m-n(x-1),又因为各进程的最大需求量之和小于(m+n),因此有n(x-1)<m (即每个进程至少还差一个资源才能得到满足)。所以剩余资源m-n(x-1)≥1,这样,系统至少还有一个资源可使其中一个进程得到所需的全部资源,在它执行结束后,归还的资源可供其他进程使用,因而不可能发生死锁。7、有3个进程P1,P2和P3并发执行,进程P1需使用资源S3和S1,进程P2需使用资源S1和S2,进程P3需使用资源S2和S1,回答:a.若对资源分配不加限制,会发生什么情况?为什么?b.为保证进程能执行到结束,应采用怎样的资源根本策略?答:a.若对资源分配不加限制,可能出现死锁情况:如下表进程名已占资源申请资源P1S3S1P2S1S2P3S2S1三个进程都不能得到自己所需的另一个资源,从而产生死锁。b.有几种方法可以避免死锁产生:·(1)采用静态分配策略,每一个进程在开始执行前申请到所需的全部资源后,该进程才能开始执行,只要一个资源不能满足,系统就不分配任何资源给该进程使其等待。·(2)采用释放已占资源策略,即当进程申请新的资源时必须先释放已经占用的资源才可以给予分配资源。·(3)采用按序分配策略,如给S1,S2,S3资源确定编号,进程在申请资源时必须从小到大的编号进行申请,即P1按S1,S3的顺序,P2按S1,S2的顺序,P3按S1,S2的顺序申请,这样的话,只要S1被任何一个进程申请到,别的进程就不可以申请到任何资源,从而保证了系统的安全。 8、当前某系统有同类资源10个,进程P,Q,R所需资源总数分别为8,4,9。它们向系统申请资源的次序和数量如下表所示。回答:a.系统采用银行家算法分配资源,请你写出系统完成第6次分配后各进程的状态及所占资源量。b.在以后各次的申请中,哪次的申请要求可先得到满足?次序进程申请量次序进程申请量1  2  3  4  5  R  P  Q  P  R  2  4  2  2  1  6  7  8  9  Q  R  P  R  2  3  2  3  答:系统完成第6次分配后各进程状态如下:进程已分配资源数尚需资源数进程状态系统剩余资源数P44等待0Q40运行R27等待附:按银行家算法进行的各进程的资源分配状态变化如下:次序PQR系统剩余资源数100282402434222442225422264420b.进程Q运行结束后,第7次申请不能得到满足,因为归还的4个资源不足R进程的剩余需求量,而第8次申请则可以使P进程完成任务,因此第8次申请将先得到满足。 第十章复习题1、为什么当前有许多不同的UNIX版本?这种多样性有什么优缺点?答:UNIX系统出现后造成很大影响,它具有良好的性能:短小精悍、简洁有效、易移植、可扩充、开放性好等。UNIX系统的巨大成功使得所有的通用计算机上都可以得到UNIX。UNX不仅广泛应用于操作系统的教学中,而且在政府机关、军事、工商企业、过程控制等各个方法都在迅速扩大应用范围。由于UNIX系统是开放源码的,研究人员只要对它他部分替换就可开发出适合自己需要的环境。这种开放性使得产生了众多的UNIX版本。各种版本的存在,维护了UNIX的强大生命力,适应了各种需要。但是这种多样性最大的一个麻烦就是用户界面存在显著不同。2、UNIX系统的层次结构有什么特色?答:从结构上看,UNIX可以分成内核层和外壳层两部分。内核层是UNIX操作系统的核心,它实现存储管理、文件管理、设备管理、进程管理等功能并为外壳层提供系统调用。外壳层为用户提供各种操作命令(UNIX把它们称为shell命令)和程序设计环境。外壳层由shell解释程序、支持程序设计的各种语言(如C、PASCAL和BASIC)、编译环境和解释程序、实用程序和系统库等组成。UNIX系统不允许外壳层程序直接访问和干扰内核程序,因此,UNIX系统提供两种程序运行环境,即用户态和核心态. UNIX系统的层次结构具有良好的性能,主要包括:短小精悍、简洁有效、易移植、可扩充、开放性好等。3、什么是UNIX的程序员接口?用户程序怎样使用这个接口?答:UNIX的程序员接口就是其内核提供的系统调用,它是内核为外壳的用户程序提供的服务界面,也就是操作系统支持用户程序正常工作接口。系统调用是用户程序请求操作系统继其服务的惟一形式,UNIX规定用户程序调用“trap指令”请求系统服务。4、什么情况下要使用系统调用fork?系统调用exec的作用是什么?答:当某个进程需要创建新进程时,调用fork。一个进程用fork创建一个新进程,原进程与新进程形成父子关系,分别称父进程和子进程。exec系统调用的功能是把文件装入内存并启动它执行。一个进程使用系统调用exec后,该进程的存储空间被新文件占用,即改变了进程执行的程序。5、父进程用fork创建了子进程之后,父子进程之间有什么关系?答:由fork创建的子进程是与父进程相似的进程,子进程基本上是父进程的复制。父进程和子进程可以并发执行,子进程可以共享父进程的正文段和已打开的文件。6、什么叫输入输出重定向?UNIX系统提供哪些输入输出重定向功能?答:UNIX系统的标准输入设备和标准输出设备都是终端设备,从终端设备上读入的信息称为标准输入,把信息写到终端上称为标准输出。通常标准输入都是从键盘上读信息,而标准输出都是把信息显示在屏幕上。但有时用户希望用文件来代替输入设备(键盘)和输出设备(屏幕)。 UNIX系统中shell具有的把标准输入改成从文件中读取信息,把标准输出写到文件中的这种功能称为输入输出重定向。UNIX系统提供如下输入输出重定向功能:“>”和“>>”是输出重定向,“<”是输入重定向的特殊字符。7、UNIX的管道机制有什么作用?答:UNIX系统提供了管道机制来实现进程间的信息传送。实际上,UNIX的管道机制pipe是连接在进程间的共享文件,称为pipe文件。通过管道机制对进程读写pipe文件进行操作,使得一个进程可以把信息写入pipe文件,别的进程可以从pipe文件中读取信息,实现进程间的通信。8、什么是UNIX的shell文件(shell进程)?请按自己的需要写一个shell文件。答:为了方便用户,UNIX系统允许用户使用shell命令语言编辑成一个文件来表示一组命令的执行顺序,用shell语言编辑成的文件称shell文件。9、UNIX进程有什么特点?它有哪两种执行环境?答:通常用户把进程分成两大类,一类是系统进程,另一类是用户进程。系统进程执行操作系统程序,提供系统功能。用户进程执行用户程序,完成用户功能。UNIX进程有两种执行环境,即核心态和用户态。操作系统程序在核心态执行,用户程序在用户态执行,进程在不同的状态下执行时拥有不同的权力。 10、UNIX进程由哪些部分组成?各起什么作用?答:在UNIX系统中进程由三部分组成:进程控制块、正文段和数据段。UNIX系统为了节省进程控制块所占的主存空间,把每个进程控制块分成两部分。一部分常驻内存,记录了进行进程调度时必须使用的一些主要信息,不管进程是否占有处理器运行,系统经常会对这部分的内容进行查询和处理。UNIX系统把作为基本控制块,把它的数据结构称为proc结构。另一部分非常驻内存,当进程不占有处理器时,系统不会对这部分内容进行查询和处理,因此这部分内容可以存放在磁盘的对换区中,它随着用户程序和数据换进或换出主存。而正文段的功能则是在多道程序设计系统中,不同的进程可能要调用相同的程序。供多个进程共享的程序称为进程的正文段。正文段是可再入的程序,它由不可被修改的程序和常数组成。进程执行程序时用到的数据构成数据段,如果进程执行的顺序是非共享的,则也构成数据段的一部分。UNIX把进程的数据段又划分成三部分,用户栈区、用户数据区和系统工作区。11、UNIX中创建一个进程要做哪些主要工作?答:UNIX中一个进程使用系统调用fork来创建新进程,形成父子关系经。父进程与子进程可以并发执行。fork生成一个新进程的工作由函数newproc完成的,它的工作过程如下:·1、在进程表proc[]中为子进程找一个空闲的表项,用来存放子进程的proc结构。·2、为子进程分配一个惟一的标识号,UNIX系统进程标识号的范围是0-255。 ·3、把父进程proc中字段复制到子进程的proc中,但把p-pid置为分配到的标识号,把p-pid置为父进程标识号,把p_stat置为“创建”状态。·4、按父进程中p_size所示的长度为子进程申请分配空间。12、UNIX中进程的状态是怎样变化的?答:参见教材P219图10-5-213、UNIX采用怎样的进程调度算法?什么情况下要进行进程调度?调度程序swtch的主要任务是什么?答:UNIX对进程的调度采用动态优先数算法,进程的优先数随进程的执行情况而变化。当进程执行中由于各种事件让出处理器时,或一个处理器的进程用完了一个时间片后被剥夺了占用处理器的权利(被抢占)时。进程调度程序swtch从内存就绪队列中选取优先数最小的进程占用处理器运行。·在UNIX系统中,Swthc程序是用来完成进程调度的。Swtch进行调度的时机是:·进程完成了预定任务而终止·进程因等待某些时间而进入睡眼状态·进程由于与其他进程协同完成某一任务时因同步需要而主动放弃处理器·发现比线性进程更高优先权的进程。·进程用完了一个规定的时间片·其他异常处理时强迫对处理器进行调度。Swtch程序的主要任务是:·保存现在运行进程的现场信息·从在内存就绪的进程中选择一个优先数最小(优先权最高)的进程占用处理器 ·为被选中的进程恢复现场信息。14、UNIX怎样确定进程的优先数和优先权?优先数和优先权之间有什么关系?答:UNIX中每个进程都有一个优先数,就绪进程能占用处理器的优先权取决于进程的优先数,优先数越小则优先权越高。UNIX采用动态方式确定各进程的优先权,确定优先权的原则如下:·进入核心态运行的进程优先权高于进入用户态运行的进程优先权。·一个进程因用完了一个时间片而被剥夺了处理器,应降低这个被创先进程的优先权。·对进入睡眠的进程,系统将按照它们的等待事件的轻重缓急程度赋于它们不同的优先数。·累计使用处理器时间较长的进程的优先权相应降低,以减少这些进程占用处理器的机会。两种设置优先数的方法:·1、设置优先数。进程进入睡眠状态时,系统按其睡眠原因设置优先数。·2、UNIX采用计算的方法改变进程的优先数。15、什么是UNIX进程的对换空间?怎样管理对换空间?答:磁盘上设置开辟一个足够大的区域,为对换区。当内存中的进程要扩大内存空间,而当前的内存空间又不能满足时,则可把内存中的某些进程暂换出到对换区中,在适当的时候又可以把它们换进内存。因而,对换区可作为内存的逻辑扩充,用对换技术解决进程之间的内存竞争。UNIX对内存空间和对换区空间的管理都采用最先适应分配算法 。对换空间是由一组连续的磁盘块组成的,每块大小相同。对换空间以块为单位进行分配,为了管理对换空间,在内存中设置一个数组,称为映射图。该图中每个项是一个记录,用来登录空闲的对换空间,该记录有两个域,第一个域登录空闲空间的起始地址,第二个域登录该组空闲对换空间的块数。16、UNIX文件系统有什么特点?UNIX怎样实现文件目录的检索?答:在UNIX系统中,文件的逻辑结构是流式文件。文件的物理结构是采用索引结构方式。在UNIX中,把外围设备也当作文件看待,称为设备文件。所以,UNIX中的文件包括普通文件、目录文件和设备文件。UNIX的文件系统分成基本文件系统和可装卸的子文件系统两部分,二者都有自己独立的目录结构。基本文件系统是整个UNIX文件系统的继承,称为根文件系统,系统一理启动运行,基本文件系统不能脱卸而子文件系统可以随时更换。这种结构使得文件系统易于扩充和更改。UNIX采用的树形目录结构,UNX中每个文件有一个唯一的索引节点,静态存放在磁盘上,又称磁盘索引节点。为了加快访问文件的速度,UNIX在内存开辟了一个索引节点缓冲区,用来建立活动索引节点表。通过文件目录、磁盘索引结点和活动索引结点系统可以快速有效地进行目录检索了。17、进程打开文件表和系统打开文件表的作用是什么?答:UNIX在整个系统运行期间维护一张系统打开文件表,每个用户进程有一张进程打开文件表,以实现对文件读写操作的动态管理。 一个文件可以被同一个进程或不同进程以相同或不同的路径同时打开,在请求打开时可以提出相同或不同的打开方式(只读、写、读写)。UNIX设置的系统打开文件表用于反映对被打开文件进程操作的动态信息。主要用于对文件的读写控制。UNIX允许每个进程同时打开多个文件,但规定每个进程最多同时打开15个文件。UNIX为每个进程设置的进程打开文件表,其中的表项对应指向系统打开文件表中的一个表项。18、UNIX怎样管理磁盘上的文件存储空间?答:UNIX中的每一个文件系统的磁盘空间可以分成几个部分:包括引导块、超级块、索引节点区和文件存储区。UNIX中可分配的磁盘空间有两类。索引结点区和存放文件的存储区。对索引节点为区的管理:在索引节点餐中,每一块可用来存放一占;建立文件时,从中找到一个空闲块存放该文件的索引节点;删除文件时,置该文件的索引节点为空闲。对文件存储区的管理:对文件存储区中的空闲块采用成组连接的方式管理每1000个空闲块为一组。19、UNIX块设备缓冲技术有什么特点?设备使用过的缓冲区被释放时链入了空缓冲区队列,为什么还要把该缓冲区保留在设备缓冲区队列中?答:UNX系统采用缓冲技术实现设备的读写操作,其目的是减少启动设备的次数,减少对块设备的访问次数,减少输入输出操作所区费的时间。提高整个系统的吞吐量。 UNIX系统为磁盘的读写操作设置了一组缓冲区,构成缓冲区池。每个缓冲区包含用于存放磁盘块信息的缓冲区数据块和用于缓冲区管理的缓冲区控制块。UNIX系统根据缓冲区使用情况,把他们分成不同队列:空闲缓冲区队列和设备缓冲区队列。设备使用过的缓冲区被释放时链入了空缓冲区队列,这样可以充分利用缓冲区,在需要时作为空闲缓冲区分配,而把它保留在设备缓冲队列中,可以在需要时继续使用缓冲区中的数据。因为只要该缓冲区还没有被重新分配,则其中信息不会改变。当需要时只要把该缓冲区从空闲缓冲区队列中退出就可以继续使用该缓冲区中的信息了。20、什么情况下要对块设备缓冲区置DELWR(延迟写)标志?为什么要把有DELWR标志的缓冲区链入空闲缓冲区队列?又为什么不能有把有DELWR标志的缓冲区立即分配?答:DELWR标志表示缓冲区中的内容尚未写回到磁盘上,所以在缓冲区的数据块尚未写到磁盘上是要设置DELWR标志,这样当该缓冲区需另作它用时,就可以根据这个标志,首先把该缓冲区的内容写回到磁盘上。当分配缓冲区时总是摘取空闲缓冲区队列中的第一个缓冲区,有DELWR的缓冲区链在空闲区队列中的目的是为了使缓冲区能被充分利用上,而当需要这个缓冲区时,由于有DELWR标志,说明缓冲区中的信息尚未写入磁盘,因此不能分配。21、字符设备的缓冲区为什么与块设备的缓冲区不同? 答:UNIX系统对块设备采用缓冲区池的方式实施缓冲技术,以减少设备启动次数及输入输出操作花费的时间,提高整个系统的吞吐量。字符设备工作速度低,一次输入输出要求传送字节数少而且不固定,所以不适宜采用块设备管理中的缓冲技术,而是采用缓冲区容量较小的,易管理的字符缓冲技术。'