当前位置:文档之家› 操作系统原理与实践教程习题答案

操作系统原理与实践教程习题答案

操作系统原理与实践教程习题答案
操作系统原理与实践教程习题答案

第1章操作系统概论

(1) 试说明什么是操作系统,它具有什么特征?其最基本特征是什么?

解:

操作系统就是一组管理与控制计算机软硬件资源并对各项任务进行合理化调度,且附加了各种便于用户操作的工具的软件层次。

现代操作系统都具有并发、共享、虚拟和异步特性,其中并发性是操作系统的最基本特征,也是最重要的特征,其它三个特性均基于并发性而存在。

(2) 设计现代操作系统的主要目标是什么?

解:

现代操作系统的设计目标是有效性、方便性、开放性、可扩展性等特性。其中有效性指的是OS应能有效地提高系统资源利用率和系统吞吐量。方便性指的是配置了OS后的计算机应该更容易使用。这两个性质是操作系统最重要的设计目标。开放性指的是OS应遵循世界标准规范,如开放系统互连OSI国际标准。可扩展性指的是OS应提供良好的系统结构,使得新设备、新功能和新模块能方便地加载到当前系统中,同时也要提供修改老模块的可能,这种对系统软硬件组成以及功能的扩充保证称为可扩展性。

(3) 操作系统的作用体现在哪些方面?

解:

现代操作系统的主要任务就是维护一个优良的运行环境,以便多道程序能够有序地、高效地获得执行,而在运行的同时,还要尽可能地提高资源利用率和系统响应速度,并保证用户操作的方便性。因此操作系统的基本功能应包括处理器管理、存储器管理、设备管理和文件管理。此外,为了给用户提供一个统一、方便、有效的使用系统能力的手段,现代操作系统还需要提供一个友好的人机接口。在互联网不断发展的今天,操作系统中通常还具备基本的网络服务功能和信息安全防护等方面的支持。

(4) 试说明实时操作系统和分时操作系统在交互性、及时性和可靠性方面的异同。

解:

交互性:分时系统能够使用户和系统进行人-机对话。实时系统也具有交互性,

但人与系统的交互仅限于访问系统中某些特定的专用服务程序。

及时性:分时系统的响应时间是以人能够接受的等待时间为标准,而实时控制系

统对响应时间要求比较严格,它是以控制过程或信息处理中所能接受的延迟为标

准。

可靠性:实时系统要求系统可靠性要比分时系统高。在实时系统中往往采用多级

容错措施来保证系统的安全及数据的安全。

(5) 试比较分布式操作系统和网络操作系统的异同。

解:

它们的区别在于:分布式操作系统的设计思想和网络操作系统是不同的,这决定了它们在结构、工作方式和功能上也不同。网络操作系统要求网络用户在使用网络资源时首先必须了解网络资源,网络用户必须知道网络中各个计算机的功能与配置、软件资源、网络文件结构等情况,在网络中如果用户要读一个共享文件时,用户必须知道这个文件放在哪一台计算机的哪一个目录下;分布式操作系统是以全局方式管理系统资源的,它可以为用户任意调度网络资源,并且调度过程是“透明”的。

(6) 什么是操作系统虚拟机结构?它有什么好处?

解:

虚拟机结构OS最初是为了满足用户对分时系统的需求而出现的。VM/370的核心程序为虚拟机监控器(virtual machine monitor),它运行于裸机之上并提供多道程序功能。该系统向上层提供多个对裸机硬件精确复制的虚拟机,这些复制品均包含核心态、用户态、I/O 处理、中断以及其它真实机器所应该具有的全部功能。

这样做的好处是凡是能在一台物理裸机上运行的操作系统均可以出现在一个特定虚拟机上,分配给各用户的不同虚拟机上可以随用户的个人爱好和操作习惯不同而采用不同的操作系统。在用户看来就是直接在自己独享的一台裸机上工作。

(7) 试说明客户机/服务器结构的操作系统为什么获得广泛应用。

解:

客户机/服务器结构的操作系统具有不同于传统集中式OS的一系列独特优点,使得其在网络时代大为流行。主要原因有以下几点:

1.该系统的数据可以进行分布式处理和存储。客户机本身均具有一定的处理能力,部

分数据处理和存储工作可由本地客户机完成,减少了服务器机的任务量。

2.对于重要数据,可以将其放在受到严密保护的服务器所在的局域网内集中管理,以

便保证数据安全。

3.C/S结构有较好的灵活性和可扩充性,客户机/服务器机类型可选范围很大。

4.易于修改用户程序。对客户机的修改和增删很方便,甚至可以由用户自行进行。

(8) 处理机管理有哪些主要功能?请简要描述。

解:

处理机的管理功能主要体现在创建、撤销进程,并按照一定的算法为其分配所需资源,同时还要管理和控制各用户的多个进程协调运行,确保各个进程可以正确的通信。在多道程序OS中,这些管理功能最终通过对进程的控制和管理来实现,而在具有线程机制的OS中,这些功能的实现还依赖于对线程的管理和控制。

(9) 存储器管理有哪些主要功能?请简要描述。

解:

操作系统所管理的存储器包括内存、外存等,因此存储器管理的主要任务就是将各种存储器件统一管理,保证多道程序的良好运行环境,同时还要兼顾内存利用率、逻辑上扩充内存的需求以及用户的感受,提供优良的控制、存取功能,为用户提供操控存储器的手段。为实现上述要求,存储器管理应具有内存分配、内存回收、内存保护、地址映射和虚拟内存等功能。

(10) 文件管理有哪些主要功能?请简要描述。

解:

其主要功能就是管理外存上的静态文件,提供存取、共享和保护文件的手段,以方便用户使用,同时禁止无权限用户对他人资源的误访问或有权限用户对资源的误操作。文件管理机制还要能有效管理外存空闲区域,根据文件的大小为其分配和回收空闲区。为了满足用户对响应时间的要求,文件管理机制还应实现目录管理,以便快速地定位文件。文件管理机制能有效保护文件安全,提高资源利用率,为用户提供快速检索和使用文件的手段,是OS不可或缺的组成部分。

(11) 设备管理有哪些主要功能?请简要描述。

解:

设备管理的主要作用是使用统一的方式控制、管理和访问种类繁多的外围设备。设备管理功能主要体现在:接收、分析和处理用户提出的I/O请求,为用户分配所需I/O设备,同时还要做到尽量提高CPU和I/O设备利用率、I/O处理效率,为用户提供操控I/O设备的便

捷界面和手段。根据设备管理模块的功能要求,可以将其功能分为设备分配、缓冲管理、设备处理、虚拟设备等。

第2章操作系统的界面

(1) 请说明系统生成和系统引导的过程。

解:

系统的生成过程:当裸机启动后,会运行一个特殊的程序来自动进行系统的生成(安装),生成系统之前需要先对硬件平台状况进行检查,或者从指定文件处读取硬件系统的配置信息,以便根据硬件选择合适的操作系统模块组,比较重要的信息通常有:CPU类型、内存大小、当前关联设备的类型和数量以及操作系统的重要功能选项和参数。按照这些信息的指示,系统生成程序就可以正确地生成所需的操作系统。

系统引导的过程:系统引导指的是将操作系统内核装入内存并启动系统的过程。主要包括初始引导、内核初始化、全系统初始化。初始引导工作由BIOS完成,主要完成上电自检,初始化基本输入输出设备,载入操作系统内核代码等工作。内核被载入内存后,引导程序将CPU控制权交给内核,内核将首先完成初始化功能,包括对硬件、电路逻辑等的初始化,以及对内核数据结构的初始化,如页表(段表)等。全系统初始化阶段要做的就是启动用户接口程序,对系统进行必要的初始化,使系统处于等待命令输入状态。

(2) 操作系统具有哪些接口?这些接口的作用是什么?

解:

操作系统为用户提供的接口有图形接口、命令接口和程序接口几种形式。

操作系统包括三种类型的用户接口:命令接口(具体又可分为联机命令接口与脱机命令接口)、程序接口及图形化用户接口。其中,命令接口和图形化用户接口支持用户直接通过终端来使用计算机系统,而程序接口则提供给用户在编制程序时使用。

(3) 请说明操作系统具有的共性服务有哪些不同类别,这些类别分别用于完成什么功能?

解:所有的操作系统都通过一些基本服务来帮助用户简单便捷地使用计算机各类资源,它们包括以下几个类别:

1.控制程序运行:系统通过服务将用户程序装入内存并运行该程序,并且要控制程序

在规定时间内结束。

2.进行I/O操作:用户是不能直接控制设备的,只能通过操作系统与外部设备进行交

互,由系统调用将结果显示在屏幕上或交给用户。

3.操作文件系统:为了保证实现“按名存取”,文件系统应该为用户提供根据文件名

来创建、访问、修改、删除文件的方法,以确保文件数据的安全可靠以及正确存取。

4.实现通信:操作系统需要提供多个程序之间进行通讯的机制,来控制程序的执行顺

序。

5.错误处理:操作系统通过错误处理机制,以便及时发现错误并采取正确的处理步骤,

避免损害系统的正确性和统一性。

(4) 系统调用的用途是什么?

解:

通常,在操作系统内核设置有一组用于实现各种系统功能的子程序(过程),并将它们提供给用户程序调用。每当用户在程序中需要操作系统提供某种服务时,便可利用一条系统调用命令,去调用所需的系统过程。这即所谓的系统调用。系统调用的主要类型包括:

1.进程控制类,主要用于进程的创建和终止、对子进程结束的等待、进程映像的替换、

进程数据段大小的改变以及关于进程标识符或指定进程属性的获得等;

2.文件操纵类,主要用于文件的创建、打开、关闭、读/写及文件读写指针的移动和

文件属性的修改,目录的创建及关于目录、特别文件或普通文件的索引结点的建立

等;

3.进程通信类,用于实现各种类型的通信机制如消息传递、共享存储区及信息量集机

制等;

4.信息维护类,用于实现关于日期和时间及其它系统相关信息的设置和获得。

(5) 命令解释程序有什么作用?

解:

命令解释程序的主要作用是:在屏幕上产生提示符,请用户输入命令,然后读入命令、识别命令,并转至相应的命令处理程序入口地址,把控制权交给该处理程序去执行,最后将有关处理结果(包括出错信息)送屏幕显示。

第3章处理器管理

(1) 为什么程序并发执行会产生间断性特征,并失去封闭性和可再现性?

解:

之所以产生间断性特征是因为多个程序在并发执行时,需要为了完成同一项任务而相互合作,并发执行的程序间的这种相互制约导致了“暂停—执行—暂停”的间断性运行规律。

失去封闭性是因为程序在并发执行时,多个程序需要共享系统中的多种资源。所以,这些资源的状态是由多个程序改变的,从而使程序的运行失去了封闭性。

失去可再现性是因为程序在并发执行时,由于失去了封闭性,从而导致其失去可再现性。

(2) 什么是进程?为什么要在操作系统中引入进程?

解:

进程是可并发执行且具有独立功能的程序在一个数据集合上的运行过程,它是操作系统进行资源分配和调度的基本单位。“进程”概念是人们为了使程序能够并发执行,并且能对并发的程序加以描述和控制而引入的。

(3) 试从并发性、独立性、动态性上比较程序和进程的不同。

解:

并发性是进程的重要特征,同时也是OS 的重要特征。引入进程的目的正是为了

使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。

独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资

源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立

的单位参加运行。

动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到

资源而暂停执行,以及由撤销而消亡,因而进程有一定的生命期;而程序只是一

组有序指令的集合,是静态实体。

(4) 什么是PCB?它具有什么作用?为什么说PCB是进程存在的唯一标识?

解:

进程控制块(Process Control Block,PCB)是操作系统为了管理进程而设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。

它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程.

因为系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志。进程与PCB是一一对应的。

(5) 进程有哪些基本状态?这些状态具有什么特征?

解:

进程的三种基本状态分别是:就绪状态、运行状态、阻塞状态。

就绪状态:进程已获取到除CPU之外的所有必要资源,只要再得到CPU,就可以

马上投入运行。

运行状态:处于就绪状态的进程被调度程序选中后将得到CPU控制权,此时该进

程就可以使用处理器进行数据运算和处理。

阻塞状态:当一个进程正在等待某个事件的发生(如等待I/O的完成)而暂停执

行,这时,即使分配有CPU时间,它也无法执行。

(6) 为什么要引入挂起状态?该状态有什么特性?

解:

引入挂起状态时为了满足四种需要:调节系统负荷的需要、用户的需要、父进程的需要、系统的需要。

挂起状态的特点:交换到磁盘上的进程,不让其参与进程调度,以达到平衡系统负荷的目的。

(7) 说明进程基本状态的转换关系及引起这些状态间转换的典型原因。

解:

处于就绪状态的进程,在调度程序为之分配了处理器之后,就可以投入运行。同时,进程的状态也由就绪状态转变为运行状态;在采用时间片机制的操作系统中,分配给当前进程的时间片用完之后,它会暂停执行,其状态也由运行状态转换到就绪状态;如果由于某事件发生(比如进程需要访问某I/O设备,而该设备正在被别的进程访问)而使进程运行受阻,不能再继续向下执行时,它的状态会由运行状态转变为阻塞状态;当进程期望的某事件发生时(比如需要访问的I/O设备已可用),进程将从阻塞状态转变为就绪状态

(8) 说明在加入了挂起状态的操作系统中,进程状态间的转换关系及引发转换的典型原因。

解:

在引入挂起状态的操作系统中,又增加了静止就绪和静止阻塞两个新的进程状态。调用挂起原语把处于活动就绪状态的进程挂起后,该进程就会由活动就绪状态转变为静止就绪状态。调用挂起原语把处于活动阻塞的进程挂起后,它的状态就转换为静止阻塞。调用激活原语激活后又可以转换到活动阻塞状态。

(9) 试说明引起进程创建的典型事件。

解:

引起进程创建的典型事件有:用户登录、作业调度、提供服务、应用请求。

(10) 试说明引起进程撤销的典型事件。

解:

引起进程撤销的典型事件有:正常结束、异常结束、外界干预。

(11) 试说明引起进程阻塞和唤醒的典型事件。

解:

引起进程阻塞和唤醒的典型事件有:请求系统服务、启动某种操作、新数据尚未到达、无新工作可做。.

(12) 试说明进程创建的过程。

解:

创建进程的操作必须调用创建原语来实现。创建原语首先为新进程申请获得惟一的数字标示符,并从PCB集合中获取一个空白PCB;为新进程的程序和数据以及用户栈分配必要的内存空间;然后对PCB进程初始化;最后将新进程插入就绪队列中,等待被调度执行。(13) 试说明进程撤销的过程。

解:

系统调用进程终止原语来终止进程。首先根据被终止进程的标示符,从PCB集合中查找到该进程的PCB,从中读出该进程的状态,终止该进程的执行,如果该进程还有子孙进程,应该将它的所有子孙进程终止,防止它们成为不可控进程;然后回收进程所拥有的资源;最后将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息。(14) 什么是线程?请比较它与进程的异同。

解:

线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只需要一些必不可少的资源(如程序计数器、一组寄存器和栈)。

进程和线程的差异:

1.在传统的OS中,进程是拥有资源和独立调度分派的基本单位,在加入线程的OS

中,线程是代替进程成为独立调度和分派的基本单位,进程则仍是拥有资源的基本

单位。

2.并发粒度不同。除了不同进程的线程之外,同一个进程里的不同线程之间也可以并

发执行,所以线程拥有更好的并发性。

3.拥有资源数量不同。进程是拥有资源的基本单位,线程除了一些在运行过程中必不

可少的资源外,基本上不拥有系统资源,它可以访问自己所在的进程的资源。

4.管理开销不同。创建、撤销进程时系统都要为之分配和回收资源,所以进程切换用

的时间开销相对要多于线程。进程间通信很麻烦,而同一进程的线程则通过共享进

程的资源很方便地通信和同步,同步开销小得多。

进程和线程有着很多相似的地方:都可以并发执行;都有就绪、执行、阻塞这些基本状态,也都可以在这些基本状态之间转换状态;从创建到撤销都有一定的生命周期;都需要同步工具。

(15) 处理器调度的层次有哪些?各层次的主要工作是什么?

解:

处理器调度的层次分为三级调度:高级调度、中级调度和低级调度。

高级调度:它需要做出两个决定,一个是要从驻留在外存后备队列中调入多少个

作业,二是要调入哪几个作业;然后为被选中的作业创建进程,并分配必要的系

统资源,如内存、外设等,然后把新创建的进程放入就绪队列中,等待被调度执

行。

中级调度:中级调度主要涉及进程在内存和外存之间的交换。当系统中的内存使

用情况紧张时,中级调度把内存中暂时不能运行的进程调到外存中等待,等内存

有足够的空闲空间时,再由中级调度决定将外存上的某些具备了运行条件的就绪

进程调入内存,把其状态修改为就绪状态并挂在就绪队列中,等待进程调度。

低级调度:按照一定的算法从就绪队列中选择一个进程,然后将处理器分配给它。

执行低级调度功能的程序称作进程调度程序,由它实现处理器在进程间的切换。

(16) 抢占式调度的原则是什么?请简要说明。

解:系统使用抢占方式进行进程调度时需要遵循一定的原则,主要有以下几个方面:

1.时间片原则。各进程按系统分配给的一个时间片运行,当该时间片用完或由于该进

程等待某事件发生而被阻塞时,系统就停止该进程的执行而重新进行调度。

2.优先级原则。每个进程均被赋于一个调度优先级,通常一些重要和紧急的进程被赋

于较高的优先级。当一个新的紧迫进程到达时,或者一个优先级高的进程从阻塞状

态变成就绪状态时,如果该进程的优先级比当前进程的优先级高,OS就停止当前

进程的执行,将处理器分配给该优先级高的进程,使之执行。

3.短进程优先原则。当新到达的作业对应的进程比正在执行的作业对应进程的运行时

间明显短时,系统剥夺当前进程的执行,而将处理器分配给新的短进程,使之优先

执行。

(17) 在批处理系统、分时系统、实时系统中,应分别采用哪种作业(进程)调度算法?

解:

批处理系统采用先来先服务调度算法;分时系统采用时间片轮转法;实时系统采用高响应比优先调度算法。

(18) 说明时间片轮转调度算法的基本思路。

解:

在采用时间片轮转调度算法的系统中,将系统中所有的就绪进程按照FCFS原则,排成一个队列。每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms。在一个时间片结束时,发生时钟中断。调度程序暂停当前进程的执行,将其送到就绪队列的末尾,并通过CPU现场切换执行当前的队首进程,当然,进程可以未使用完一个时间片,就让出CPU(如阻塞)。这样可以保证就绪队列中的所有进程都有机会获得处理器而运行的机会,可以提高进程并发性和响应时间特性,从而提高资源利用率。

(19) 试说明多级反馈队列调度算法思想。

解:多级反馈队列调度算法则不必事先知道各进程的执行时间,又可以满足各种类型进程的调度需要,它是一种目前公认较好的进程调度算法。它的算法思想如下(设采用抢占式调度):

1.需要设置多个就绪队列,并且为它们分别赋予不同的优先级。每队列分配不同的时

间片,规定优先级越低则时间片越长。

2.新进程就绪后,先插入队列1的末尾,按FCFS算法调度。若一个时间片未能执行

完,则降低插入到队列2的末尾;依此类推,降低到最后的队列,则按“时间片轮

转”算法调度直到完成。

3.进程由于等待事件而放弃CPU后, 进入等待队列, 一旦等待的事件发生, 则回到

原来的就绪队列。

4.只有当较高优先级的队列为空时,才调度较低优先级队列中的进程执行。如果进程

执行时有新进程进入较高优先级的队列,则需要重新调度,抢先执行新进程,并把

被抢先的进程插入原队列的末尾。

(20) 什么是静态和动态优先级?如何确定静态优先级?

解:

静态优先级是在系统创建时确定的,一经确定之后在整个进程运行期间不再改变。

动态优先级是在进程运行前先确定一个优先级,进程运行过程中根据进程等待时间的长短、执行时间的多少、输入输出信息量的大小等,通过计算得到新的优先级。

(21) 在一个单道批处理系统中,一组作业的到达时间和运行时间如下表所示。试计算使用先来先服务、短作业优先、高响应比优先算法时的平均周转时间和平均带权周转时间。

解:

用T表示周转时间,用W表示带权周转时间

FCFS的作业调度情况如下:

SJF的T=(+++)/ 4 = W =(+++)/ 4 =

高响应比算法的T=(+++)/ 4 = W =(+++)/ 4 =

第4章进程同步与死锁

(1) 什么是进程同步?什么是进程互斥?

解:

同步是进程间的直接制约关系,这种制约主要源于进程间的合作。进程同步的主要任务就是使并发执行的各进程之间能有效地共享资源和相互合作,从而在执行时间、次序上相互制约,按照一定的协议协调执行,使程序的执行具有可再现性。

进程互斥是进程间的间接制约关系,当多个进程需要使用相同的资源,而此类资源在任一时刻却只能供一个进程使用,获得资源的进程可以继续执行,没有获得资源的进程必须等待,进程的运行具有时间次序的特征,谁先从系统获得共享资源,谁就先运行,这种对共享资源的排它性使用所造成的进程间的间接制约关系称为进程互斥。互斥是一种特殊的同步方式。

(2) 进程执行时为什么要设置进入区和退出区?

解:

为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码成为“进入区”代码;在退出临界区后,必须执行“退出区”代码,用于恢复未被访问标志。(3) 同步机构需要遵循的基本准则是什么?请简要说明。

解:

同步机制都应遵循下面的4条准则:

1.空闲让进。当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行

有限的时间。

2.忙则等待。当有一个进程在临界区时,其它欲进入临界区的进程必须等待,以保证

进程互斥地访问临界资源。

3.有限等待。对要求访问临界资源的进程,应保证进程能在有限时间内进入临界区,

以免陷入“饥饿”状态。

4.让权等待。当进程不能进入临界区时,应立即放弃占用CPU,以使其它进程有机会

得到CPU的使用权,以免陷入“饥饿”状态。

(4) 整型信号量是否能完全遵循同步机构的四条基本准则?为什么?

解:

不能。在整型信号量机制中,未遵循“让权等待”的准则。

(5) 在生产者-消费者问题中,若缺少了V(full)或V(empty),对进程的执行有什么影响?

解:

如果缺少了V(full),那么表明从第一个生产者进程开始就没有对信号量full值改变,即使缓冲池存放的产品已满了,但full的值还是0,这样消费者进程在执行P(full)时会认为缓冲池是空的而取不到产品,那么消费者进程则会一直处于等待状态。

如果缺少了V(empty),例如在生产者进程向n个缓冲区放满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品时empty并没有被改变,直到缓冲池中的产品都取走了,empty的值也一直是0,即使目前缓冲池有n个空缓冲区,生产者进程要想再往缓冲池中投放产品会因申请不到空缓冲区而被阻塞。

(6) 在生产者-消费者问题中,若将P(full)和P(empty)交换位置,或将V(full)或V(empty)交换位置,对进程执行有什么影响?

解:

对full和empty信号量的P、V操作应分别出现在合作进程中,这样做的目的是能正确表征各进程对临界资源的使用情况,保证正确的进程通信联络。

(7) 利用信号量写出不会出现死锁的哲学家进餐问题的算法。

解:

对哲学家按顺序从0到4编号,哲学家i左边的筷子的编号为i,哲学家右边的筷子的编号为(i+1)%5。

semaphore chopstick[5]={1};

.,n-1] of item;

in out: integer := 0, 0;

begin

parbegin

producer: begin

repeat

.

.

.

produce an item in nextp;

.

.

.

Swait(empty, mutex);

buffer(in) := nextp;

in := (in+1) mod n;

Ssignal(mutex, full);

until false;

end

consumer: begin

repeat

Swait(full, mutex);

nextc := buffer(out);

out := (out+1) mod n;

Ssignal(mutex, empty);

consume the item in nextc;

until false;

end

parend

end

利用管程机制解决生产者-消费者问题,首先需要建立一个管程ProducerConsumer,其中包含两个过程insert(item)和consumer(item)。生产者-消费者同步问题可以用伪代码描述如下:

monitor ProducerConsumer

condition full,empty;

int count;

void insert(int item)

{

if (count==N) wait(full);

insert(item);

count=count+1;

if (count==1) signal(empty);

}

int remover()

{

if (count==0) wait(empty);

remove=remove_item;

count=count-1;

if (count==N-1) signal(full);

}

count=0;

end monitor

void producer()

{

while (true)

{

item=produce_item;

(item);

}

}

void consumer()

{

while (true)

{

item=;

consume(item)

}

}

(9) 进程的高级通信机制有哪些?请简要说明。

解:

进程的高级通信机制分为三大类:共享存储系统、消息传递系统和管道通信系统。

1.共享存储器系统:在共享存储器系统中,相互通信的进程通过共享某些数据结构或

共享存储区实现进程之间的通信。该系统又可进一步细分为两种方式:基于共享数

据结构的通信方式和基于共享存储区的通信方式。

2.消息传递系统:消息传递机制可以实现不同主机间多个CPU上进程的通信。这种方

式需要使用两条原语send和receive来发送和接收格式化的消息(message)。

3.管道通信系统:管道通信是一种以文件系统为基础实现的适用于在进程之间实现大

量数据传送的通信方式。

(10) 什么是死锁?产生死锁的原因和必要条件是什么?

解:

所谓死锁是指在一个进程集合中的所有进程都在等待只能由该集合中的其它一个进程才能引发的事件而无限期地僵持下去的局面。

产生死锁的原因可以归结为两点:1)竞争资源, 2)各进程之间的推进顺序不当。

产生死锁的必要条件有四个:1)互斥条件, 2)不剥夺条件, 3)请求和保持条件, 4)环路条件。

(11) 死锁的预防策略有哪些?请简要说明。

解:

死锁的预防策略有三,说明如下:

1.摒弃请求和保持条件:为摒弃请求和保持条件,系统中需要使用静态资源分配法,

该方法规定每一个进程在开始运行前都必须一次性地申请其在整个运行过程中所

需的全部资源。此时,若系统有足够的资源,就把进程需要的全部资源一次性地分

配给它;若不能全部满足进程的资源请求,则一个资源也不分给它,即使有部分资

源处于空闲状态也不分配给该进程。这样,当一个进程申请某个资源时,它不能占

有其它任何资源,在进程运行过程中也不会再提出资源请求。这种方法破坏了请求

和保持条件,从而避免死锁的发生。

2.摒弃不剥夺条件:要摒弃“不剥夺条件”,可以使用如下策略:进程在需要资源时

才提出请求,并且进程是逐个地申请所需资源,如果一个进程已经拥有了部分资源,然后又申请另一个资源而不可得时,其现有资源必须全部释放。在这种方法中,进

程只能在获得其原有资源和所申请的新资源时才能继续执行。

3.摒弃环路等待条件:为确保环路等待条件不成立,可以在系统中实行资源有序分配

策略,即系统中的所有资源按类型被赋予一个唯一的编号,每个进程只能按编号的

升序申请资源。

(12) 某系统中有A、B、C、D四类资源,且其总数量都是8个。某时刻系统中有5个进程,

解:

现在对该时刻的状态进行安全分析:

由于Available向量为(3,4,4,1),所以Work向量初始化为(3,4,4,1)

此时的Work小于任意的Need[i]向量,所以系统处于不安全状态

由于Request2(1,1,1,1)

然后进行安全性检测:

此时Available向量为(2,3,3,0),所以Work向量初始化为(2,3,3,0),此时的Work 小于任意的Need[i]向量,所以系统处于不安全状态,所以不可以为P2分配资源

(13) 三个进程P1、P2、P3都需要5个同类资源才能正常执行直到终止,且这些进程只有在需要设备时才申请,则该系统中不会发生死锁的最小资源数量是多少?请说明理由。

解:

系统中不会发生死锁的最小资源数量是13,这样可以保证当每一个进程都占有4个资源的时候,有一个进程可以获得最后一个资源后被运行,运行完毕后释放资源,于是其余进程也能顺利运行完,所以不会死锁。

(14) 在解决死锁问题的几个方法中,哪种方法最易于实现,哪种方法使资源的利用率最高?

解:

预防死锁这个方法实现简单,效果突出;避免死锁这种方法系统吞吐量和资源利用率较

高。

(15) 考虑由n个进程共享的具有m个同类资源的系统,如果对于i=1,2,3,…,n,有

Need[i]>0并且所有进程的最大需求量之和小于m+n,试证明系统不会产生死锁。

解:

本题中只有一种资源,不妨设Max[i]为第i个进程的资源总共需要量,Need[i]为第i

个进程还需要的资源数量,Allocation[i]表示第i个进程已经分配到的资源数量,

Available为系统剩余的资源数,其中i=1,2,3,…,n。

假设此系统可以发生死锁。

系统剩余的资源数量为Available(Available>=0),由假设,因为系统处于死锁状态,

所以Available个资源无法分配出去,所以每个进程的Need[i]都大于Available,

即 Need[i]>=Available+1

所以∑Need[i]>=n*(Available+1)=n*Available+n, ①

因为剩下的资源数是Available,所以已经分配出去的资源数为m – Available;

即∑Allocation[i]=m –Available ②

由①式和②式可以得到:

∑Need[i] + ∑Allocation[i]>=n*Available+n+ m –Available=(n-1)

*Available+m+n ③

又因为n>=1,所以(n-1)>=0,又因为Available>=0,所以(n-1)*Available>=0 ④

由③式和④式可以得到∑Need[i] + ∑Allocation[i]>=0+m+n=m+n ⑤

根据题意知:∑Max[i]

又因为:Max[i]=Need[i]+Allocation[i],所以∑Max[i]= ∑Need[i] + ∑

Allocation[i] ⑦

由⑥式和⑦式得:∑Need[i] + ∑Allocation[i]

由假设推出的⑤式和由题意推出的⑧式相矛盾,所以假设是错误的,即系统不会产生

死锁。

(16) 某车站售票厅,在任何时刻最多可以容纳 20 名购票者进入,当售票厅中少于

20名购票者时,厅外的购票者可立即进入,否则需要在外面等待。若把一个购票者看作一

个进程,请回答以下问题:

①用信号量管理这些并发进程时,应该怎样定义信号量,写出信号量的初值以及信号

量的各取值的含义。

②根据所定义的信号量,写出相应的程序来保证进程能够正确地并发执行。

③如果购票者最多为n个人,试写出信号量取值的可能变化范围(最大值和最小值)。

解:

①定义信号量S,初值为20,当s > 0时,它表示可以继续进入购票厅的人数,当s = 0

时表示厅内已有20人正在购票,当s < 0时| s |表示正等待进入的人数。

②semaphore S=20;

begin

parbegin

procedure:begin

repeat

wait(s);

Enter and buy ticket;

signal(s);

until false;

end

parend

end

③最大值为20,最小值为20-n

(17) 在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两个任务共享单缓冲区的同步算法。

解:

semaphore mutex = 1;

semaphore full = 0;

semaphore empty = 1;

begin

parbegin

collect:

begin

repeat

……

collect data in nextp;

wait(empty);

wait(mutex);

buffer:=nextp;

signal(mutex);

signal(full);

until false;

end

compute:

begin

repeat

……

wait(full);

wait(mutex);

nextc:=buffer;

signal(mutex);

signal(empty);

compute data in nextc;

until false;

end

parend

end

(18) 桌上有一空盘,允许存放一只水果。爸爸可以向盘中放苹果,也可以向盘中放桔子,

儿子专等着吃盘中的桔子,女儿专等着吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者用,请用信号量实现爸爸、儿子和女儿3个并发进程的同步。

解:

本题中应设置三个信号量S、S o、S a,信号量S表示盘中是否为空,其初值为1;S o表示盘中是否有桔子,其初值为0;S a表示盘中是否有苹果,其初值为0。同步描述如下:

爸爸: P(S); 儿子:P(S o); 女儿:P(S a);

将水果放入盘中从盘子中取出桔子从盘子中取出苹果

if (放入的是桔子) v(S o); V(S); V(S);

else v(S a);吃桔子吃苹果;

(19) 设某系统中有3个进程Get、Process和Put,共用两个缓冲区buffer1和buffer2。假设buffer1中最多可以放11个信息,现在已经放入了两个信息;buffer2最多可以放5个信息。Get进程负责不断地将输入信息送入buffer1中,Process进程负责从buffer1中取出信息进行处理,并将处理结果送到buffer2中,Put进程负责从buffer2中读取结果并输出。试用信号量机制实现它们的同步与互斥。

解:

2. 地址转换,实现逻辑地址到物理地址的映射。

3. 主存空间的共享。

4. 主存空间的保护。

5. 主存储空间的扩充。

6. 对换,对换的主要任务是实现在内存和外存之间的全部或部分进程的对换,即将内存中处于阻塞状态的进程调换到外存上,而将外存上处于就绪状态的进程换入内存。对换的目的主要是为了提高内存利用率,提高系统的吞吐量。

(2) 为什么要配置层次式存储器?

解:

为了解决CPU和存储器之间速度上的不匹配,在现代计算机系统中,存储系统通常采用层次结构,存储层次可粗略分为三级:最高层为CPU寄存器,中间为主存,最底层是辅存。根据具体功能还可以细分为寄存器、高速缓存、主存储器、磁盘缓存、辅存储设备(固定磁

盘、可移动存储介质)5层。一个文件的数据可能出现在存储系统的不同层次中,例如,一个文件数据通常被存储在辅存中(如硬盘),当其需要运行或被访问时,就必须调入主存,也可以暂时存放在主存的磁盘高速缓存中。大容量的辅存常常使用磁盘,磁盘数据经常备份在可移动磁盘或者光盘上,以防止硬盘故障时丢失数据。

(3) 什么是逻辑地址?什么是物理地址?为什么要进行二者的转换工作?

解:

逻辑地址是应用程序中使用的访存地址,有时也称为相对地址,由逻辑地址构成的地址空间称为逻辑空间。每个应用程序的逻辑地址空间都是从零号地址码开始的。

物理地址是内存储器的实际存储单元地址,有时也称为绝对地址,由物理地址构成的地址空间称为物理空间。物理地址空间也是从零号地址码开始的。

在多道程序环境下,程序逻辑地址空间和内存物理地址空间是不一致的。用户程序的逻辑地址可以是一维线性或多维线性,而内存中的每一个存储单元都有相应的内存地址相对应,属于一维线性地址。在将用户程序部分或全部地装入内存空间时,要实现逻辑地址到物理地址的映射。

(4) 地址重定位,静态地址重定位和动态地址重定位有什么区别?

解:

地址重定位指从逻辑地址到物理地址的映射过程,也称为地址映射。

静态地址重定位是指在用户程序执行之前完成地址映射工作,即把程序的逻辑地址都转换为实际的内存物理地址。静态地址重定位的地址变换只是在装入时一次完成,而在程序运行期间不再变化。

动态地址重定位是指在程序执行过程中,CPU在访问内存之前,将要访问的程序或数据地址转换为内存地址。

(5) 什么是内部碎片和外部碎片?。

解:

在一个分区内部出现的碎片(即被浪费的空间)称作内部碎片,如固定分区法就会产生内部碎片;

在所有分区之外新增的碎片称作外部碎片,如在动态分区法实施过程中出现的越来越多的小空闲块就是外部碎片,由于它们太小,无法装入一个进程,因而被浪费掉。

(6) 什么是分页和分段存储技术,两者有何区别?

解:

在分页系统中,系统会把用户程序的地址空间划分成若干个大小相等的区域,每个区域称作一个页面或页。每个页都有一个编号,叫做页号。页号一般从0开始,如0,1,2,…,等。类似地,也把内存空间划分成若干和页大小相同的物理块,这些物理块叫“帧”(frame)或内存块。同样,每个物理块也有一个编号,块号也是从0开始依次顺序排列。系统为进程分配内存时,以块为单位将进程中的若干页分别装入多个可以不相邻接的块中。

在分段存储管理方式中,程序按内容或过程(函数)关系划分为若干个段,每个段定义一组逻辑信息,都有自己的名字。一个用户作业所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位进行内存分配,然后通过地址映射机构把段式虚拟地址转换为实际的内存物理地址。

分段和分页有许多相似之处,比如,二者在内存中都采用离散分配方式,而不是整体连续分配方式,而且都要通过地址映射机构来实现地址转换。但二者在概念上却完全不同,具体表现在下述三个方面:

1.页是信息的物理单位,而段是信息的逻辑单位。分页是为了实现离散分配,减少内

存碎片,提高内存利用率。或者说,分页是由于系统管理的需要,而不是用户的需

要。段则是信息的逻辑单位,它含有一组意义相对完整的信息。段的长度不是固定

的,取决于用户所编写的程序。分段的目的是为了能更好地满足用户的需要,更方

便用户编程,更好地实现信息共享和保护。

2.页的大小由系统确定,由系统把逻辑地址划分为页号和页内地址两部分,整个系统

只能有一种大小的页面;而段的长度却不固定,它取决于用户的程序。通常由编译

程序在对源码进行编译时,根据程序的性质来划分。

3.分页的进程地址空间是一维的,即单一的线性空间;而分段的进程地址空间是二维

的,由段号和段内地址两部分组成。

(7) 什么是虚拟存储器?列举采用虚拟存储器的必要性和可能性。

解:

虚拟存储器是指在具有层次结构存储器的计算机系统中,具有请求调入和交换功能,为用户提供一个比实际物理内存容量大得多的可寻址的一种存储器系统,它能从逻辑上对内存容量进行扩充。

采用虚拟存储器的必要性:传统存储管理方式要求将作业全部装入内存之后才能运行,这一特征导致大作业和多个作业要求运行时系统无法满足;另外,传统存储管理方式具有驻留性,即作业装入内存直到运行结束,便一直驻留在内存中。尽管进程在运行中会因I/O 等原因而长期处于阻塞状态,或有的程序模块在运行过一次后就不再需要,但它们都仍将继续占用宝贵的内存资源。

采用虚拟存储器的可能性:根据程序的局部性定理,应用程序在执行之前,没有必要全部装入内存,而只需要将那些当前要运行的部分页或段先装入内存即可运行,其余部分可以仍然留在外存。程序在执行时,如果它所访问的页(段)已经调入内存,便可继续执行下去。但如果程序所要访问的页(段)不在内存中(称为缺页或缺段),此时程序可以利用操作系统提供的请求调页(段)功能,将它们调入内存,以便程序能够继续执行下去。如果内存已满,无法装入新调入的页(段),则必须利用一定的页(段)置换功能,将内存中暂时不用的页(段)换到外存中,以腾出足够的空间来存放新调入的页(段),从而保证程序的顺利执行。这样,一个大的程序就可以在较小的内存空间中执行。从用户的角度来看,该系统所具有的内存容量比实际内存容量大了很多。但实际上,用户所看到的大容量存储器是不存在的,只是虚拟的,故把这样的存储器称为虚拟存储器。

(8) 一个计算机系统的虚拟存储器,其最大容量和实际容量分别由什么决定?

解:

虚拟存储器的最大容量由主存和辅存的容量之和确定。

虚拟存储器的实际容量由指令中表示地址的字长决定,也就是计算机的地址结构决定的。

(9) 描述下列算法:

①首次适应;②最佳适应;③最差适应

解:

最先适应算法又称首次适应算法,该算法要求空闲分区表或空闲分区链按起始地址递增的次序排列。在进行内存分配时,从空闲分区表(链)首开始顺序查找,一旦找到大于或等于所要求内存长度的分区,则结束查找。然后,该算法从该分区中划出所要求的内存长度分配给请求者,余下的空闲分区仍留在空闲分区表(链)中,同时修改其相应的表(链)项。

最佳适应算法要求空闲分区按容量大小递增的次序排列。当用户作业申请一个空闲区时,存储管理程序从空闲分区表(链)首开始顺序查找,当找到第一个满足要求的空闲区时,停止查找。按这种方式为作业分配内存,就能把既满足作业要求又与作业大小最接近的空闲分区分配给作业。如果空闲分区大于作业的大小,则与最先适应算法相同,将减去作业请求

长度后的剩余空闲区仍然留在空闲分区表(链)中。

最坏适应算法要求空闲分区按其大小递减的顺序组成空闲分区表(链)。当用户作业申请一个空闲区时,先检查空闲分区表(链)的第一个空闲分区的大小是否大于或等于所要求的内存长度,若空闲分区表(链)的第一项长度小于所要求的大小,则分配失败,否则从该空闲分区中划出与作业大小相等的一块内存空间分配给作业,余下的空闲分区仍然留在空闲分区表(链)中。

(10) 如果内存划分为100KB、500KB、200 KB、300 KB和600 KB(按顺序),那么,首次适应、最佳适应和最差适应算法各自将如何放置大小分别为215 KB、414 KB、110 KB和430 KB(按顺序)的进程,哪一种算法的内存利用率高?

解:

见下图,在首次适应和最差适应算法中,最后430KB没有空间分配。由图可知,最佳适应算法的内存利用率高。

(11) 某操作系统采用分区存储管理技术。操作系统占用了低地址端的100KB的空间,用户区从100KB处开始共占用512KB,初始时,用户区全部空闲,分配时截取空闲区的低地址部分作为一个分配区。在执行了如下的申请、释放操作序列后:

作业1申请300KB、作业2申请100KB、作业1释放300KB、作业3申请150KB、作业4申请50KB、作业5申请90KB。

①分别画出采用首次适应算法、最佳适应算法进行内存分配后的内存分配图和空闲区队列;

②若随后又申请80KB,针对上述两种情况会产生什么后果?

解:

采用首次适应算法、最佳适应算法进行内存分配后的内存分配图和空闲区队列图如下所示。

若随后又申请80KB,只有采用首次适应算法的内存分配还有空间可以分配,分配图如下:

(12) 假设一个有8个1024字节页面的逻辑地址空间,映射到一个有32帧的物理内存:

①逻辑地址有多少位?②物理地址有多少位?

解:

逻辑地址有13位;物理地址有15位。

(13) 某虚拟内存的用户编程空间共32页,每页的大小为1 KB,内存为16 KB,假设某时刻系统为用户的第0、1、2、3页分配的物理块为5、10、4、7,而该用户作业的长度为6页,试将16进制的虚拟地址0A5C、093C、1A5C转换成物理地址。

解:

1.虚拟地址为0A5C,对应的二进制数为:0000 1010 0101 1100。其中,页内偏移量

占10位地址码,为25C。页号占6位地址码,为2号页。因第2页存储在4号块

中,其基地址为:0001 0000 0000 0000,即十六进制的1000H。这样,其物理地

址为十六进制的125C。

2.虚拟地址为093C,对应的二进制数为:0000 1001 0011 1100。其中,页内偏移量

占10位地址码,为13C。页号占6位地址码,为2号页。因第2页存储在4号块

中,其基地址为:0001 0000 0000 0000,即十六进制的1000H。这样,其物理地

址为十六进制的113C。

3.虚拟地址为1A5C,对应的二进制数为:0001 1010 0101 1100。页内偏移量占10

位地址码,为25C。页号占6位地址码,为6号页。因为该用户作业的长度为6页,最大的页号为5号。因为虚拟地址为1A5C对应的6号页超出了地址范围,所以属

于越界。

(14) 覆盖技术和虚拟存储技术有何区别,交换技术和虚拟存储器中使用的调入和调出技术有何区别和联系?

解:

覆盖技术与虚拟存储技术最本质的不同在于覆盖程序段的最大长度要受内存容量大小的限制,而虚拟存储器中程序的最大长度不受内存容量的限制,只受计算机地址结构的限制。另外,覆盖技术中的覆盖段由程序员设计,且要求覆盖段中的各个覆盖具有相对的独立性,不存在直接联系或相互交叉访问;而虚拟存储技术对用户的程序段之间没有这种要求。

交换技术就是把暂时不用的某个程序及数据从内存移到外存中去,以便腾出必要的内存空间,或把指定的程序或数据从外存读到内存中以允许其运行的一种内存扩充技术。交换技术与虚存中使用的调入/调出技术的主要相同点是:都要在内存与外存之间交换信息。主要区别是:交换技术调入/调出整个进程,因此一个进程的大小要受内存容量大小的限制;而虚存中使用的调入/调出技术在内存和外存之间来回传递的是页面或分段,而不是整个进程,从而使得进程的地址映射具有了更大的灵活性,且允许进程的大小比可用的内存空间大。(15) 在虚拟页式存储系统中引入了缺页中断,说明引入缺页中断的原因,并给出其实现的方法。

解:

虚拟页式存储系统中,系统允许作业的一部分页面在内存。当系统产生了缺页中断后,操作系统才能将不在内存的页面从外存调入内存。当缺页被调入,使中断恢复,进程就可以继续执行它的程序了。

缺页中断的实现由硬件和软件两部分组成。其实现方法如下:

当CPU执行一条指令时,形成操作数的有效地址。其中的页号部分用来检查页表,看该页是否在内存。如果在内存,则进行地址变换,按变换后的地址取出操作数;如果不在内存,则引起缺页中断,进入缺页中断处理程序。在缺页中断处理程序中,主要的处理为:

1 利用存储器分块表检查实存是否有空闲页面。

2 如果有空闲存储块,则根据页表提供的磁盘地址调入所需的页面,修改页表和分块表后返回。

3 如果没有空闲存储块,则选择一页淘汰掉。若该页被修改过还需写回外存,调入所需的页面。然后修改页表和分块表,返回。

(16) 试述缺页中断与一般中断的主要区别。

解:

程序在执行时,当访问的页面不在内存时,便产生缺页中断,请求操作系统将所缺页调入内存。中断处理程序将把控制转向缺页中断子程序。然后系统执行此子程序,把所缺页面装入主存中。接着处理器将重新执行缺页时打断的指令。缺页中断是一种特殊的中断,也就是说,缺页中断同样需要经历诸如保护CPU环境、分析中断原因、转入缺页中断处理程序进行处理、恢复CPU环境等几个步骤,但与一般的中断相比,它又具有以下不同点:

1.一般中断是一条指令完成后中断,而缺页中断是在一条指令执行时中断。通常,CPU

都是在一条指令执行完之后,才检查是否有中断请求到达。如果有,便去响应中断,

否则,继续执行下一条指令。然而,缺页中断则是在指令执行期间,发现所访问的

指令或数据不在内存时所产生和处理的。

2.一条指令执行时可能产生多个缺页中断。如指令可能访问多个内存地址,这些地址

在不同的页中。

(17) 假设有下面的段表:

下面逻辑地址的物理地址分别是多少?

① [0,430];② [1,12];③ [2,500]; ④ [3,400]; ⑤ [4,122]

段基址长度

0219600

1230014

290100

31327580

4195296

解:

①: 649;②:2312;③:越界;④:1727;⑤:越界

(18) 考虑下面存储访问序列,该程序的大小为460字(以下数字均为十进制数字):

10、11、104、170、73、309、185、245、246、434、458、364

该页面的大小为100字,该程序的基本可用内存为200字,计算采用FIFO、LRU和OPT置换算法的缺页次数。

解:

因为页面的大小为100字,该程序的基本可用内存为200字,即可用内存为2块。程序的存储访问序列可转换为如下页面访问序列:

1、1、

2、2、1、4、2、

3、3、5、5、4

采用FIFO、LRU和OPT置换算法的访问序列如下:

由图可知FIFO算法的缺页次数为6次,LRU的缺页次数为7次,OPT的缺页次数为5次。

(19) 有一个矩阵int a[100][100] 以行为先进行存储。有一虚拟存储系统,物理内存共有3块,其中1块用于存放程序,其余2块用于存放数据。假设程序已经在内存中占用1块,其余2块空闲。

程序A: 程序B:

for (i=0;i<100;i++) for (j=0;i<100;j++)

for (j=0;j<100;j++) for (i=0;i<100;i++)

a[i][j]=0; a[i][j]=0;

若每页可存放200个整数,则程序A和程序B在执行过程中各会发生多少次缺页?若每页只能存放100个整数呢?以上说明了什么问题?

解:

由题目所给条件可知,数组a有100100=10000个整数,系统中共有2个内存块用于存放数组信息,数组中的元素按行编址。

若每页可以存放200个整数,则一个内存页中可以存放2行数组元素,对于程序A,数组元素的访问顺序为:

a[0][0], a[0][1], …, a[0][99]

a[1][0], a[1][1], …, a[1][99]

a[99][0], a[99][1], …, a[99][99]

操作系统原理试题

操作系统原理试题1 一、填空题(19’) 1.操作系统的基本类型有▁▁▁▁▁、▁▁▁▁▁和▁▁▁▁▁。 2.在操作系统中,处理机的状态分为▁▁▁▁▁和▁▁▁▁▁两种。 3.进程的三种基本状态是▁▁▁▁▁、▁▁▁▁▁和▁▁▁▁▁。 4.N个进程互斥访问一变量,设置一信号灯S, 则S取值范围是▁▁▁▁▁。 5.在分区式存贮管理中,首次适应法中自由主存队列应按▁▁▁▁排序,最佳适 应法中自由主存队列应按▁▁▁▁▁排序,最坏适应法中自由主存队列应按▁▁▁▁▁排序。 6.常用的缓冲技术有▁▁▁▁▁、▁▁▁▁▁和▁▁▁▁▁。 7.按I/O控制器智能化程度的高低,可把I/O设备的控制方式分为四类▁▁▁▁、 ▁▁▁▁、▁▁▁▁和▁▁▁▁▁。 二、名词解释(9’) 1、响应时间 2、虚拟存储器 3、进程同步 三、简答题(36’) 1.什么叫重定位?动态重定位和静态重定位有什么区别?(7’) 2.什么叫进程?进程和程序有什么区别?(7’) 3.简述分段和分页的区别。(6’) 4.请详细说明可通过哪些途径预防死锁?(8’) 5.请详细说明请求分页系统的地址变换过程。(8’) 四、一单道批处理系统中,有如下四个作业,并采用短作业优先调度算法,试计算作业的平均周转时间和平均带权周转时间。(8’)(单位:小时) 五、系统盘块大小为512B(字节),盘块编号长4B,文件说明中可存放10个盘块编号。 关于文件大小有如下统计结果: 文件大小≤512B 占40% 512B<文件大小≤3KB 占30% 3KB<文件大小≤64KB 占20% 64KB<文件大小≤192KB 占8% 192KB<文件大小≤8MB 占2% 试为该系统设计文件的物理结构,使访问文件时具有尽可能小的平均访问磁盘次数,

计算机操作系统原理课程设计

上海电力学院 课程设计报告 课程名称:操作系统原理 题目名称:采用可变分区存储管理,模拟主存空间的分配和回收 姓名: xxx 学号: xxx 班级: 2013054 同组姓名: xxx 课程设计时间: 2015.7.6~2015.7.10 评语: 成绩:

课程设计题目 一、设计内容及要求 可变分区存储管理模拟 设计内容:编写程序模拟实现可变分区存储管理。 具体要求: 编写程序模拟实现可变分区存储管理,实现存储管理的基本功能,包括内存的分配、内存的回收、地址变换等。 输入:1、输入新进程名称及使用内存的大小(可创建多个进程); 2、撤销某个指定的进程; 3、某个进程的逻辑地址; 输出:显示每次创建进程或者撤销进程后内存使用的状况,包括每一个进程占据的内存的位置和大小; 计算并输出给定逻辑地址对应的物理地址。 必须分别使用以下分配算法完成模拟: 1、首次适应算法; 2、最佳适应算法; 3、最差适应算法; 小组分工: 程序设计讨论: 程序主体设计: 程序调试及修改: 实验报告设计: 总结: (要求注明小组分工情况) 二、详细设计 1)原理概述 对于可变分区存储管理的内存分配与回收,主要为设计以下几个部分: 1、设计动态输入空闲分区表的程序 2、设计内存分配的程序 3、设计内存回收的程序 首次适应算法: FF算法要求空闲分区表或空闲分区链以地址递增的次序链接。在分配内时,从链首开始查找,直至找到一个大小能满足要求分区为止;然后再按照作业大小,从该分区中划一块内存空间分配给请求者,余下的空闲分区仍留在空闲链中。如从链首直至链尾都不能找到一个能满足要求的分区,则此次分配失败,返回 最佳适应算法: BF算法是指每次为作业分配内存,总是把满足要求、又是最小的空闲分区分配给作业,避免“大材小用”。为了加速寻找,该算法要求所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链。这样,第一次找到能满足要求的空闲区,

计算机操作系统原理复习题

课程成绩构成 笔试:70% 平时:30% 试卷构成: 名词解释五小题,共15分; 简答五小题,共35分; 综合题四小题,共50分。 第一章操作系统引论 1、设计现代操作系统的主要目标? 答:(1)有效性(2)方便性(3)可扩充性(4)开放性 2、操作系统的作用? 答:(1)作为用户与计算机硬件系统之间的接口 (2)作为计算机系统资源的管理者 (3)实现了对计算机资源的抽象 3、操作系统发展的主要动力? 答:(1)不断提高计算机资源的利用率 (2)方便用户 (3)器件的不断更新换代 (4)计算机体系结构的不断发展 4、为什么说操作系统实现了对计算机资源的抽象? 答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。 5、单道批理?多道程序设计?多道批处理? 单道批处理系统定义:把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下使这批作业能一个接一个地连续处理,直至磁带(盘)上的所有作业全部完成,系统对作业的处理都是成批地进行的,且在内存中始终只保持一道作业。 多道批处理系统定义:由多道程序设计技术组成的系统。

6、分时系统产生主要动力?关键技术?特征? 答:(1)推动分时系统形成和发展的主要动力是更好地满足用户的需要。主要表现在:CPU 的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。 (2)关键技术:为实现分时系统,其中,最关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户。此后,用户可继续键入下一条命令,此即人—机交互。应强调指出,即使有多个用户同时通过自己的键盘键入命令, (3)特征:多路性;独立性;及时性;交互性。 7、实时任务划分?实时系统与分时系统比较? 实时任务划分:(1)按任务执行时是否呈现周期性来划分 (2)根据对截止时间的要求来划分。 比较:(1)多路性。实时信息处理系统的多路性主要表现在系统周期性的对多路现场信息进行采集,以及对多个对象或多个执行机构进行控制。而分时系统的多路性则与用户情况有关,时多时少。 (2)独立性。实时信息处理系统的每个终端用户在向实时系统提出服务请求时是彼此独立操作,互不干扰。而分时控制系统中,对象的采集和对象的控制也是互不干扰。 (3)及时性。实时信息处理系统的及时性以人所能接受的等待时间来确定。分时系统的及时性是以控制对象所要求的开始截止时间或完成时间来确定的,一般为毫秒级。 (4)交互性。实时信息处理系统仅限于访问系统中某些特定的专用服务程序。分时系统能够向终端用户提供数据处理和资源共享等服务。 (5)可靠性。分时系统也要求可靠性,但实时系统要求更高度的可靠性。 8、操作系统定义?特征? 答:操作系统的定义:操作系统(operating system,简称OS)是计算机系统中的一个系统软件,它是这样一些程序模块的集合——它们管理和控制计算机系统中的软件和硬件资源,合理地组织计算机工作流程,以便有效地利用这些资源为用户提供一个功能强大、使用方便和可扩展的工作环境,从而在计算机与其用户之间起到接口的作用。 特征:(1)并发性(2)共享性(3)虚拟技术(4)异步性 9、是什么原因使操作系统具有异步性特征? 答:操作系统的异步性体现在三个方面:一是进程的异步性,进程以人们不可预知的速度向前推进,二是程序的不可再现性,即程序执行的结果有时是不确定的,三是程序执行时间的不可预知性,即每个程序

操作系统课程设计报告

上海电力学院 计算机操作系统原理 课程设计报告 题目名称:编写程序模拟虚拟存储器管理 姓名:杜志豪.学号: 班级: 2012053班 . 同组姓名:孙嘉轶 课程设计时间:—— 评语: 成绩: 目录 一、设计内容及要求 (4) 1. 1 设计题目 (4) 1.2 使用算法分析: (4)

1. FIFO算法(先进先出淘汰算法) (4) 1. LRU算法(最久未使用淘汰算法) (5) 1. OPT算法(最佳淘汰算法) (5) 分工情况 (5) 二、详细设计 (6) 原理概述 (6) 主要数据结构(主要代码) (6) 算法流程图 (9) 主流程图 (9) Optimal算法流程图 (10) FIFO算法流程图 (10) LRU算法流程图 (11) .1源程序文件名 (11) . 2执行文件名 (11) 三、实验结果与分析 (11) Optimal页面置换算法结果与分析 (11) FIFO页面置换算法结果与分析 (16) LRU页面置换算法结果与分析 (20) 四、设计创新点 (24) 五、设计与总结 (27)

六、代码附录 (27) 课程设计题目 一、设计内容及要求 编写程序模拟虚拟存储器管理。假设以M页的进程分配了N

块内存(N

操作系统原理答案(张丽芬)

第2章习题答案 2-9. (1)x<=3 运行顺序为Px,P3,P5,P6,P9 T=(x+(x+3)+(x+3+5)+(x+3+5+6)+(x+3+5+6+9))/5=x+ (2)3

作业4还未到,只能选作业3运行。 作业3运行到结束,再计算剩余的作业2和4: 作业2的响应比=(()+)/= 作业4的响应比=( /=2 选作业2运行。 作业2到完成。最后运行作业4。运行到,全部结束。 各个作业的周转时间计算如下: t1=2 t2== t3= t4== 各个作业的平均周转时间计算如下: T==(2++1+/4= 各个作业的平均带权周转时间计算如下: W=(2/2++1/+/4= 2-13.已知作业A,B,C,D,E需要的运行时间分别为10,6,2,4,8分钟,优先级分别为3,5,2,1,4。 (1)轮转法(假定时间片=2分钟) 作业完成的顺序为C,D,B,E,A 开始作业轮转一周需10分钟, 作业C的周转时间:Tc=10分钟(6分) C完成后,剩下四个作业,轮转一周需8分钟, 作业D的周转时间:Td=10+8×(4-2)/2=18分钟(16分) D完成后,剩下三个作业,轮转一周需6分钟, 作业B的周转时间:Tb=18+6×(6-2-2)/2=24分钟(22分) B完成后,剩下两个作业,轮转一周需4分钟, 作业E的周转时间:Te=24+4=28分钟(28分) E完成后,只剩下作业A, 作业A的周转时间:Ta=28+2=30分钟(30分) 平均周转时间:T=(10+18+24+28+30)/5=22分(分) (2)优先级调度法 作业完成顺序为:B,E,A,C,D Tb=6分,Te=6+8=14分,Ta=14+10=24分,Tc=24+2=26分, Td=26+4=30分。 平均周转时间:T=(6+14+24+26+30)/5=20分 第3章习题答案 3-7. 系统中有n+1个进程。其中A1、A2、…、An分别通过缓冲区向进程B发送消息。相互之间的制约关系为:发送进程A1、A2、…、An要互

中山大学操作系统原理卷试题答案

2008操作系统A卷参考答案 班级姓名学号成绩 一、术语解释(5个,共20分) 1、内核:实现操作系统的最基本功能、常驻内容并要求CPU在核心态方式 下运行的代码和相关数据结构。 2、信号量:操作系统内容定义和管理的一种特殊数据结构,提供了初始化、 增值和减值等操作供进程调用,以实现进程互斥或同步。 3、临界区:两个或多个进程中,对应的程序中各存在一段访问共享数据的 代码块,设为CS1、CS2、。。。,这些代码块中,若有某个进程执行其 中一个(设CSi),则其它进程执行其它相应代码块只能在CSi完成后才 能开妈执行。具有这种要求的代码块称为临界区 4、线程:进程中的一个独立的调度执行单位。多线程技术中,同一进程中 可以有多个独立的调度执行单位,并且可以并发执行。 5、逻辑地址:程序设计员在程序中使用的地址。 二、简答题(5题,共30分) 6、系统调用的过程中,控制的转移步骤如何 答:CPU控制权在用户态的进程中,进程执行陷入或软中断指令硬件执行中断响应动作进入内核,CPU控制权在核心态的操作系统内核代码中,执行系统调用服务程序,并可能进行进程调度,选择下一个可运行的进程恢复可运行进程的上下文 CPU控制权又交给在用户态的进程, 7、与层次结构比较,微内核结构的主要优缺点是什么 答:优点有接口一致性、系统安全性高、功能扩展灵活性、可移植性高、适用于分布式环境。缺点是效率较低。 8、与多进程技术相比,多线程技术有哪些优点 答:同一进程的多个线程共享进程的资源,因此与进程相比,线程占用的资源极少;创建/撤消线程更快;同一进程的多个线程同属一个地址空间,可以使用共享变量直接通信;用户级线程还不需内核管理,减少了内核的开销。 9、用Test_And_Set指令如何实现互斥 10、文件打开过程主要工作及步骤 答:1搜索文件目录,以获取该文件控制信息;2 检查操作权限;3 分配活动文件表的表项和打开文件表的表项,填入相应的文件控制信息;分配必要的缓冲区;4 返回打开文件表的表项指针(文件句柄),供进程以后读写文件。 三、应用分析题(共4题,共40分) 11、(10分)k读者-写者问题:有一个文件F被多个进程读取或修改,其 中一批进程只读取F,另一些进程只修改F。为了保证系统响应时间,规 定最多只能有k个进程同时操作F。试用信号量及P、V操作实现读者与 写者的同步。 答: … Semaphore wr=1; Semaphore rd=k;;

操作系统原理及应用试题附答案

操作系统原理及应用试题附答案 第一部分选择题一、单项选择题(本大题共4小题,每小题2分,共8分) 1、从静态角度来看,进程由__________、数据集合、进程控制块及相关表格三部分组成。()A、JCB B、PCB C、程序段 D、I/O缓冲区 2、请求页式管理方式中,首先淘汰在内存中驻留时间最长的帧,这种替换策略是_____.()A、先进先出法(FIFO) B、最近最少使用法(LRU) C、优先级调度 D、轮转法 3、文件安全管理中,___________安全管理规定用户对目录或文件的访问权限。()A、系统级 B、用户级 C、目录级 D、文件级 4、排队等待时间最长的作业被优先调度,这种算法是___________。A、优先级调度 B、响应比高优先 C、短作业优先D、先来先服务第二部分非选择题 二、填空题(本大题共16小题,每小题1分,共16分) 5、常规操作系统的主要功能有:_处理机管理_、存贮管理、设备管理、文件管理以及用户界面管理。 6、操作系统把硬件全部隐藏起来,提供友好的、易于操作的用户界面,好象是一个扩展了的机器,即一台操作系统虚拟机。 7、进程管理的功能之一是对系统中多个进程的状态转换进行控制。 8、逻辑_文件是一种呈现在用户面前的文件结构。 9、操作系统中实现进程互斥和同步的机制称为同步机构_。 10、内存中用于存放用户的程序和数据的部分称为用户区(域)。 11、存贮器段页式管理中,地址结构由段号、段内页号和页内相对地址三部分组成。 12、在操作系统中,通常用户不使用设备的物理名称(或物理地址),而代之以另外一种名称来操作,这就是逻辑设备名。 13、在操作系统中,时钟常有两种用途:报告日历和时间,对资源使用记时。 14、库文件允许用户对其进行读取、执行,但不允许修改.

操作系统原理期末试卷10套含答案7

操作系统原理期末试卷10套含答案7 一、单项选择题(每题2分,共20分) 1.以下著名的操作系统中,属于多用户、分时系统的是( B ). A.DOS系统B.UNIX系统 C.Windows NT系统D.OS/2系统 2.在操作系统中,进程的最基本的特征是( A ). A.动态性和并发性B.顺序性和可再现性 C.与程序的对应性D.执行过程的封闭性 3.操作系统中利用信号量和P、V操作,( C ). A.只能实现进程的互斥B.只能实现进程的同步 C.可实现进程的互斥和同步D.可完成进程调度 4.作业调度的关键在于( C ). A.选择恰当的进程管理程序B.用户作业准备充分 C.选择恰当的作业调度算法D.有一个较好的操作环境 5.系统抖动是指( D ). A.使用机器时,屏幕闪烁的现象 B.由于主存分配不当,偶然造成主存不够的现象 C.系统盘有问题,致使系统不稳定的现象 D.被调出的页面又立刻被调入所形成的频繁调入调出现象 6.在分页存储管理系统中,从页号到物理块号的地址映射是通过( B )实现的. A.段表B.页表 C. PCB D.JCB 7.在下述文件系统目录结构中,能够用多条路径访问同一文件(或目录)的目录结构是( D ) A.单级目录B.二级目录

C.纯树型目录D.非循环图目录 8.SPOOLing技术可以实现设备的( C )分配. A.独占B.共享 C.虚拟D.物理 9.避免死锁的一个著名的算法是( C ). A.先人先出算法B.优先级算法 C.银行家算法D.资源按序分配法 10.下列关于进程和线程的叙述中,正确的是( C ). A.一个进程只可拥有一个线程 B.一个线程只可拥有一个进程 C.一个进程可拥有若干个线程 D.一个线程可拥有若干个进程 二、判断题(选择你认为正确的叙述划√,认为错误的划×并说明原因.每题2分,共10分) 1.简单地说,进程是程序的执行过程.因而,进程和程序是一一对应的.( ) 2.V操作是对信号量执行加1操作,意味着释放一个单位资源,加l后如果信号量的值小于等于零,则从等待队列中唤醒一个进程,使该进程变为阻塞状态,而现进程继续进行.( ) 3.段页式存储管理汲取了页式管理和段式管理的长处,其实现原理结合了页式和段式管理的基本思想,即用分段方法来分配和管理用户地址空间,用分页方法来管理物理存储空间.( ) 4.在采用树型目录结构的文件系统中,各用户的文件名必须互不相同.( ) 5.用户程序应与实际使用的物理设备无关,这种特性就称作与设备无关性.( ) 答案:1.(×)改正为:进程和程序不是一一对应的. 2.(×)改正为:V操作是对信号量执行加1操作,意味着释放一个单位资源,加1后如果信号量的值小于等于零,则从等待队列中唤醒一个进程,现进程变为就绪状态,否则现进程继续进行. 3.(√) 4.(×)改正为:在采用树型目录结构的文件系统中,不同用户的文件名可以相同. 5.(√) 三、填空题(每空2分,共30分)

操作系统原理考题及答案

《操作系统原理》期末考试题 班级学号姓名 一、单项选择题(每题2分,共26分) 1.操作系统是一种()。 A. 系统软件 B. 系统硬件 C. 应用软件 D. 支援软件 2.分布式操作系统与网络操作系统本质上的不同在于()。 A.实现各台计算机这间的通信 B.共享网络中的资源 C.满足较在规模的应用 D.系统中多台计算机协作完成同一任务 3.下面对进程的描述中,错误的是()。 A.进程是动态的概念 B. 进程执行需要处理机 C.进程是指令的集合 D. 进程是有生命期的 4.临界区是指并发进程中访问共享变量的()段。 A.管理信息 B.信息存储 C.数据 D.程序 5.要求进程一次性申请所需的全部资源,是破坏了死锁必要条件中的哪一条()。 A.互斥 B.请求与保持 C.不剥夺 D.循环等待 6.以下哪种存储管理不可用于多道程序系统中()。 A.单一连续区存储管理 B.固定式区存储管理 D. 段式存储管理 C.可变分区存储管理7.在可变式分区存储管理

中,某作业完成后要收回其主存空间,该空间可能与 1 / 8 相邻空闲区合并,修改空闲区表,使空闲区数不变且空闲区起始地址不变的 情况是()。 A.无上邻空闲区也无下邻空闲区 B.有上邻空闲区但无下邻空闲区 C.有下邻空闲区但无上邻空闲区 D.有上邻空闲区也有下邻空闲 区 8.系统“抖动”现象的发生不是由()引起的。 A.置换算法选择不当 B.交换的信息量过大 C.主存容量不足 D.请求页式管理方案 9.在进程获得所需全部资源,唯却CPU时,进程处于()状态。 A.运行 B.阻塞 C.就绪 D.新建 10.要页式存储管理系统中,将主存等分成()。 A.块 B.页 C.段长 D.段 11.系统利用SPOOLING技术实现()。 A.对换手段 B.虚拟设备 C.系统调用 D.虚拟存储 12.设备从磁盘驱动器中读出一块数据的总时间为()。 A.等待时间+ 传输时间 B.传输时间 D.延迟时间+ 查找时间+ 传输时间 C.查找时间+ 传输时间 13.如果允许不同用户的文件可以具有相同的文件名,通常采用()

操作系统原理与应用第2章文件管理

第2章文件管理习题解答 1.什么是文件和文件系统?文件系统有哪些功能? 【解答】文件是具有符号名而且在逻辑上具有完整意义的信息项的有序序列。 文件系统是指操作系统系统中实现对文件的组织、管理和存取的一组系统程序,它实现对文件的共享和保护,方便用户“按名存取”。 文件系统的功能“ (1)文件及目录的管理。如打开、关闭、读、写等。 (2)提供有关文件自身的服务。如文件共享机制、文件的安全性等。 (3)文件存储空间的管理。如分配和释放。主要针对可改写的外存如磁盘。(4)提供用户接口。为方便用户使用文件系统所提供的服务,称为接口。文件系统通常向用户提供两种类型的接口:命令接口和程序接口。不同的操作系统提供不同类型的接口,不同的应用程序往往使用不同的接口。 2.Linux文件可以根据什么分类?可以分为哪几类?各有什么特点? 【解答】在Linux操作系统中,文件可以根据内部结构和处理方式进行分类。 在Linux操作系统中,可以将文件分为普通文件、目录文件、特别文件三类。 各类文件的特点是: 普通文件:由表示程序、数据或正文的字符串构成的文件,内部没有固定的结构。这种文件既可以是系统文件,也可以是库文件或用户文件。 目录文件:由文件目录构成的一类文件。对它的处理(读、写、执行)在形式上与普通文件相同。 特别文件:特指各种外部设备,为了便于管理,把所有的输入/输出设备都按文件格式供用户使用。这类文件对于查找目录、存取权限验证等的处理与普通文件相似,而其他部分的处理要针对设备特性要求做相应的特殊处理。 应该指出,按不同的分类方式就有不同的文件系统。 3.什么是文件的逻辑结构?什么是文件的物理结构?Linux文件系统分别采用什么样的结构?有什么优点和缺点? 【解答】文件的逻辑结构:用户对文件的观察的使用是从自身处理文件中数据时采用的组织方式来看待文件组织形式。这种从用户观点出发所见到的文件组织方式称为文件的逻辑组织。 文件的物理结构:从系统的角度考察文件在实际存储设备上的存放形式,又称为文件的存储结构。 在Linux系统中,所有文件的逻辑结构都被看作是流式文件,系统不对文件进行格式处理。 在Linux系统中,文件的物理结构采用的是混合多重索引结构,即将文件所占用盘块的盘块号,直接或间接地存放在该文件索引结点的地址项中。 在Linux系统中,采用混合索引结构的优点是,对于小文件,访问速度快;对于大中

操作系统原理课程设计报告

操作系统原理课程设计报告

系(院):计算机科学学院 专业班级: 姓名: 学号: 指导教师: 设计时间:2020.5.25——2020.5.30 设计地点:

一、课程设计目的 (4) 二、课程设计的任务和要求 (4) 三、模拟程序的描述: (5) 四、运行环境 (7) 五、算法原理 (8) 1)多级反馈队列调度算法 (13) 2)优先权调度算法 (14) 六、需求分析 (16) 七、总体设计 (17) 八、详细设计与实现[含代码和实现界面] (19) 九、主要代码分析: (26) 十、总结 (44)

一、课程设计目的 《操作系统原理》是计算机科学与技术专业的一门专业核心课程,也是研究生入学考试中计算机专业综合中所涉及的内容。该课程理论性强,纯粹的理论学习相对枯燥乏味,不易理解。通过课程设计,可加强学生对原理知识的理解。 二、课程设计的任务和要求 本次课程设计的题目是,时间片轮转调度算法的模拟实现。要求在充分理解时间片轮转调度算法原理的基础上,编写一个可视化的算法模拟程序。 具体任务如下: 1、根据需要,合理设计PCB结构,以适用于时间片轮转调度算法;

2、设计模拟指令格式,并以文件形式存储,程序能够读取文件并自动生成指令序列。 3、根据文件内容,建立模拟进程队列,并能采用时间片轮转调度算法对模拟进程进行调度。 三、模拟程序的描述: 模拟指令的格式:操作命令+操作时间 ● C :表示在CPU上计算 ●I :表示输入 ●O :表示输出 ●W :表示等待 ●H :表示进程结束 操作时间代表该操作命令要执行多长时间。这里假设I/O设备的数量没有限制,I和O设备都只有一类。 I,O,W三条指令实际上是不占有CPU的,执行这三条指令就应该将进程放入对应的等待队列(输入等待队列,输出等待队列,其他等待队列)。

操作系统原理课程设计

操作系统原理课程设计 ——银行家算法模拟 指导老师:周敏唐洪英杨宏雨 杨承玉傅由甲黄贤英 院系:计算机学院计算机科学与技术班级:0237-6 学号:2002370609 姓名:刘洪彬 同组者:杨志 时间:2005/1/10---2005/1/14

银行家算法模拟 一、设计目的 本课程设计是学生学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。 二、设计要求 银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。 从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:两人一组,每组从所给题目中任选一个(如自拟题目,需经教师同意),每个学生必须独立完成课程设计,不能相互抄袭,同组者文档不能相同; 设计完成后,将所完成的工作交由老师检查; 要求写出一份详细的设计报告。 三、设计内容 编制银行家算法通用程序,并检测所给状态的系统安全性。 1)银行家算法中的数据结构 假设有n个进程m类资源,则有如下数据结构: 可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。Available[j]=K,则表示系统中现有Rj 类资源K个。 最大需求矩阵Max。这是一个n*m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。 分配矩阵Allocation。这也是一个n*m的矩阵,它定义了系统中每一类资源当前已分配给没一进程的资源数。如果Allocation[i,j]=K,则表示进程i 当前已分得Rj类资源的数目为K。 需求矩阵Need。这也是一个n*m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。

操作系统原理练习题附答案

《操作系统原理》练习题 一、填空题 1. 每个进程都有一个生命周期,这个周期从__(1)__开始,到__(2)__而结束。 2. 当一个进程独占处理器顺序执行时,具有两个特性:__(3)__和可再现性。 3. 并发进程中与共享变量有关的程序段称为__(4)__。 4. 一个进程或者由系统创建,或者由__(5)__创建。 5. 一个进程的静态描述是处理机的一个执行环境,被称为__(6)__。 6. 信号量的物理意义是:信号量大于0,其值为__(7)__;信号量小于0,其绝对值为__(8)__。 7. 系统有某类资源5个,供3个进程共享,如果每个进程最多申请__(9)__个该类资源,则系统是安全的。 8. 不可中断的过程称为__(10)__。 9. 操作系统中,进程可以分为__(11)__进程和__(12)__进程两类。 10. 操作系统为用户提供两种类型的使用接口,它们是__(13)__接口和__(14)__接口。 11. 批处理操作系统中,操作员根据作业需要把一批作业的有关信息输入计算机系统,操作系统选择作业并根据__(15)__的要求自动控制作业的执行。 12. 在批处理兼分时的系统中,往往由分时系统控制的作业称为前台作业,而由批处理系统控制的作业称为__(16)__作业。 13. 采用SPOOL技术的计算机系统中,操作员只要启动__(17)__程序工作,就可以把作业存放到__(18)__中等待处理。 14. 作业控制方式有__(19)__方式和__(20)__方式二种。 15. 对资源采用抢夺式分配可以防止死锁,能对处理器进行抢夺式分配的算法有__(21)__算法和__(22)__算法。 16. 因争用资源产生死锁的必要条件是互斥、__(23)__、不可抢占和__(24)__。 17. 死锁的形成,除了与资源的__(25)__有关外,也与并发进程的__(26)__有关。 18. 为破坏进程循环等待条件,从而防止死锁,通常采用的方法是把系统中所有资源类进行__(27)__,当任何一个进程申请两个以上资源时,总是要求按对应资源号__(28)__次序申请这些资源。 19. 内存管理的核心问题是如何实现__(29)__的统一,以及它们之间的__(30)__问题。 20. 页式存储管理中,处理器设置的地址转换机构是__(31)__寄存器。 21. 在页式和段式存储管理中,__(32)__存储管理提供的逻辑地址是连续的。 22. 实现地址重定位或地址映射的方法有两种:__(33)__和__(34)__。 23. 在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,__(35)__的作业将得到优先调度;当各个作业要求运行的时间相同时,__(36)__的作业得到优先调度。 24. 确定作业调度算法时应注意系统资源的均衡使用,即使CPU繁忙的作业和__(37)__的作业搭配使用。 25. 按照组织形式分类文件,可以将文件分为普通文件、目录文件和__(38)__。 26. 文件系统为用户提供了__(39)__的功能,以使得用户能透明地存储访问文件。 27. 文件名或记录名与物理地址之间的转换通过__(40)__实现。 28. 文件的__(41)__与文件共享、保护和保密紧密相关。

专科《操作系统原理及应用》

[试题分类]:专科《操作系统原理及应用》_08004260 [题型]:单选 [分数]:2 1.批处理最主要的一个缺点是()。 A.用户无法与程序交互 B.没有实现并发处理 C.CPU的利用率较低 D.一次只能执行一个程序 答案:A 2.磁盘空闲块常用的组织形式有三种,其中一种为()。 A.空闲块连续 B.空闲块索引 C.空闲块压缩 D.空闲块链 答案:D 3.常用的文件物理结构有三种,其中的一种形式是()。 A.记录文件 B.压缩文件 C.索引文件 D.流式文件 答案:C 4.批处理系统中,作业的状态可分为多种,其中一种为()。 A.提交 B.就绪 C.创建 D.等待 答案:A 5.并发执行的一个特点是()。 A.计算结果会出错 B.不会顺序执行 C.程序与计算不再一一对应 D.结果可再现

6.下列选项()不是操作系统关心的。 A.管理计算机资源 B.提供用户操作的界面 C.高级程序设计语言的编译 D.管理计算机硬件 答案:C 7.当CPU执行用户程序的代码时,处理器处于()。 A.核心态 B.就绪态 C.自由态 D.用户态 答案:D 8.根据对设备占用方式的不同,设备分配技术中的一种是()。 A.动态分配 B.永久分配 C.静态分配 D.虚拟分配 答案:D 9.评价作业调度的性能时,衡量用户满意度的准确指标应该是()。 A.周转时间 B.平均周转时间 C.带权周转时间 D.平均带权周转时间 答案:C 10.在手工操作阶段,存在的一个严重的问题是()。 A.外部设备太少 B.用户使用不方便 C.计算机的速度不快 D.计算机的内存容量不大 答案:B 11.作业的处理一般分为多个作业步,连接成功后,下一步的工作是()。

《操作系统原理》课程设计

《操作系统原理》课程设计 课题名称:进程调度算法 姓名: 班级: 学号: 课程设计起止时间:2005年1月2日——2005年1月7日指导教师:成绩:

课程设计任务书

进程调度算法 一、设计说明 该程序实现了进程的创建,且对该进程队列进行动态优先权抢占式和时间片轮转算法的调度。 二、详细设计 1. 流程图

2. 程序运行环境 Turbo C 2.0 3. 变量的名称、作用及含义说明 链表结构process,整型变量name表示进程名称,整型变量prior表示优先数,整型变量needtime表示需要执行时间,整型变量CPUtime表示CPU执行时间,整型变量runtime表示进程执行时间,整型变量state表示运行状态(1:ready, 2:execute, 3:finish)。 4. 各主要模块的功能表述 [ 子函数] ①Createp() 用来创建新进程,其中的整型变量n表示需要创建的进程个数; ②PrintP1(h) 用来打印输出时间片轮转算法的创建进程和运行进程的各变量值; ③Finish(h) 用来判断某个进程是否执行完; ④Find(h) 用来查找该进程队列中优先数最大的进程; ⑤PrintP2(h) 用来打印输出动态优先权抢占式算法的创建进程和运行进程的各变量值; ⑥ExecuteP_prio(h) 执行动态优先权抢占式进程调度算法; ⑦ExecuteP_time(h) 执行时间片轮转进程调度算法; [ 主函数] main()中使用字符变量select表示a和b中的一个字母,整型变量num表示1至3中的一个数,用双层switch语句实现各模块功能。 5.程序源代码 #include #include #include #include #define NULL 0 #define Max_Pri 100 struct Process { int name; int prio; int needtime; int piecetime; int CPUtime; int runtime; int state; struct Process *next;

操作系统原理课程设计

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2007年秋季学期 操作系统原理课程设计 题目:内存管理模拟系统 专业班级:05软件工程(2)班 姓名:尹盼盼 学号:05240204 指导教师:王旭阳 成绩:______________

目录 摘要.......................................................................... 错误!未定义书签。正文.......................................................................... 错误!未定义书签。 1、设计思路............................................................................ 错误!未定义书签。 2、各模块的伪码算法............................................................ 错误!未定义书签。 3、函数的调用关系图............................................................ 错误!未定义书签。 4、测试.................................................................................... 错误!未定义书签。设计总结 ................................................................. 错误!未定义书签。参考文献 ................................................................. 错误!未定义书签。致谢...................................................................... 错误!未定义书签。附录:部分源程序代码 ......................................... 错误!未定义书签。 摘要 操作系统的内存管理是指系统软件对其他应用程序使用内存时所作的管理,是一种统筹关系。本设计采用活动分区方案,但不采用紧凑算法。假设系统内存容量为100KB。能处理内存回收的时候上下邻合并的问题;对随机出现的进程i申请jKB内存,程序能判断是否能分配;释放随机的首地址为Handle的内存块;同时输出内存使用情况和空闲情况。 关键词:C语言、内存管理、操作系统、管理系统、内存的分配和回收 正文 1、设计思路 内存管理是计算机系统以一种优化性能的方式,在需要内存的不同进程(如操作系统或应用程序调用)之间将有限的内存进行分配的过程。执行这种任务的通用技术叫做虚拟内存技术,这项技术利用保留的磁盘空间存储不在物理内存中的对象,来模拟比实际可用的内存大得多的地址空间。此设计为了了解UNIX的

操作系统原理与实践教程(第二版)第2章习题答案

第2章操作系统的界面 (1) 请说明系统生成和系统引导的过程。 解: 系统的生成过程:当裸机启动后,会运行一个特殊的程序来自动进行系统的生成(安装),生成系统之前需要先对硬件平台状况进行检查,或者从指定文件处读取硬件系统的配置信息,以便根据硬件选择合适的操作系统模块组,比较重要的信息通常有:CPU类型、内存大小、当前关联设备的类型和数量以及操作系统的重要功能选项和参数。按照这些信息的指示,系统生成程序就可以正确地生成所需的操作系统。 系统引导的过程:系统引导指的是将操作系统内核装入内存并启动系统的过程。主要包括初始引导、内核初始化、全系统初始化。初始引导工作由BIOS完成,主要完成上电自检,初始化基本输入输出设备,载入操作系统内核代码等工作。内核被载入内存后,引导程序将CPU控制权交给内核,内核将首先完成初始化功能,包括对硬件、电路逻辑等的初始化,以及对内核数据结构的初始化,如页表(段表)等。全系统初始化阶段要做的就是启动用户接口程序,对系统进行必要的初始化,使系统处于等待命令输入状态。 (2) 操作系统具有哪些接口?这些接口的作用是什么? 解: 操作系统为用户提供的接口有图形接口、命令接口和程序接口几种形式。 操作系统包括三种类型的用户接口:命令接口(具体又可分为联机命令接口与脱机命令接口)、程序接口及图形化用户接口。其中,命令接口和图形化用户接口支持用户直接通过终端来使用计算机系统,而程序接口则提供给用户在编制程序时使用。 (3) 请说明操作系统具有的共性服务有哪些不同类别,这些类别分别用于完成什么功能? 解:所有的操作系统都通过一些基本服务来帮助用户简单便捷地使用计算机各类资源,它们包括以下几个类别: 1.控制程序运行:系统通过服务将用户程序装入内存并运行该程序,并且要控制程序 在规定时间内结束。 2.进行I/O操作:用户是不能直接控制设备的,只能通过操作系统与外部设备进行交 互,由系统调用将结果显示在屏幕上或交给用户。 3.操作文件系统:为了保证实现“按名存取”,文件系统应该为用户提供根据文件名 来创建、访问、修改、删除文件的方法,以确保文件数据的安全可靠以及正确存取。 4.实现通信:操作系统需要提供多个程序之间进行通讯的机制,来控制程序的执行顺 序。 5.错误处理:操作系统通过错误处理机制,以便及时发现错误并采取正确的处理步骤, 避免损害系统的正确性和统一性。 (4) 系统调用的用途是什么? 解: 通常,在操作系统内核设置有一组用于实现各种系统功能的子程序(过程),并将它们提供给用户程序调用。每当用户在程序中需要操作系统提供某种服务时,便可利用一条系统调用命令,去调用所需的系统过程。这即所谓的系统调用。系统调用的主要类型包括: 1.进程控制类,主要用于进程的创建和终止、对子进程结束的等待、进程映像的替换、 进程数据段大小的改变以及关于进程标识符或指定进程属性的获得等; 2.文件操纵类,主要用于文件的创建、打开、关闭、读/写及文件读写指针的移动和

操作系统原理试题

操作系统原理试题 一. 名词解释题 1. 中断 2. 进程控制块(PCB) 3. 虚时钟 4. 段式管理 5. 文件控制块(FCB) 6. 对换(SWAPPING) 7. 系统调用 8. 绝对路径名 9. 特别文件10. 虚设备技术 11. 管道 12. 中断接收 13. 恢复现场 14. 页式管理 15. 作业步 16. 字符流文件 17. 通道 18. 页面淘汰 19. 多道程序设计 20. 死锁 21. 当前目录 22. 快表 23. 作业调度 24. 原语 25. 中断屏蔽 26. 地址映射 27. 文件目录 28. 死锁避免 29. 原语 30. 作业控制块 31. CPU状态 32. 虚存 33. 磁盘调度 34. 缓冲技术 35. 中断 36. 进程调度 37. 虚设备 39. 死锁预防 40. 文件目录 41. 原语 42. 交换技术 43. 互斥区 二. 填空题 1. 分时系统追求的目标是_____. 2. 用户进程从目态(常态)转换为管态(特态)的唯一途径是____. 3. 从静态的观点看, 操作系统中的进程是由程序段、数据和____三部分组成. 4. 在系统内核中必须包括的处理模块有进程调度、原语管理和____. 5. 批处理操作系统中, 作业存在的唯一标志是____. 6. 操作系统中的一种同步机制, 由共享资源的数据及其在该数据上的一组操作组成, 该同步机制称为________. 7. 在可变分区存储管理中, 为实现地址映射, 一般由硬件提供两个寄存器, 一个是基址寄存器, 另一个是____. 8. 联想寄存器(相联存储器)的最重要、最独到的特点是____. 9. 在虚拟段式存储管理中, 若逻辑地址的段内地址大于段表中该段的段长, 则发生____中断. 10. 文件系统中若文件的物理结构采用顺序结构, 则文件控制快FCB 中关于文件的物理位置应包括____. 11. 在操作系统设计时确定资源分配算法, 以消除发生死锁的任何可能性, 这种解决死锁的方法是____. 12. 选择对资源需求不同的作业进行合理搭配, 并投入运行是由____来完成的. 13. 实时系统应具有两个基本特征: 及时性和______. 14. 磁带上的文件只能采用_____存取方式. 15. 不让死锁发生的策略可以分成静态和动态的两种, 死锁避免属于_____. 16. 在UNIX系统中, 文件分成三类, 即普通文件, 目录文件和_____. 17. 在磁盘调度策略中有可能使I/O请求无限期等待的调度算法是_____. 18. 进程获得了除CPU外的所有资源, 一旦获得CPU即可执行, 这时进程处于_____状态.

相关主题
文本预览
相关文档 最新文档