自学教材:《操作系统》主编:谭耀铭;出版社:中国人民大学出版社。
第一章复习题答案
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、阐述进程控制块的作用?
答:进程控制块(Process Control
Block,简称PCB),是操作系统为进程分配的用于标志进程,记录各进程执行情况的。进程控制块是进程存在的标志,它记录了进程从创建到消亡动态变化的状况,进程队列实际也是进程控制块的链接。操作系统利用进程控制块对进程进行控制和管理。
进程控制块的作用有:
(1)记录进程的有关信息,以便操作系统的进程调度程序对进程进行调度。
这些信息包括标志信息、说明信息、现场信息和管理信息等; ? (2)标志进程的存在,进程控制块是进程存在的唯一标志
?
8、进程能否访问自己的进程控制块内容?
进程控制块是系统为程序建立的用于标志进程,记录各进程执行情况的。进程本身不能访问或者修改自己的进程控制块的内容,但父进程可以访问或修改其子孙进程的进程控制块内容,以便对它的子孙进程进行必要的管理和控制。
9、处理器为什么要区分“目态”和“管态”两种操作模式?
答:硬件提供的指令系统中有一部分不允许用户程序直接使用,这些不允许用户程序使用的指令称特权指令,特权指令只允许操作系统进行调度、控制或启动外围设备的程序使用。为了避免错误地使用特权指令,处理器分为两种操作模式:目态-只能执行特权指令以外的指令、管态-可执行指令系统中的一切指令。
若程序处于\目态\操作模式,一旦出现特权指令,处理器就能识别出程序非法使用指令,形成程序性中断事件,终止程序的执行。在计算机系统中往往把用户程序置于目态下运行,已保证计算机系统的安全可靠。
10、中断装置发现中断事件后应做哪些事?
答:中断装置发现了中断事件后,由操作系统的中断处理程序对中断事件进行处理,中断处理程序的主要工作有:
保护被中断进程的现场信息 把中断时的通用寄存器,控制寄存器内容及旧PSW保存到被中断进程的进程控制块中。
? 分析中断原因 根据旧PSW的中断码可知发生该中断的具体原因。 ? 处理发生的中断事件 一般只做一些简单处理,在多数情况下把具体的处理交给其他程序模块去做。
?
11、说明中断屏蔽的作用?
答:中断优先级只是规定了中断装置响应同时出现的中断的次序,当中断装置响应了某个中断后中断处理程序在进行处理时,中断装置也可能去响应另一个中断事件。因此会出现优先级低的中断事件的处理打断优先级高的中断事件的处理,使得中断事件的处理顺序与响应顺序不一致,而且会形成多重嵌套处理,使多现场保护、程序返回等工作变的复杂。
中断屏蔽技术就是为了解决上述问题而提出的,在一个中断处理没有结束之前不响应其他中断事件,或者只响应比当前级别高的中断事件。于是,当中断装置检查到有中断事件后,便去查看PSW中中断屏蔽标志,如果没有屏蔽就响应该中断;否则,暂时不响应该中断,待屏蔽标志消除后再响应
。
12、为什么不能屏蔽自愿中断事件?
答:自愿中断事件是正在运行程序所期待中的事件,它是正在运行程序为请求调用操作系统的某个功能服务而执行一条“访管指令”所引起的中断。当处理器执行到访管指令时就产生一个中断,因而进程自愿中断的断点是确定的。自愿中断不同于强迫性中断,强迫中断不是当前进程所期待的,而是由于外部请求
或意外而被迫打断当前进程的。自愿中断是用户程序访问系统功能的手段,在进程中是确定的,因而不能屏蔽。
13、哪些中断事件一定会引起进程状态的变化?哪些中断事件可能引起进程状态变化?有不引起进程状态变化的中断事件吗?
笑笑提供的答案:
一定会引起进程状态变化的中断事件:硬件故障中断、输入输出中断、自愿中断; 可能会引起变化的中断事件:外部性中断事件、程序性中断事件,例
如定点溢出及除数为“0”等,不同的用户可以有不同的处理要求,所以有可能改变也有可能不改变;
有不引起变化的中断事件:外部性中断事件。引起外部中断的原因很多,因此处理方法也就截然不同。例如时钟中断也是一种外部中断,但大多数情况下,时钟中断不改变进程的状态.以上只是个人理解,希望大家多跟我讨论,谢谢!
14、在一个单处理器的多道程序设计系统中,现有两道作业同时执行,其中以运算为主,另一道以输入输出为主,你将怎样赋予作业进程占有处理器的优先数?解释为什么?
答:赋于输入输出作业以较高的优先权。确定作业的优先数一般从任务的紧迫性和系统效率等方面考虑。交互式作业进程的优先数大于批处理作业进程的优先数。
15、假定就绪队列中的进程按优先数自大到小顺序排列,当即有进程要加入就绪队列时,应将它的优先数排入相应的位置,试就单向链接的方式写出实现进程入队的程序。
解:这就是一个单向链表的插入操作,用类C语言描述如下: procedure Insert(Queue ReadyQue,Pointer P)
{//ReadyQue 是就绪队列指针,P是要插入队列进程指针 //P中的priority指示其进程的优先数 //P中的Next指示其后继进程指针
Pointer P1=ReadyQue, P2=ReadyQue;
//P1指示比P优先数小的第一个进程指针 //P2指示比P优先数大的第一个进程指针 while(P->priority
//查到后将P插入到就绪队列中 P->Next=P1; P2->Next=P;
}//End Procedure
16、当进程调度选中一个进程后,怎样才能让它占用处理器? 答:当进程调度选中一个进程后,把选中进程的进程控制块中有关的现场信息,如通用寄存器、控制寄存器和程序状态字寄存器的内容送入处理器相应的寄存器中,处理器就按该进程的要求工作,达到了进程占用处理器的目的。
17、在分级调度算法中,为什么对不同就绪队列中的进程规定使用不同长度的时间片?
答:在分级调度算法中,对不同就绪队列中的进程,可规定使用不同长度的时间片,一般来说,第一级就绪队列的时间片短一些,以的各级就绪队列的时间片逐级延长,最后一级就绪队列的时间片最长,这样运行时间短的里程只需经过前面几级队列就能得到结果,且它们被优先调度,有利于提高系统的吞吐率。而对运行时间长的进程在进入了低级就绪队列后可得到较长的时间片,以减少调度次数来保证系统效率。对经常使用外围设备的进程来说,每次等待外围设备传输结束后总是排入第一级就绪队列,它们会被优先调度,有利于处理器与外围设务以及外围设备之间的并行工作,从而提高资源的使用效率。
18、有5个进程P1,P2,P3,P4,P5它们同时依次进入就绪队列,它们的优先数和所需要的处理器时间如表
3-1所示
进程 P1 P2 P3 P4 P5 处理器时间 10 1 2 1 5 优先数 3 1 3 4 2
忽略进行调度等所花费的时间,请回答下列问题
a、写出分别采用“先来先服务”和“非抢占式的优先数”调度算法选中进程执行的顺序。
b、分别计算出上述两种算法使进程在就绪队列中的等待时间以及两种算法下的平均等待时间。
解:a)采用先来先服务法的执行顺序是P1→P2→P3→P4→P5。这是由其进入的顺序所确定的。
采用“非抢占式的优先数”调度算法时,各进程的执行顺序是P1→P4→P3→P5→P2.
b)如表所示:先来先服务法:
进程 P1 P2 P3 P4 P5 平均等待时间 等待时间 0 10 11 13 14 运行时间 10 1 2 1 5 (0+10+11+13+14)/5=9.6 非抢占式的优先数调度算法:
进程 P1 P4 P3 P5 P2 平均等待时间 等待时间 0 10 11 13 18 运行时间 10 1 2 5 1 (0+10+11+13+18)/5=10.4
四章复习题
题号:1 2 3 4 5 6 7 8 9 10
1、解释下列术语:逻辑地址、绝对地址、重定位、程序浮动、存储保护 答:逻辑地址:用户程序中使用的从“0”地址开始的连续地址。 绝对地址:主存储器以字节为单位编址单位,每个字节都有一个地址与其对应,这些主存储器的地址编号就是绝对地址。
重定位:为了保证作业的正确执行,必须根据分配给作业的主存区域对作业中指令和数据的存放进行重定位,这种把逻辑地址转换成绝对地址的工作称为“重定位”或“地址转换”。重定位的方式有“静态重定位”和“动态重定位”两种。
程序浮动:若作业执行时,被改变了存放区域仍能正确执行,则称程序是可浮动的。采用动态重定位的系统支持“程序浮动”
存储保护:存储管理中为了防止各作业相互干扰和保护各区域内的信息不被破坏而采取的对各作业的存储区域进行保护的措施。
2、比较各种存储管理方式的特征(包括主存空间的分配方式、是否要有硬件的地址转换机构作支撑、适合单道或多道系统等)、重定位方式、地址转换的实现(操作系统和硬件怎样配合)、存储保护的实现(操作系统和硬件各自做些什么工作)。
答: 存储管理方特征 式 除操作系统占用的一部分存储空间外,其余的用户区域单分区作为一个连续的分区分配给用户使用 管理 不需要硬件转换机构 适用于单道系统 固定分区的管理 分区数目、大小固定 设置上、下限寄存器 不需要硬件转换机构 适用于多道系统 可变分区管理方式不是把作业装入到已经划分好的分区中,而是在作业要求装入主存储器时,根据作业需要的可变分主存量和当时的主存情况决定是否可以装入该作业。 区的管 分区数目大小不定 理 设置基址、限长寄存器 适用于多道程序系统 需要硬件地址转换机构
动态重定位 静态方式 逻辑地址+下限地址→绝对地址。 上限地址 静态方式 界限寄存器值+逻辑地址→绝对地址 址≥界限地址 重定位 地址转换 存储保护 主存最大地址≥绝对下限地址≤绝对地址逻辑地址+基址寄存器的值→绝对地基址值≤绝对地址≤址。 址值+限长值 主存储器分为大小相等的\块\ 程序中的逻辑地址进行分页,页的大小与块的大小页式存一致。 储管理 用页表登记块页分配情况 需要硬件的支持 适用于多道系统 程序分段 每一段分配一个连续的主存区域,作业的各段可被段存储装到不相连的几个区域中。 管理 设置段表记录分配情况 需要硬件机构 适用于多道系统 类似页式管理: 页式虚类似页式管理将作业信息保存在磁盘上部分装入主存 拟存储 需要硬件支持 管理 适用于多道系统 动态重定位 逻辑地址的页号部分→页表中对应页号的起始地址→与逻辑地址的页内地址部分拼成绝对地址。 若该页对应标志为0,则硬件形成\缺页中断\先将该页调入主存 段式虚类似段式管理将作业信息保存在磁盘上部分装入主存 拟存储 需要硬件支持 管理 适用于多道系统 动态重定类似段式管理 位 类似段式管理 类似页式管理 动态重定位 逻辑地址中的段号→查段表得到本段起始地址+段内地址→绝对地址 动态逻辑地址的页号部分→页表中对应重定页号的起始地址→与逻辑地址的页位 内地址部分拼成绝对地址。 由页表中的标志位验长度判断是否越界 存取是否合法,根据页由段表中的标志位验长度判断是否越界 存取是否合法,根据段
3、在可变分区管理方式下,采用移动技术有什么特点?移动一道作业时操作系统要做哪些工作?
答:采用移动技术的主要优点是:
1)可以使分散的空闲区集中起来,可以容纳新的作业,提高主存空间的利用率
2)方便作业执行过程中扩充主存空间,一道作业在执行中要求增加主存量时,只要移动邻近作业就可以增加它所点的分区长度。
移动一道作业时操作系统要进行的处理:
1)判断被移动的作业是否在与外围设备交换信息,如是则不能移动,否则可以移动。
2)操作系统在移动作业信息时先移动作业信息的存储位置。
3)修改主存分配表中和保存在进程控制块中的分区起始地址和长度信息。 4)采取必要措施,尽量减少移动的作业数和信息量,提高系统效率。
4、解释页式存储管理中为什么要设置页表和快表?
答:在页式存储管理中,主存被分成大小相等的若干块,同时程序逻辑地址也分成与块大小一致的若干页,这样就可以按页面为单位把作业的信息放入主存,并且可以不连续存放,为了在作业执行过程中准确地查表逻辑地址与绝对地址的的对应关系,就需要为每个作业建立一张页表,表示逻辑地址中的页号与主存中块号的对应关系。
页表一般存放在主存中,当要按给定的逻辑地址访问主存时,要先访问页表,计算出绝对地址,这样两次访主存延长了指令执行周期,降低了执行速度,而设置一个高速缓冲寄存器将页表中的一部分存放进去,这部分页表就是快表,访问主存时二者同时进行,由于快表存放的是经常使用的页表内容,访问速度很快,这样可以大大加快查找速度和指令执行速度。
5、什么叫虚拟存储器?怎样确定虚拟存储器的容量?
虚拟存储器是为“扩大”主存容量而采用的一种设计技巧,它利用作业在只装入部分信息时就可以执行的特性和程序执行中表现出来的局部性特性,借助于大容量的辅助存储器实现小主存空间容纳大逻辑地址空间的作业。
虚拟存储器的容量由计算机的地址结构(地址总线位数)决定。如计算机的地址总线位数为32位,则最大的虚存容量为2^32=4294967296B=4GB
6、叙述页式虚拟存储器的基本原理。
答:页式虚拟存储器是在页式存储的基础上实现虚拟存储器的,其工作原理是:
首先把作业信息作为副本存放在磁盘上,作业执行时,把作业信息的部分页面装入主存,并在页表中对相应的页面是否装入主存作出标志。 ? 作业执行时若所访问的页面已经在主存中,则按页式存储管理方式进行地址转换,得到绝对地址,否则产生“缺页中断”由操作系统把当前所需的页面装入主存。
? 若在装入页面时主存中无空闲块,则由操作系统根据某种“页面调度”算法选择适当的页面调出主存换入所需的页面。
?
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算法两块主存空间时(红色为所缺页)
当前页 调出页 缺页中断 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 1 2 3 4 2 1 5 6 1 2 3 7 6 3 1 2 共16次
LRU算法时四块主存空间时:
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6 当前页 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 1 2 3 4 2 1 5 6 6 1 2 3 7 6 3 3 1 2 1 1 3 4 2 1 5 5 6 1 2 2 7 6 6 6 1 调出页 缺页中断 3 4 5 6 1 7 共6次
当采用FIFO算法两块主存空间时:
访问页 当前页 调出页 缺页中断 1 2 3 4 2 1 5 6 2 2 1 3 7 6 3 2 2 1 3 1 2 3 4 2 1 5 6 2 1 3 7 6 3 2 1 共16次 1 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6 2 3 4 2 1 5 6 2 1 1 3 7 6 3 2 1 1 3 6 采用FIFO算法四块主存空间时:
访问页 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 1 2 3 4 4 4 5 6 2 1 1 3 7 6 6 2 1 1 3 1 2 3 3 3 4 5 6 2 2 1 3 7 7 6 2 2 1 当前页 1 2 2 2 3 4 5 6 6 2 1 3 3 7 6 6 2 1 1 1 2 3 4 5 5 6 2 1 1 3 7 7 6 调出页 缺页中断 2 6 6 3 1 1 2 3 4 5 6 2 1 3 7 共10次
9、有一个程序要把100*100数组置初值“0”,现假定有两个主存块可用来存放数组信息,主存块的大小为可存放200个数组元素,数组中的元素按行编址。两个主存块的初始状态都为空,若程序编制如下:
(a) Var A:array[1..100] of array[1..100] of integer; for j:=1 to 100 do for i:=1 to 100 do A[i,j]=0
(b) Var A:array[1..100] of array[1.100] of integer; for i:=1 to 100 do
for j:=1 to 100 do 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所示 的段表。
段号 0 1 2 3 4 段长 660 140 100 580 960 主存起始地址 2219 3300 90 1237 1959
回答下列问题: 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)=130
b.实际服务算法是指单向扫描算法,在此算法下,移动距离是: (130-125)+(147-130)+(150-147)+(175-150)+(177-175)+(199-177)+86+(91-86)+(94-91)+(102-94)=176(返回的移动不算入内)
8、假定磁盘的移动臂现在处于第8号柱面,有如下6个请求者等待访问磁盘(见下图),请你列出最省时间的响应次序。
序号 1 2 3 4 5 6 柱面号 9 7 15 9 20 7 磁头号 6 5 20 4 9 15 扇区号 3 6 6 4 5 2
答:最省时间的响应次序是2、6、1、4、3、5。根据题意,只要访问的柱面号顺序为7,9,15,20的顺序均应为正确答案。因为题中未给出确定的扇区数及访问和处理所需时间。大约本题的出题重点在于考察移臂调度。至于本题的答
案是根据这样的原则来的,在确定移臂次序之后,如果有访问相同柱面的,根据先来先响应的次序确定?ǖ比徽庵值鞫确桨冈谑导手胁灰欢ㄊ迪郑?/p>
9、假定某磁盘的旋转速度是每圈20ms,格式化时每个盘面被分成10个扇区,现有10个逻辑记录存放在同一磁道上。
扇区号 1 2 3 4 5 6 7 8 9 10 逻辑记录 A B C D E F G H I J 处理程序要顺序处理这些记录,每读出一个记录后处理程序要花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=204ms
b.要使处理程序在最短时间内处理完毕,则根据我们上面的计算,把B记录安排在第扇区4上,把C记录存放在扇区7上...按照这个办法,可以得到记录的优化分布如下分配:
A 1 B 4 C 7 D 10 E 3 F 6 G 9 H 2 I 5 J 8 这时每处理一个记录后刚好转入下一记录扇区,所以处理时间总和为:10*(2+4)=60ms
10、假定有一个磁盘组共100个柱面,每个柱面上有8个磁道,每个盘面被划分成8个扇区。现有一个含有6400个逻辑记录的文件,逻辑记录的大小与扇
区大小一致,该文件以顺序结构的形式被存放到磁盘上。柱面、磁道、扇区的编号均从“0”开始,逻辑记录的编号也从“0”开始。文件信息从0柱面、0磁道、0扇区开始存放。试问:
a.该文件的第 3680个逻辑记录应存放在哪个柱面的第几磁道的第几个扇区?
b.第78柱面的第6磁道的第6扇区应存放在了该文件的第几个逻辑记录?
解:a.因为在磁盘中,文件是按柱面-磁道-扇区为序存放的。计算如下:(题中[ ]表示求整除的值??
柱面号=[3680/(8*8)] =57 ? 磁道号=[(3680 mod 64)/8]=4 ? 扇区号=(3680 mod 64)mod 8=0
?
b.反过来也可计算:
逻辑记录号=78*64 + 6*8 +6 =5046
11、解释通道命令、通道程序、通道地址字和通道状态字
答:通道命令是计算机硬件设备提供的用于使用输出设备的操作命令,每一条通道命令规定了设备的一种操作。通常由命令码、数据主存地址、传送字节个数及标志码等部分组成。
通道程序是由一组通道命令组成的,这一级通道命令规定了通道执行一次输入输出操作应用的工作。
通道地址字(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,... ? 菜单技术 操作简单、直观、不需记忆
? 窗口技术 为用户提供图形用户接口--Windows
?
8、终端用户的“注册”和“注销”各起什么作用?
答:注册的作用实际上是对终端作业的调度,当用户输入“注册(logon)命令时,系统进行一些必要的核对工作。经识别用户、核对口令,分配资源,确认后允许用户使用系统。
注销:当作业执行结束时,用户使用注销命令请求退出系统,系统将收回其占用的资源并计算用户使用系统的时间。
9、一个具有分时兼批处理功能的操作系统应怎样调度和管理作业?为什么?
答:在一个具有分时兼批处理的计算机系统中的调度管理策略是:
总是优先接纳终端作业:当有终端作业的就绪进程时,总让终端作业的就绪进程按“时间片轮转“的方法先占用处理器。
? 仅当终端作业数小于系统可以允许同时工作的作业数时,再调度成批处理作业。当无终端作业的就绪进程时,才去查看批处理作业的就绪队列,按确定的算法从中选择一个就绪队列让它占用处理器。 ? 允许终端作业与批处理作业混合同时执行。
?
这样做是为了既使终端用户满意,又能提高系统效率。
10、某系统采用不能移动已在主存储器中作业的可变分区方式管理主存储器,现有供用户使用的主存空间100K,系统配有4台磁带机,有一批作业见下表:
作业序号 1 2 3 4 5 进输入井时间 10:00 10:20 10:30 10:35 10:40 要求计算时间 25分钟 30分钟 10分钟 20分钟 15分钟 需要主存容量 15K 60K 50K 10K 30K 申请磁带机数 2台 1台 3台 2台 2台
该系统采用多道程序设计技术,对磁带机采用静态分配,忽略设备工作时间和系统进行调度所花的时间,请分别写出采用“先来先服务调度算法”和“计算时间最短者优先算法”选中作业执行的次序以及它们的平均周转时间。
解:先来先服务法如下表:
作业序号 1 10:00 10:10 进输入进入主井时间 存时间 开始计结束计周转间 10:00 10:25 25 此时输入井中只有一个作业且满足资源要求,因此被选中运行。 作业2到达输入井,满足资源要求,2 10:20 10:20 10:25 10:55 35 装入主存,等到作业1运行完毕进入运行态。 由于作业3要求主存空间无法满足,4 10:35 10:35 10:55 11:15 40 因此作业4先行一步,运行期间作业5进入输入井,并满足资源要求,因此作业5进入主存就绪。 5 10:40 10:55 3 10:30 11:30 11:15 11:30 50 作业3仍要等候,作业5可以运行。 11:30 11:40 70 最后作业3装入主存并运行 算时间 算时间 时解释
平均周转时间为(22+35+40+50+70)/5=44分钟 按计算时间最短者优先算法如下表:
作业序号 进输入进入主开始计结束计周转间 此时输入井中只有一个作业且满足资源要求,因此被选中运行。 作业2到达输入井,满足资源要求,装2 10:20 10:20 10:25 10:55 35 入主存,等到作业1运行完毕进入运行。 由于作业3要求主存空间无法满足,因5 10:40 10:55 10:55 11:10 30 此作业4先行一步装入主存,当作业2让出处理器的同时,作业5满足资源要求进入主存就绪。根据算法作业5先进4 10:35 10:35 11:10 11:30 55 入处理器运行。 3 10:30 11:30 11:30 11:40 70 最后作业3装入主存并运行 井时间 存时间 算时间 算时间 时解释 1 10:00 10:10 10:00 10:25 25 平均周转时间:(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、两个并发进程的程序如下:
begin
N: integer; N:=3; cobegin PROCESS A begin
L1:N:=N+5; goto L1 end;
end;
PROCESS B begin
L2:print(N); N:=0; goto L2 end; coend;
若PROCESS A先执行了三个循环后,PROCESS A和PROCESS
B又并发执行了一个循环,写出可能出现的打印值。正确的打印值应该是多少?请用PV操作进行管理,使它们并发执行时不出现与时间有关的错误。
解: 可能出现的打印值为18或23。因为N的初始值为3,当进程A执行三个循环后,N的值为18,此时Process
A和ProcessB并发执行,如果正巧是B先进入CPU执行的话,打印值就是18,打印时A进程为N增加的值就没有被记录下来。正确的打印值应该是23。PV操作的管理程序如下:
begin
N: integer; N:=3;
S:SEmaphore; S:=1
cobegin PROCESS A begin L1:P(S); N:=N+5; V(S); goto L1 end; PROCESS B begin L2:P(S); print(N);
end; coend; end;
N:=0; V(S); goto L2
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操作.
过程如下
begin S,SE,SW:SEmaphore;//S为两组不同进程的临界信号,SE,SW为各自临界信号 CountE,CountW:Interger;//分别为两种进程进入ab段的车辆数 CountE:= CountW:= 0;//初始时ab段无车辆 S:=SE:=SW:=1; //初始任何一边均可驶入 CoBegin Process EASTi (i=1,2,3...) //向东行驶进程可以有多个 begin P(SE);//检查有无正在向东驶入或驶出的车辆(因为要访问本组进程的共享变量 CountE)
if CountE=0 then P(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段. if CountE=0 then V(S);// 如果ab段无向东行驶车辆则允许ab段由向西行驶进程使用. V(SE);//本组临界区访问结束,允许其他东行车辆进入或离开ab段 end; Process WESTj(j=1,2,3...)//向西行驶进程 begin P(SW); //本进程与向东行驶的过程类同,只是共享变量和信号变量不同. if CountW=0 then P(S); CountW:=CountW+1;//向西行驶车辆数增加. V(SW); //允许其他西行车辆进入 pass(ba); //车辆驶过 P(SW); CountW:=CountW-1;//车子驶出ab段. if CountW=0 then V(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表示缓冲器中记录已被加工好了。
begin Buffer:integer; SR,SM,SP:SEmapore; SR=1;SM=0;SP=0; cobegin PROCESS R //读入一个记录进程 begin L1: read; P(SR); //读之前检查缓冲器是否为空,为空则读入一条记录 Buffer:=read; V(SM); //读好后允许加工进程工作 goto L1 end; PROCESS M //加工记录进程 begin
L2:product; P(SM); //