第一章复习题答案p3
1、计算机系统由哪些部分组成?
2、什么是计算机的操作系统?
答:操作系统是计算机的一种系统软件,由它统一管理计算机系统的资源和控制程序的执行。操作系统既是一种资源管理程序,又是一种其他程序执行的控制程序,其目的是提供一个供其它程序执行的良好环境。
3、操作系统管理计算机系统的哪些资源?
答:操作系统管理的计算机系统资源包括两大类:硬件资源和软件资源。计算机系统的硬件资源主要包括CPU、主存储器、辅助存储器(磁带、磁盘等)以及各种输入输出设备(键盘、显示器、打印机等);软件资源包括各种程序和数据。
4、操作系统怎样为用户提供良好的运行环境?
答:操作系统是一种系统程序,其目的是提供一个供其他程序执行的良好环境。
首先操作系统要使得计算机系统使用方便:操作系统为用户提供方便的使用接口,用户按需要输入命令或从提供的"菜单"中选择命令,操作系统按命令去控制程序的执行;用户也可以请求操作系统的功能模块为其服务,而不必了解硬件的特性。
其次操作系统要使得计算机系统能高效地工作:操作系统扩充硬件的功能,而硬件的功能发挥的更好;操作系统使拥护合理共享资源,防止各用户间的干扰;操作系统以文件形式管理软件资源,保证信息的安全和快速存取。
5、操作系统怎样提高系统的效率?
答:为提高系统的效率:
操作系统扩充硬件的功能,使硬件的功能发挥得更好;
操作系统使用户合理共享资源,防止各用户间的相互干扰;
操作系统以文件形式管理软件资源,保证信息安全和快速存取。
6、批处理操作系统怎样实现计算机操作的自动化?
答:用户把准备好的一批作业信息,包括程序、数据、作业控制说明书通过相应的输入设备传送到大容量的磁盘上等待处理。操作系统中的作业调度程序按照某种原则从磁盘上选择若干作业装入主存储器,主存储器中的这些作业可以占用中央处理机运行。当某个作业执行结束时,启动打印机,输出计算结果。然后又可以从磁盘上选择作业装入主存储器,让其运行。这样,在作业控制说明书的控制下,无需认为干预,批处理操作系统实现了计算机操作的自动化。
7、分时操作系统的主要特点是什么?
答:分时操作系统支持多道程序同时执行,实现了人机交互对话,主要有以下特点:
同时性 允许多个终端用户同时使用一个计算机系统;
独立性 用户在各自的终端上请求系统服务,彼此独立,互不干扰;
及时性 分时系统对用户的请求能在较短的时间内给出应答,使用户觉得系统即时响应了对他的请求而感到满意。
交互性 采用了人-机对话的工作,用户在终端上可以直接输入、调试和运行自己的程序,能及时修改程序中的错误且直接获得结果。
8、什么是“前台”作业?什么是“后台”作业?为什么对“前台”作业要及时响应?
答:批处理操作系统实现自动控制无需人为干预,分时操作系统实现了人机交互对话,这两种操作系统各具有各自的优点。为了充分发挥批处理系统和分时系统的优点,一个计算机系统上配置的操作系统往往具有批处理能力,有提供分时交互的能力。这样,用户可以先在分时系统的控制下,以交互式输入、调试和修改自己的程序;然后,可以把调试好的程序转交给批处理系统自动控制其执行而产生结果。这些由分时系统控制的作业称为"前台"作业,而那些由批处理系统控制的作业称为"后台"作业。在这样的系统中,对前台作业应该及时响应,使用户满意;对后台作业可以按一定的原则进行组合,以提高系统的效率。
9、实时操作系统的主要特征是什么?
答:能使计算机系统接受到外部信号后及时进行处理,并且在严格的规定时间内处理结束,再给出反馈信号的操作系统统称"实时操作系统",简称"实时系统"。
其特征是:(1)及时响应,快速处理
实时系统的时间要求是强制性严格规定的,仅当在规定的时间内返回一个正确的结果时,才能认为系统的功能是正确的。
(2)高可靠性和安全性 不强求系统资源的利用率
10、解释嵌入式(计算机)系统和嵌入式操作系统。
答:计算机硬件不再以物理上独立的装置形式出现,而是大部分或全部都隐藏和嵌入到各种应用系统中。我们把这样的系统称为嵌入式系统。
嵌入式系统是指运行在嵌入式系统中对各种部件、装置等资源进行统一协调、处理和控制的系统软件。
11、嵌入式操作系统的主要特点是什么?
答:微型化和实时性。
12、网络操作系统和分布式操作系统都是配置在计算机网络上的操作系统,它们之间有什么本质上的不同?
答:分布式操作系统与网络操作系统本质的不同之处在于,分布式操作系统的网络中的多台计算机没有主次之分;分布式操作系统能使系统中若干台计算机相互协作完成一个共同的任务。把一个计算问题分成若干个可并行执行的子运算,让每个子计算在系统中的各计算机上并行执行,充分利用各计算机的优势。这样,一个程序就分布在几台计算机并行执行,相互协作得到结果。
13、从资源管理的角度来看,操作系统的基本功能可分成哪些部分?
答:从资源管理的角度来看,操作系统的基本功能可分为五大部分
(1)处理器管理 为用户地分处理器时间,尽可能地使处理器处于忙状态,提高处理器的工作效率。
(2)存储管理 实现对主存储器的管理,为用户分配主存空间,保护主存中的程序和数据不被破坏,提高主存空间的利用率。
(3)文件管理 面向用户实现按文件名存取文件,管理用户信息的存储、检索、共享和保护,合理地分配和使用文件的存储空间。
(4)设备管理 负责管理各种外围设备,包括设备的分配、启动以及SPOOL的实现技术。
第二章复习题答案p33
1、什么情况下操作系统程序才能占用中央处理器?
答:一个计算机系统,尤其是采用多道程序设计的计算机系统,不仅有操作系统和其他的系统软件,而且还有若干应用程序。这些程序只有占用中央处理执行时才能履行自己职责。而中央处理器在任何时刻最多只能被一个程序占用。
计算机开启时,自动执行引导程序。引导程序首先进行系统初始化的工作,然后把操作系统中的核心装入主存储器。此后操作系统便等待用户请求(事件)的发生,当有某个事件出现,硬件便能识别并能发生一个中断,从而通知操作系统,由它的服务程序去处理,处理结束后,又等待下一个事件发生。
中断是计算机系统结构一个重要的组成部分。中断装置由一些特定的寄存器的控制线路组成,CPU每执行完一条指令,中断装置都要判断是否有事件发生。如果没有事件发生,CPU继续执行;若有事件发生,中断装置中断原先占用CPU的程序的执行,让操作系统的处理事件服务程序占用CPU对事件进行处理,处理完后,再让被中断的程序继续占用CPU执行下去。
2、允许多道程序同时执行的硬件基础是什么?
答:中断和通道技术的出现是基础。
3、操作系统怎样让多个程序同时执行?
答:一个计算机系统,尤其是采用多道程序设计的计算机系统,不仅有操作系统和其他的系统软件,而且还有若干应用程序。这些程序只有占用中央处理执行时才能履行自己职责。而中央处理器在任何时刻最多只能被一个程序占用。
中断装置在判别到有某个事件发生时,就会触发一个中断让操作系统去占用处理器。操作系统对事件处理结束后,又主动让出处理器,并根据对事件处理情况从那些具备占用处理器条件的程序中选择一个,让它占用处理器,直到系统再一次发生事件而被中断。操作系统总是按照预定的策略去选择可占用处理器的程序,系统中若干程序可以交替地占用处理器,形成多个程序同时执行的状态。
4、为什么要把“启动I/O”等指令定义为特权指令?
答:一个程序可以在其它程序等待外围设备传送信息时占用处理器执行,在执行中如果它也使用启动指令去启动一台正在工作的外围设备,那么就会造成冲突。为保护输入输出的完整性,把“启动I/O”等的一类可能影响系统安全的指令定义为特权指令。特权指令只允许操作系统使用,用户程序不能使用特权指令。用户程序若要启动I/O,必须请求操作系统代为启动,这种方式不但可以保证安全地使用外围设备,正确地传送信息,而且可减少用户为启动设备而必须了解外围设备特性以及启动等工作,大大方便了用户。
5、怎样限制用户程序中使用特权指令?(1007考题33)
答:为了保证正确的操作,应该限制用户程序使用特权指令,为此,中央处理器设置了两种工作方式:管态和目态。在管态下,中央处理器可执行包含特权指令在内的一切指令;在目态下,中央处理器不准执行特权指令。操作系统在管态下工作,用户程序在目态下工作。如果中央处理器在目态下取到了特权指令,中央处理器就拒绝执行该指令,并产生“非法操作”事件经中断装置和操作系统通知用户修改。
6、操作系统与硬件如何配合来实现存储保护的?
答:主存储器往往同时装入了操作系统程序和若干用户程序,为了保证正确操作,必须对主存储器区域进行存储保护。存储保护随着主存储器管理方式的不同,实现保护的方法也有所不同,一般是操作系统与硬件配合来实现存储保护。
在连续分配的存储系统中,硬件中设置了两个寄存器来限定用户程序执行时可以访问的空间范围。这两个寄存器是基址寄存器和限长寄存器,用来限定用户程序执行时可以访问的主存空间范围。程序执行时,系统对每一个访问内存的地址进行核对:"基址寄存器值≤访问地址≤基址寄存器值+限长寄存器值"成立,则允许访问;否则,不允许访问。这样就保护了该区域以外的存储信息不受到破坏,一旦程序执行中出错也不会涉及其他程序。
7、为什么答:操作系统是一种程序量大且接口复杂的系统软件。设计一个操作系统要投入大量的人力和花费较长的时间。因而,如何保证操作系统能正确,高效地工作至关重要。由于程序的结构是影响程序质量的内在因素,因此,有必要对操作系统的结构进行研究。
8、应从哪些方面考虑操作系统的结构设计?(0904考题33)
答:操作系统的结构设计应追求以下目标:
正确性:一个结构良好的操作系统不仅能保证正确性而且易于验证其正确性;
高效性:核心程序是影响计算机系统效率的的关键所在应遵循少而精的原则,使处理既有效又灵活。
可维护性:操作系统要容易维护
可移植性:在结构设计时,尽量减少与硬件直接有关的程序量并将其独立封装
9、操作系统采用层次结构有什么优点?
答:各种设计方法总的目标都要保证操作系统工作的可靠性。层次结构法的最大特点是把整体问题局部化,采用层次结构不仅结构清晰,而且便于调试,有利于功能的增加,删减和修改。层次结构的主要优点是有利于系统的设计和调试,正确性容易得到保证,也提高了可维护性和可移植性。
10、用户怎样使用操作系统提供的接口?
答:用户是通过操作系统来使用计算机系统的,操作系统为用户提供两种类型的使用接口:
操作员接口:用户可以用作业控制语言写出控制作业执行步骤的"作业说明书",也可以从键盘上输入操作控制命令或从"命令菜单"中选择命令指出作业的执行步骤。
程序员接口:操作系统提供了许多不同功能的子程序-系统功能调用,用户可以在程序中调用这些子程序。
11、操作系统为什么要提供"系统调用"?
答:在用户编写的源程序一级,用户使用程序设计语言描述算题任务的逻辑要求,有一些要求的实现只有通过操作系统的功能程序才能完成。操作系统编制了许多不同功能的子程序,用户程序在执行中可以调用这些子程序。由操作系统提供的这些子程序称为"系统功能调用"程序,简称"系统调用"。系统调用是操作系统提供给用户程序的服务接口。
12、UNIX系统的层次结构有什么特色?
答:从结构上看,UNIX可以分成内核层和外壳层两部分。
内核层是UNIX操作系统的核心,它实现存储管理、文件管理、设备管理、进程管理等功能并为外壳层提供系统调用。
外壳层为用户提供各种操作命令(UNIX把它们称为shell命令)和程序设计环境。
外壳层由shell解释程序、支持程序设计的各种语言(如C、PASCAL和BASIC)、编译环境和解释程序、实用程序和系统库等组成。
UNIX系统不允许外壳层程序直接访问和干扰内核程序,因此,UNIX系统提供两种程序运行环境,即用户态和核心态.
UNIX系统的层次结构具有良好的性能,主要包括:短小精悍、简洁有效、易移植、可扩充、开放性好等。
13、UNIX为用户提供怎样的使用接口?(201004.33)
答:UNIX的操作员通过操作控制命令来启动外壳层的用户程序执行。
UNIX的程序员接口就是其内核提供的系统调用,它是内核为外壳的用户程序提供的服务界面,也就是操作系统支持用户程序正常工作接口。
系统调用是用户程序请求操作系统继其服务的惟一形式,UNIX规定用户程序调用“trap指令”请求系统服务。
14、、什么是UNIX的shell文件(shell进程)?请按自己的需要写一个shell文件。
答:为了方便用户,UNIX系统允许用户使用shell命令语言编辑成一个文件来表示一组命令的执行顺序,用shell语言编辑成的文件称shell文件。例P29例题。
第三章复习题答案p79
1、什么是多道程序设计? (200807A.35)
答:让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种设计技术称“多道程序设计”,这种计算机系统称“多道程序设计系统” 或简称“多道系统”。
2、多道程序设计怎样提高系统效率?
答:多道程序设计利用了系统与外围设备的并行工作能力,从而提高工作效率。具体表现为:
• 提高了处理器的利用率;
• 充分利用外围设备资源:计算机系统配置多种外围设备,采用多道程序设计并行工作时,可以将使用不同设备的程序搭配在一起同时装入主存储器,使得系统中各外围设备经常处于忙碌状态,系统资源被充分利用;
• 发挥了处理器与外围设备以及外围设备之间的并行工作能力;
从总体上说,采用多道程序设计技术后,可以有效地提高系统中资源的利用率,增加单位时间内的算题量,从而提高了吞吐率。
3、多道程序设计一定能提高系统效率吗?答:不一定
答:多道程序设计对算题量和算题时间的影响。 采用多道程序设计能改变系统资源的使用情况,提高系统效率。但是应注意以下两个问题:
• 可能延长程序的执行时间;
• 并行工作道数与系统效率不成正比。从表面上看,增加并行工作道数就可提高系统效率,但实际上并行工作道数与系统效率是不成正比,因为并行的道数要根据系统配置的资源和用户对资源的要求而定: (1)主存储器的大小限制了可同时装入的程序数量;
(2)外围设备的数量也是一个制约条件;
(3)多个程序同时要求使用同一资源的情况也会经常发生。
总之,多道程序设计能提高系统资源的使用效率,增加单位时间的算题量;但是对每个计算问题来说,从算题开始到全部完成所需要的时间可能延长,另外在确定并行工作道数时应综合系统的资源配置和用户对资源的要求。
4、答:单道时处理器的利用率为:(18+18)/(60+60)=30%
两道并行是处理器的利用率为:(18+18)/(72=50%
利用率提高了(50-30)/30=66.7%
5、操作系统中为什么要引入“进程”? (200907.34)
答:程序是具有特定功能的一组指令或语句的集合,它指出了处理器执行操作的步骤。在多道程序设计的系统中,可能有多个程序同时运行,而同一个程序也可能多次并行执行,仅用程序的概念不能正确反映出程序执行时的活动规律和状态变化,为了从变化的角度动态研究程序的执行,就需要引入“进程”的概念。
进程是指一个程序在一个数据集合上的一次执行(三个“一”)。程序是静止的,进程是动态的(执行),进程包括程序和程序处理的对象,进程能够得到程序处理的结果。
6、可再入程序有什么特性? 它有什么特性?
答:可再入程序是指一个能够被多个用户同时调用的程序。(可以再次调入)。它的特性有两点:(1) 可再入程序必须是纯代码,在执行时自身不改变;(2) 一个可再入程序要求调用者提供工作区,以保证程序以同样方式为各用户服务。
7、进程有哪些基本状态?它们的变化关系是怎样的?
答:通常,根据进程执行过程中不同时刻的状态,可归纳为三种基本状态:
·等待态:等待某个事件的完成;
·就绪态:等待系统分配处理器以便运行;
·运行态:占有处理器正在运行。
进程在执行中状态会不断地改变,每个进程在任何时刻总是处于上述三种基本状态的某一种基本状态.
运行态→等待态 往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
等待态→就绪态 则是等待的条件已满足,只需分配到处理器后就能运行。
运行态→就绪态 不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。
就绪态→运行态 系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。
8、阐述进程控制块的作用?
答:进程控制块(Process Control Block,简称PCB),是操作系统为进程分配的用于标志进程,记录各进程执行情况的。进程控制块是进程存在的标志,它记录了进程从创建到消亡动态变化的状况,进程队列实际也是进程控制块的链接。操作系统利用进程控制块对进程进行控制和管理。
进程控制块的作用有:
• (1)记录进程的有关信息,以便操作系统的进程调度程序对进程进行调度。这些信息包括标志信息、说明信息、现场信息和管理信息等;
• (2)标志进程的存在,进程控制块是进程存在的唯一标志
9、进程能否访问自己的进程控制块内容?
进程控制块是系统为程序建立的用于标志进程,记录各进程执行情况的。进程本身不能访问或者修改自己的进程控制块的内容,但父进程可以访问或修改其子孙进程的进程控制块内容,以便对它的子孙进程进行必要的管理和控制。
10、处理器为什么要区分“目态”和“管态”两种操作模式?
答:硬件提供的指令系统中有一部分不允许用户程序直接使用,这些不允许用户程序使用的指令称特权指令,特权指令只允许操作系统进行调度、控制或启动外围设备的程序使用。为了避免错误地使用特权指令,处理器分为两种操作模式:目态-只能执行特权指令以外的指令、管态-可执行指令系统中的一切指令。
若程序处于"目态"操作模式,一旦出现特权指令,处理器就能识别出程序非法使用指令,形成程序性中断事件,终止程序的执行。在计算机系统中往往把用户程序置于目态下运行,已保证计算机系统的安全可靠。
11、中断装置发现中断事件后应做哪些事?
答:中断装置发现了中断事件后,由操作系统的中断处理程序对中断事件进行处理,中断处理程序的主要工作有:
- 保护被中断进程的现场信息 把中断时的通用寄存器,控制寄存器内容及旧PSW保存到被中断进程的进程控制块中。
- 分析中断原因 根据旧PSW的中断码可知发生该中断的具体原因。
- 处理发生的中断事件 一般只做一些简单处理,在多数情况下把具体的处理交给其他程序模块去做。
12、说明中断屏蔽的作用?
答:中断优先级只是规定了中断装置响应同时出现的中断的次序,当中断装置响应了某个中断后中断处理程序在进行处理时,中断装置也可能去响应另一个中断事件。因此会出现优先级低的中断事件的处理打断优先级高的中断事件的处理,使得中断事件的处理顺序与响应顺序不一致,而且会形成多重嵌套处理,使多现场保护、程序返回等工作变的复杂。
中断屏蔽技术就是为了解决上述问题而提出的,在一个中断处理没有结束之前不响应其他中断事件,或者只响应比当前级别高的中断事件。于是,当中断装置检查到有中断事件后,便去查看PSW中中断屏蔽标志,如果没有屏蔽就响应该中断;否则,暂时不响应该中断,待屏蔽标志消除后再响应 。
13、为什么不能屏蔽自愿中断事件? 答:自愿中断事件是正在运行程序所期待中的事件,它是正在运行程序为请求调用操作系统的某个功能服务而执行一条“访管指令”所引起的中断。当处理器执行到访管指令时就产生一个中断,因而进程自愿中断的断点是确定的。自愿中断不同于强迫性中断,强迫中断不是当前进程所期待的,而是由于外部请求或意外而被迫打断当前进程的。自愿中断是用户程序访问系统功能的手段,在进程中是确定的,因而不能屏蔽。
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<P1->priority && P1->Next)
{ //查找要插入位置的前后结点
P2=P1;
P1=P1->Next;
}
//查到后将P插入到就绪队列中
P->Next=P1;
P2->Next=P;
}//End Procedure
16、解释处理器的两级调度。
我们把磁盘上用来存放作业信息的专用区域称为输入井;把输入井中等待处理的作业称为后备作业。从输入井中选取后备作业装入主存的工作称为作业调度。
作业调度选中了一个作业且把它装入主存储器时,就为该作业创建了一个用户进程,初始状态为就绪态。
我们把从就绪进程中选取一个进程,让它占用处理器的工作称为进程调度。
17、什么叫作业调度?作业调度选择作业的必要条件是什么?
答:作业调度是指按一定的策略从“输入井”中选择资源能得到满足的作业装入主存储器,使作业能有机会占用处理器执行。作业调度选择作业的必要条件是系统中现有的尚未分配的资源能够满足该作业的资源要求。
18、某系统采用不能移动已在主存储器中作业的可变分区方式管理主存储器,现有供用户使用的主存空间100K,系统配有4台磁带机,有一批作业见下表:
该系统采用多道程序设计技术,对磁带机采用静态分配,忽略设备工作时间和系统进行调度所花的时间,请分别写出采用“先来先服务调度算法”和“计算时间最短者优先算法”选中作业执行的次序以及它们的平均周转时间。
先来先服务法如下表:
平均周转时间为(22+35+40+50+70)/5=44分钟
按计算时间最短者优先算法如下表:
平均周转时间:(25+35+30+55+70)/5=43 分钟
19
20、什么是进程调度?当进程调度选中一个进程后,怎样才能让它占用处理器? 我们把一个进程让出处理器由另一个进程占用处理器的过程称为进程调度。
答:当进程调度选中一个进程后,把选中进程的进程控制块中有关的现场信息,如通用寄存器、控制寄存器和程序状态字寄存器的内容送入处理器相应的寄存器中,处理器就按该进程的要求工作,达到了进程占用处理器的目的。
24、有5个进程P1,P2,P3,P4,P5它们同时依次进入就绪队列,它们的优先数和所需要的处理器时间如表
忽略进行调度等所花费的时间,请回答下列问题
a、写出分别采用“先来先服务”和“非抢占式的优先数”调度算法选中进程执行的顺序。
b、分别计算出上述两种算法使进程在就绪队列中的等待时间以及两种算法下的平均等待时间。
解:a)采用先来先服务法的执行顺序是P1→P2→P3→P4→P5。这是由其进入的顺序所确定的。
采用“非抢占式的优先数”调度算法时,各进程的执行顺序是P1→P4→P3→P5→P2.
25、UNIX进程由哪些部分组成?各起什么作用?
答:在UNIX系统中进程由三部分组成:进程控制块、正文段和数据段。
UNIX系统为了节省进程控制块所占的主存空间,把每个进程控制块分成两部分。一部分常驻内存,记录了进行进程调度时必须使用的一些主要信息,不管进程是否占有处理器运行,系统经常会对这部分的内容进行查询和处理。UNIX系统把作为基本控制块,把它的数据结构称为proc结构。另一部分非常驻内存,当进程不占有处理器时,系统不会对这部分内容进行查询和处理,因此这部分内容可以存放在磁盘的对换区中,它随着用户程序和数据换进或换出主存。
而正文段的功能则是在多道程序设计系统中,不同的进程可能要调用相同的程序。供多个进程共享的程序称为进程的正文段。正文段是可再入的程序,它由不可被修改的程序和常数组成。
进程执行程序时用到的数据构成数据段,如果进程执行的顺序是非共享的,则也构成数据段的一部分。UNIX把进程的数据段又划分成三部分,用户栈区、用户数据区和系统工作区。
26、UNIX中创建一个进程要做哪些主要工作?
答:UNIX中一个进程使用系统调用fork来创建新进程,形成父子关系经。父进程与子进程可以并发执行。
fork生成一个新进程的工作由函数newproc完成的,它的工作过程如下:
1、在进程表proc[]中为子进程找一个空闲的表项,用来存放子进程的proc结构。
• 2、为子进程分配一个惟一的标识号,UNIX系统进程标识号的范围是0-255。
• 3、把父进程proc中字段复制到子进程的proc中,但把p-pid置为分配到的标识号,把p-pid置为父进程标识号,把p_stat置为“创建”状态。
4、按父进程中p_size所示的长度为子进程申请分配空间。
27、答:运行状态、就绪状态、睡眠状态、创建状态、僵死状态。
28、UNIX采用怎样的进程调度算法?
UNIX对进程的调度采用动态优先数算法,进程的优先数随进程的执行情况而变化。
29、UNIX优先数和优先权之间有什么关系?
• 答:UNIX中每个进程都有一个优先数,就绪进程能占用处理器的优先权取决于进程的优先数,优先数越小则优先权越高。
30、UNIX什么情况下要进行进程调度?调度程序swtch的主要任务是什么?
答:当进程执行中由于各种事件让出处理器时,或一个处理器的进程用完了一个时间片后被剥夺了占用处理器的权利(被抢占)时。进程调度程序swtch从内存就绪队列中选取优先数最小的进程占用处理器运行。
• 在UNIX系统中,Swtch程序是用来完成进程调度的。Swtch进行调度的时机是:
• 进程完成了预定任务而终止
• 进程因等待某些时间而进入睡眼状态
• 进程由于与其他进程协同完成某一任务时因同步需要而主动放弃处理器
• 发现比线性进程更高优先权的进程。
• 进程用完了一个规定的时间片
• 其他异常处理时强迫对处理器进行调度。
• Swtch程序的主要任务是:
• 保存现在运行进程的现场信息
• 从在内存就绪的进程中选择一个优先数最小(优先权最高)的进程占用处理器
为被选中的进程恢复现场信息。
第四章复习题答案
>1.解释下列术语 逻辑地址;绝对地址;地址转换
答:逻辑地址:对于用户来说,他无须知道自己的作业究竟是在主存的什么位置,他们可以认为自己的程序和数据就是放在从0地址开始一组连续的地址空间中,这个地址空间是程序用来访问信息所用的一系列连续地址单元的集合,该地址空间就是逻辑地址空间。逻辑地址空间中,地址单元的编号称为逻辑地址。
绝对地址:主存也被按照连续的存储单元进行编号,绝对地址空间就是主存中一系列连续存储信息的物理单元的集合,也称绝对地址空间为存储地址空间或物理地址空间。绝对地址空间中物理单元的编号称为绝对地址。 地址转换:由于一个作业装入到与其逻辑地址空间不一致的绝对地址空间,使得逻辑地址与绝对地址不同,而引起的对有关地址部分的调整,即逻辑地址转换成绝对地址的过程称为重定位,也称为地址转换。
>2.存储保护的目的是什么?怎样实现存储保护?
答:存储保护的目的就是为了保护主存中各区域内的信息不被破坏,它包括存储的权限,存储不可跨越区域等等。为实现存储保护,必须由硬件和软件配合实现。比如在页式管理中,要由操作系统提供页表,硬件机构确定页的使用必须是安全的,如不能访问不属于自己的页等。
>3.什么叫重定位?重定位的方式有哪两种?比较它们的不同。
答:由于一个作业装入到与其逻辑地址空间不一致的绝对地址空间,使得逻辑地址与绝对地址不同,而引起的对有关地址部分的调整,即逻辑地址转换成绝对地址的过程称为重定位,也称为地址转换。
重定位有静态和动态两种情况。
所谓静态重定位是在装入一个作业的时候,把作业中的指令地址和数据地址全部一次性地转换成绝对地址。
所谓动态重定位是由软件和硬件相配合来实现的。地址重定位不再是装入的时候一次完成了,而是设置一个基址寄存器,装入作业的时候,将作业在主存区域的首地址放入到基址寄存器中。作业执行的时候,由硬件的地址转换机构动态地对地址进行转换,执行指令的时候,只要将逻辑地址加上基址寄存器的内容,就得到了绝对地址。
静态重定位和动态重定位的不同在于:①静态重定位是在作业装入的时候一次完成,动态重定位是在作业执行时再实现的。②静态重定位是软件支持的,动态重定位是硬件和软件合作实现的。③静态重定位不能实现主存的移动,而动态重定位可以。④动态重定位还可能提供虚拟存储空间。
4、比较固定分区、可变分区和页式存储管理的优缺点。
答:固定分区优点:
①能支持多道程序设计。
②无需专门的硬件地址转换机构。
缺点:
①主存利用率不算太高,分配中出现内部零头问题。
②分区大小固定不灵活,不能为程序动态申请内存。
③不具备虚拟存储能力。
可变分区优点:
①支持多道程序设计。
②没有内部零头问题,主存利用率比固定分区高。
③采用移动技术后可以满足正在执行的作业的主存扩充的要求。
缺点:
①动态重定位和保护措施需要硬件机构支持,成本高。
②由于有外部零头,所以主存利用率依然不算很高。
③移动技术开销很大。
④每次必须将作业完整调入并连续存放,主存利用率不高。
⑤不具备虚拟存储能力。
页式存储管理优点:
①支持多道程序设计
②解决了外部零头问题,内部零头大大减少(一个作业平均只有50%页面大小的内部零头)主存利用率比较高。
③用户作业无需在主存中连续存放,提高主存的利用率。
④如果是分页虚拟存储管理,可以提供大容量的多个虚拟存储器,主存利用率更高了。
缺点:
①动态重定位和保护措施需要硬件机构支持,成本高;
②采用页表,占用了一部分主存空间和处理机时间。
③分页虚拟存储管理中,增加了缺页中断的处理,增加了系统开销。
5、在可变分区管理方式下,为什么要引入移动技术?移动一道作业时操作系统要做哪些工作?
答:采用移动技术的主要优点是:
1)可以使分散的空闲区集中起来,可以容纳新的作业,提高主存空间的利用率
2)方便作业执行过程中扩充主存空间,一道作业在执行中要求增加主存量时,只要移动邻近作业就可以增加它所点的分区长度。
移动一道作业时操作系统要进行的处理:
1)判断被移动的作业是否在与外围设备交换信息,如是则不能移动,否则可以移动。
2)操作系统在移动作业信息时先移动作业信息的存储位置。
3)修改主存分配表中和保存在进程控制块中的分区起始地址和长度信息。
4)采取必要措施,尽量减少移动的作业数和信息量,提高系统效率。
6、假定某计算机系统的主存容量为32K,对主存采用动态定位可变分区分配算法。现在已经有3个作业在主存储器中(如图),当作业J2执行时,要求扩充3K作业,为了满足作业J2这一要求,应移动几道作业的信息?写出它们的次序、方向和距离。
答:因为采用可变分区的管理方式,要求作业的逻辑地址空间是连续的,并且主存空间也是连续的。因此,作业J2要求扩充的主存区域应该在原占有区域之后,于是必须通过移动来集中空闲区以供J2扩充之需。移动的方法有两种:
①先把J1向上移动1K再把J2向上移动2K.
②J3向下移动2K.
显然,第二种方法只要进行一次移动,明显比第一种方法好。
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、解释页式存储管理中为什么要设置页表和快表?
答:在页式存储管理中,主存被分成大小相等的若干块,同时程序逻辑地址也分成与块大小一致的若干页,这样就可以按页面为单位把作业的信息放入主存,并且可以不连续存放,为了在作业执行过程中准确地查表逻辑地址与绝对地址的的对应关系,就需要为每个作业建立一张页表,表示逻辑地址中的页号与主存中块号的对应关系。
页表一般存放在主存中,当要按给定的逻辑地址访问主存时,要先访问页表,计算出绝对地址,这样两次访主存延长了指令执行周期,降低了执行速度,而设置一个高速缓冲寄存器将页表中的一部分存放进去,这部分页表就是快表,访问主存时二者同时进行,由于快表存放的是经常使用的页表内容,访问速度很快,这样可以大大加快查找速度和指令执行速度。
9、页式存储管理中页面大小是根据什么决定的?页表的长度又是根据什么决定的?
答:页面的大小是由地址结构决定的。页表的长度是由作业的信息量决定的,作业有多少页,页表中就有多少个记录项。
11、叙述页式存储管理中地址转换过程。
答:首先,操作系统为每个作业创建一张页表,它建立了逻辑地址中的页号到绝对地址中的块号的映射。然后,借助于硬件地址转换机构,在作业执行过程中,每执行一条指令时,按逻辑地址中的页号查页表得到对应的块号,再根据公式“绝对地址=块号×块长+页内地址”换算出欲访问的主存单元的绝对地址。
12、什么叫虚拟存储器?怎样确定虚拟存储器的容量?
虚拟存储器是为“扩大”主存容量而采用的一种设计技巧,它利用作业在只装入部分信息时就可以执行的特性和程序执行中表现出来的局部性特性,借助于大容量的辅助存储器实现小主存空间容纳大逻辑地址空间的作业。
虚拟存储器的容量由计算机的地址结构(地址总线位数)决定。如计算机的地址总线位数为32位,则最大的虚存容量为2^32=4294967296B=4GB
13、叙述页式虚拟存储器的基本原理。
答:页式虚拟存储器是在页式存储的基础上实现虚拟存储器的,其工作原理是:
首先把作业信息作为副本存放在磁盘上,作业执行时,把作业信息的部分页面装入主存,并在页表中对相应的页面是否装入主存作出标志。
作业执行时若所访问的页面已经在主存中,则按页式存储管理方式进行地址转换,得到绝对地址,否则产生“缺页中断”由操作系统把当前所需的页面装入主存。
若在装入页面时主存中无空闲块,则由操作系统根据某种“页面调度”算法选择适当的页面调出主存换入所需的页面。
14、采用可变分区方式管理主存时,能实现虚拟存储器吗?为什么?
答:不可以,因为可变分区每次必须将作业完整调入并连续存放,这不适合虚拟存储的要求。同时,可变分区的硬件地址转换机构把绝对地址超出限定范围时作地址错处理,而不是产生“缺分区中断”。
15、什么叫“抖动”?怎样衡量页面调度算法的好坏?
答:如果选用了一个不合适的调度算法,就会出现这样的现象:刚被淘汰了的页面又立即要用,又要把它调入进来,而调入不久又被调出,调出不久再次被调入,如此反复,使得调度非常频繁,以至于大部分时间都花费在来回调度上。这种现象叫“抖动”。一个好的调度算法应减少和避免抖动现象。
16、某采用页式虚拟存储管理的系统,一个共7页的作业,作业执行时依次访问的页为1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6。若采用最近最少使用(LRU算法),作业得到四块主存空间时会产生多少次中断?如果采用先进先出(FIFO)算法又会怎样的结果?
答: LRU算法时四块主存空间时:
采用FIFO算法四块主存空间时:
18、、有一个程序要把100100数组置初值“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]…直到访问完每个数据。每隔一次访问均产生一次中断。因此本方案的总的缺页中断次数是:
50100=5000 次。
(B)方案时,因为在主存中按[1,1],[1,2],[1,3]…[1,100]的顺序访问,则第一次访问的四行均没有中断,访问到[5,1]时,产生一次中断,调入一页,依此类推,访问到[7,1],[9,1]…[99,1]时产生中断,总共的中断次数为:
100/2=50 次
(根据LRU算法,每次调入的页面是一个页面)
20、在第3章第18题中,若允许移动已在主存储器中的作业,则作业被选中的次序又是怎样的呢?并计算出它们的平均周转时间?
解:本题中,由于作业3需要3台磁带机,因此即使允许移动主存中的作业,得到足够存储空间,但是由于静态分配的策略,磁带机不足以让作业3满足。因此本题的结果和上题的结果是相同的。
21、UNIX的进程地址空间分为哪些区段?为什么?
在UNIX系统中进程由三部分组成:进程控制块、正文段和数据段。
22、UNIX中的每个进程有几张页表?为什么?
3张页表
23、UNIX 采用怎样的页面调度算法?
UNIX采用二次机会页面调度算法。他的实现要点如下:
1,把除了内核部分的所有物理页登陆在一张总页面表中。
2,设置一个时钟指针,时钟指针扫描总页面表。当时钟指针到达一个表项时,如果该物理页是空闲的或正在与外设交换信息,则继续扫描下一表项,否则找出占用该进程的进程页表。
3,按物理页号从进程页表中找出对应的表项。若该页的有效位被制成了0,则对该页所在的物理页置上空闲标志。若该页的有效位为1,则把该页置为0.
4,产生缺页中断后,可找一个空闲标志的物理页,将该物理页中的信息调出到磁盘上,然后再装入新页。
5,对有效位被置成0的页,页中的信息任然保留在物理页中,只要这个物理页没有空闲标志,那么就不会被用来装入新页。这样一旦进程又要访问该页时,只要把有效位重新置成1,使该页信息成为2次有效,进程就可立即访问该页信息。显然这样减少了大量的输入/输出传送。
24、答:它的作用是保证有足够的空闲物理页可供使用。一般它都处于睡眠状态。每当有空闲标志的物理页数量低于一个限值时就被唤醒。
页面守护进程的职责:
1,控制上述的二次机会算法中的时钟指针,当时钟指针指向的某物理页成为空闲页时,把空闲的物理页加1.
2,使时钟指针继续扫描,让空闲的物理页不断增加。
3,当空闲页达到一定数量,就使时钟指针停止扫描,页面守护进程进入睡眠状态。