计算机操作系统课后题答案(高等教育出版社)

更新时间:2023-11-14 11:37:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

练习题(一)

Ⅰ 问答题

1. 操作系统的两个主要目标是什么? 答:方便性与有效性。

2. 试说明操作系统与硬件、其它系统软件以及用户之间的关系? 答:

与硬件的关系:操作系统是位于硬件层上的第一层软件,它直接管理着计算机的硬件,合理组织计算机工作流程,并提高了硬件的利用率。。

与其他系统软件的关系:操作系统是系统软件,但它不同于其它系统软件和应用软件,它为其它系统软件和应用软件提供接口。应用软件要使用操作系统所提供的服务方可方便使用计算机。

与用户之间的关系:操作系统是为改善人机界面、提供各种服务,为用户使用计算机提供良好运行环境的一种系统软件。

3. 试论述操作系统是建立在计算机硬件平台上的虚拟计算机系统。 答:没有任何软件支持的计算机称为裸机,即使其硬件功能再强,也必定是难于使用的。而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。裸机位于最里层,它的外面是操作系统,经过操作系统提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强、使用更方便的机器,通常把覆盖了软件的机器称为扩充机器,又称之为虚拟机(Virtual Machine ),这样的计算机系统是概念上和逻辑上的计算机,不是物理上的真实计算机。

4. 什么是操作系统?它有哪些基本功能与基本特征?

答:操作系统是位于硬件层之上,所有其它软件层之下的一种系统软件,它控制和管理计算机系统资源、合理组织计算机工作流程、提供用户与计算机系统之间的接口。

操作系统的基本功能有:处理器管理、存储器管理、设备管理、文件管理和提供用户接口。

操作系统的基本特征有:并发性、共享性、虚拟性和不确定性。

5. 请叙述并发和并行两个概念的区别?

答:并发性是指两个或多个程序在同一时间段内同时执行,是宏观上的同时。而并行性是从硬件意义上考虑,是不同硬件部件(如CPU与I/O)在同一时刻的并行,即微观上,多个程序也是同时执行的。

6. 什么是多道程序设计? 在操作系统中使用这种技术有什么好处? 答:多道程序设计是指在计算机内存中同时存放若干道已开始运行尚未结束的程序,它们交替运行,共享系统中的各种硬、软件资源,从而使处理机得到充分利用。

好处:

① 提高了CPU的利用率。各道程序是轮流占用一个CPU,交替地执行。

② 改进了系统的吞吐量(系统吞吐量是指计算机系统在单位时间内完成的总工作量)。 ③ 充分发挥了系统的并行性,使CPU与I/O并行工作。提高CPU、设备、内存等各种资源的利用率,从而提高系统效率。

248752581.doc

1

7. 什么是批处理、实时、分时系统?它们各有什么特征?各适用哪些场合? 答:

(1)批处理系统

\多道\是指在计算机内存中同时可以存放多道作业:\批处理\是指用户与作业之间没有交互作用,用户不能直接控制作业的运行,一般称为\脱机操作.在多道批处理系统中,用户的作业可以随时被接受进入系统,首先存放在外存缓冲存储器中,形成一个作业队列,OS按照一定的调度原则或根据作业的优先程度从作业队列中调出一个或多个作业进入内存,待作业运行完毕,由用户索取运行结果。多道批处理的特点是:

① 多道。 ② 宏观上并行执行。③ 微观上串行执行。 (2)分时系统

分时系统是指多个用户分享同一台计算机,它将计算机的中央处理机在时间上分割成很小的时间段,每个时间段称为一个时间片,系统将CPU的时间片轮流分配给多个用户,每个用户通过终端使用同一台计算机,并通过终端直接控制程序运行,进行人与机器之间的交互。分时操作系统的特性:

① 同时性(多路性)。② 独立性(独占性)。③ 及时性。④ 交互性 该系统主要用于教育与科研。

(3)实时系统

这类系统要求计算机能对外部发生的随机事件作出及时响应,并对它进行处理。实时系统应当具有如下两个基本特征:

(1)实时性。

(2)高可靠性和安全性。 实时系统具有专用性,不同的实时系统用于不同的应用领域。它有三种典型的应用形式,即:过程控制系统(如工业生产自动控制、卫星发射自动控制)、信息查询系统(如仓库管理系统、图书资料查询系统)和事务处理系统(如飞机订票系统、银行管理系统)。

8. 在分时系统中响应时间与哪些因素有关?

答:主要与联机的终端数目、时间片的长短、CPU速度、系统调度切换速度等有关。

9. 网络操作系统最基本的功能是什么?它最使你感兴趣的是什么? 答:网络通信和网络资源管理。

10. 分布式操作系统与网络操作系统有什么不同之处? 答:(1)分布性:分布式操作系统是驻留在系统的各个结点上,而网络操作系统的控制功能大部分是集中在服务器上。

(2)并行性:分布式操作系统可将一个用户的多个任务分配到多个计算机上并行执行;而网络环境下,每个用户的一个或多个任务只能在自己的计算机上处理。

(3)透明性:分布式系统能隐藏自己内部的物理位置、并发控制、系统故障等实现细节来使用系统;而网络操作系统计算机之间的通信需要IP地址。

(4)共享性:分布式系统中,所有分布在各个站点的软、硬件资源均可供系统中所有用户共享,并能以透明的方式使用它们;而网络操作系统共享的资源大多数是设置在服务器中,它机的资源一般由本机用户使用。

(5)健壮性:分布式系统任何结点的故障都不会对系统造成太大的影响,某些部件的故障可以通过容错技术实现系统的重构;而网络操作系统的控制功能大部分集中在服务器中,这使得服务器会成为单点故障,它一出故障,就会影响整个系统的可靠性。

248752581.doc 2

11. 操作系统发展的动力是什么?你对21世纪的操作系统有什么见解? 答:(1)器件快速更新换代。每隔18个月其性能要翻一翻。

(2)计算机体系结构不断发展。计算机由单处理机系统改进为多处理机系统,操作系统也由单处理机操作系统发展到多处理机操作系统和并行操作系统。

(3)提高计算机系统资源利用率的需要。多用户共享一套计算机系统的资源,必须提高计算机系统中各种资源的利用率,要不断研究和采用各种调度算法和分配策略。

(4)用户使用计算机方便程度的需要。要求操作系统的界面变得更加友善。 (5)满足用户的新要求,提供给用户新服务。

12. 计算机系统中“引导程序”的主要功能是什么?

答:完成装入操作系统并开始执行系统。主要完成工作是:把标准设备的驱动程序从BIOS读入内存的固定位置,让所有的标准设备都能开始工作;运行自动检测程序,检测各种设备是否正常工作;读入256个中断处理服务程序。

13. 简述主存储器与辅助存储器的作用和特点。

答:主存储器的作用是存放指令和数据,并能由中央处理器直接访问的唯一存储空间,任何程序和数据都必须装入主存后才能执行。内存是易失性存储设备,当掉电或有其它原因时会丢失所有内容。

辅助存储器用它来作为内存的扩充,并能够永久性地存储大量的数据。

14. 双重工作模式的思想是什么?为什么要这样设计? 答:为保护操作系统和所有用户程序不受错误用户程序的影响,许多计算机系统提供用户模式和系统模式两种运行模式(两种执行状态)操作,并将指令系统分为特权指令和非特权指令。

只有操作系统才能执行全部指令(特权指令和非特权指令),而一般用户只能执行非特权指令,否则会导致非法执行特权指令而产生保护中断。特权指令的规定既保障了系统的安全,也使得操作系统拥有了对计算机系统中所有软、硬件资源的控制权和管理特权。

15. 陷入与中断之间的区别是什么?各自有什么用途?

答:陷入与中断之间的主要区别是:陷入的中断源头来自CPU的内部,而中断的中断源头来自CPU外部。

中断的用途:它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。

陷入的用途是当程序出现错误(如某数除以0,或非法访问内存等)或用户程序执行非法操作可产生陷入,它属于软件生成中断。

16. 系统调用的用途是什么?它与过程调用的主要区别是什么?

答:系统调用是操作系统为了扩充机器功能、增强系统能力、方便用户使用而建立的。用户程序或其它系统程序通过系统调用就可以访问系统资源,调用操作系统功能,而不必了解操作系统内部结构和硬件细节,它是用户程序或其它系统程序获得操作系统服务的唯一接口。

系统调用与过程调用的主要区别是: (1)调用形式不同;

248752581.doc 3

(2)被调用代码的位置不同; (3)提供方式不同; (4)调用的实现不同

17. 采用层次式结构设计操作系统的主要优点是什么?

答:层次结构,即是把操作系统划分为内核和若干模块,这些模块按功能的调用次序排列成若干层次,各层次之间只能是单向依赖或单向调用关系,即低层为高层服务,高层可以调用低层的功能,反之则不能。这样不但系统结构清晰,适应性强,易于扩充和移植,而且不构成循环调用。

18. 采用微内核的方法设计操作系统的主要优点是什么? 答:微内核方法是将操作系统所有非基本部分从内核中移走,仅存放那些能实现现代OS最基本的核心功能的部分,使得操作系统核心部分很小,这样可以提高了系统的可扩展性;增强了系统的可靠性,可移植性,提供了对分布式系统的支持。

Ⅱ 单项选题

C C B C D BAC C A C B D B B B B D B B Ⅲ 思考题

1. 举例写出你最熟悉的操作系统的特征和缺点?

2. 请在网上查询或查看有关书籍,列出目前经常使用哪些操作系统?说明它们的应用对象和环境?并比较这些操作系统各有什么特点?

练习题(二)

Ⅰ 问答题

1. 什么是进程?为什么要引入进程概念?进程都有哪些特征? 答: (1)进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和调度的独立单位。

(2)在多道程序环境下,程序的并发执行代替了程序的顺序执行,资源共享和竞争又导致并发程序之间的相互制约性,使得系统中运行的程序是处于走走停停的状态之中,当一个程序获得处理机后向前推进,当它需要某种资源而未得到时只好停下来,以后得到所申请资源时再继续前进。基于“程序”这个静态概念已不能完整、有效地描述并发程序在内存中的运行状态。因此,为了实现程序在多道程序环境下的并发执行,必须引入一个能确切描述并反映并发过程的新概念—进程,以便从变化的角度动态地研究程序的执行。

(3)进程的特征:动态性、并发性、独立性、异步性、结构性。

2. 叙述进程和程序的关系? 答:进程与程序的联系是: (1)进程包括一个程序;

(2)进程存在的目的就是执行这个程序。 进程与程序的区别是:

(1)进程是动态的概念,程序是静态的概念。程序是指令代码的有序集合;进程是程序的一次执行过程,它能动态的被创建、调度执行,执行后消亡。

(2)进程是暂时的,程序是永久的。进程是一个程序执行状态变化的过程,程序是可长久保存。

(3)进程是由程序、数据和进程控制块组成。程序是由若干行代码组成。

248752581.doc

4

(4)通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。

(5)进程能够独立运行,可以为其独立分配资源,独立接受调度的单位,而程序不能在多道程序设计环境下运行。

3. 叙述进程的并发性和制约性。

答:并发性是进程的重要特征。即多道程序中多个进程同时向前推进的过程,每个进程总是与其它进程并发地执行的。进程的制约性是指一个进程的运行受到另一进程的制约(直接制约和间接制约)。如进程在运行过程中,有的进程可能正在等待另一进程的计算结果而无法运行,或者进程所需的资源被别的进程占有而无法运行。

4. 进程最少应设置几个状态?为什么?

答:一个进程在它的生命期中至少应有如下三种基本状态:就绪、运行和阻塞。这三种状态可以简单的描述每个进程的执行过程,进程任一时刻当且仅当处于上述三种基本状态之一。

5. 进程控制块的作用是什么?它是如何描述进程动态性质的?

答:进程控制块是系统占用区中的一个连续区域,存放着操作系统用于描述进程情况和进程运行所需的全部信息,它是OS感知进程的存在,以及管理和控制进程执行的唯一依据。

每个进程在操作系统内用(PCB)来表示,在PCB中记录了与特定进程相关的信息,即描述进程当前情况,以及控制进程运行的全部信息。它主要包含进程描述信息、控制信息和资源管理信息三类。进程控制块中有一些信息是专门用来描述进程动态性质的,如进程状态信息,存放该进程的现行状态,是进程调度分配CPU的重要依据。又如处理机现场信息,当执行进程变成其他状态让出处理机时,将处理机的现场信息如程序状态字、通用与专门寄存器、程序计数器等内容必须保留,以便当进程调度程序调度到相应进程时,从现场信息中取出恢复到CPU相关的寄存器中,让进程继续正常执行。又如,进程在整个生命期中,经常处于不同的队列,那末PCB中进程队列链接字的内容,随进程控制块从一个队列移到另一个队列而动态变化。

6. 用户进程能否修改或访问自己的进程控制块内容?为什么?

答:不能,因为进程控制块是操作系统中最重要的数据结构,只能由操作系统进行修改和访问。

7. 什么是原语操作?一般进程控制原语都有哪些?

答:原语是由若干条机器指令构成的,在管态下执行和完成系统特定功能的程序段。原语和机器指令类似,它在执行过程中不允许被中断,是一个不可分割的基本单位,原语的执行是顺序的而不可能是并发的。

进程控制原语有:进程创建原语、进程撤销原语、进程阻塞原语、进程唤醒原语、进程挂起原语和进程激活原语。

8. 试说明引起创建一个进程、撤销一个进程的主要事件? 答:引起进程创建的主要事件有:

① 用户登录。用户登录时验证是否为合法的用户。若合法,则为他创建一进程。 ② 作业调度。当作业调度程序调度到某作业,应为它创建一进程。

③ 提供服务。运行中的用户程序提出某种请求。如父进程创建子进程。 引起进程撤消的主要事件有:

① 正常结束。当进程正常完成执行,应终止该进程,并将它删除。

② 异常结束。当进程执行中遇到越界错误、保护错、特权指令错、非法指令错、算术运算错、I/O故障等应终止该进程,并将它删除。

248752581.doc

5

③ 外界干预。操作员或操作系统干预。

9. 请画出流程图说明创建一个新进程的步骤。 答:

入口 查PCB链表 无 有空PCB? 有 取空PCB(i) 将有关参数填入PCB(i)相应表项 创建失败,返回 PCB(i)入就绪队列 PCB(i)入进程家族或进程链 返回

10. 操作系统内核都包括哪些内容?

答:内核包括两个方面:一是支撑功能,包括中断处理、时钟管理和原语操作等;二是资源管理功能,包括进程管理、存储器管理和设备管理等。内核运行在系统态下,是系统的控制和协调中心,由它来组织、启动及协调系统中各种用户活动和系统活动有条不紊地进行。

11. 模式切换和进程切换有什么区别?

答:进程切换是由进程状态的变化引起的,而进程状态的变化又与出现的中断事件有关。用户态到核心态或者核心态到用户态的转变是CPU模式的改变。

模式切换是用户态到核心态或核心态到用户态的转变。

12. 操作系统中引入进程概念后,为什么又引入线程概念?

答:操作系统中引入进程的目的是为了使多个程序并发执行,改善资源的利用率以提高系统的吞吐量。但是,进程给并发程序设计效率带来下列问题:进程切换开销大;进程通信代价大;进程之间的并发性粒度较粗,并发度不够高;不适合并行计算和分布并行计算的要求;不适合客户/服务器计算的要求等。于是引入线程。

引入线程后,把进程的两个属性(―独立分配资源‖与―被调度分派执行‖)分离开来考虑,将进程是作为独立分配资源的基本单位,线程是进程的一个实体,是作为系统独立调度和分派处理机的基本单位,以使之轻装运行,而对于拥有资源的单位又不必频繁地进行切换。这样可以大大减少程序并发执行时所付出的时间和空间开销,使操作系统具有更好的并发性。

13. 试从资源分配单位和调度的基本单位两方面对进程和线程进行比较。 答:

资源分配单位:进程是作为独立分配资源的基本单位,一般地说,线程自己不拥有系统资源(只有少量的必不可少的资源),但它可以访问其隶属进程的资源。

调度的基本单位:线程作为系统独立调度和分派处理机的基本单位。在同一个进程

248752581.doc

6

中,线程的切换不会引起进程的切换,只有当从一个进程中的线程切换到另一个进程中的线程时,才会引起进程的切换

14. 请指出用户级线程和内核级线程的不同点?

答:用户级线程只存在于用户层,它的管理都在一个进程的用户地址空间中进行,用户级线程的切换也仍在用户态下运行,不需要转换到核心态,这就节省了系统从核心态到用户态或从用户态到核心态转换的时间和空间的开销。同一进程中多个线程不能真正并行。

内核级线程线程管理的所有工作都是由内核来完成的,同一进程内多个线程可以并行执行,即如果进程中的一个线程被阻塞,内核可以调度同一个进程中的另一个就绪线程执行。在多处理机环境中,内核可以同时把同一个进程的多个线程分配到多个处理机上。在同一个进程中把控制权从一个线程切换给另一个线程需要内核的状态转换(即用户态到核心态的转换),所以内核级线程的创建和管理通常要慢于用户级线程的创建和管理。

Ⅱ 单项选择题

C D D C C D B C D C C D D A Ⅲ. 思考题

1. 考虑到图2.6中的状态转换图。假设操作系统正在分派进程,有进程处于就绪状态和就绪挂起状态,并且至少有一个处于就绪挂起状态的进程比处于就绪状态的所有进程的优先级都高。有两种极端的策略:

(1)总是分派一个处于就绪状态的进程,以减少交换;

(2)总是把机会给具有最高优先级的进程,即使会导致在不需要交换时进行交换。 请给出一种能均衡考虑优先级和性能的中间策略。

答:对于一个就绪挂起态的进程,降低一定数量的优先级,从而保证只有当一个就绪挂起态的进程比就绪态的进程的最高优先级还高出几个优先级时,它才会被选做下一个执行。

2. 举两个例子说明多线程比单线程方案提高性能,同时再举两个例子说明多线程不比单线程方案提高性能。

练习题(三)

I 问答题

1. 处理器调度分哪几种类型?简述各类调度的主要任务。

答:处理器调度分三级调度:高级调度、中级调度和和低级调度。

高级调度主要功能是根据一定的算法,决定把外存上处于后备队列中的作业调入内存,并为它们创建进程和分配必要的资源,然后,再将新创建的进程插入到进程就绪队列中,准备执行。在作业完成后负责回收该作业所使用的资源。

中级调度主要功能是在内存使用情况紧张时,将一些暂时不运行的进程从内存调出到外存上等待,当以后内存有足够的空闲空间时,再将适合的进程重新调入内存,等待进程调度。

低级调度其主要功能是按照一定的算法决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。

2. 叙述衡量一个处理器调度算法好坏的主要标准。 答:

(1)CPU利用率。使得CPU尽可能的忙。

(2)吞吐率。指一个时间单位内所完成的作业数量。

248752581.doc

7

(3)周转时间。用户作业从提交给系统开始,到作业完成中间的时间间隔称为作业周转时间,应使作业周转时间或平均作业周转时间尽可能短。

(4)等待时间。指作业或进程从进入系统到被调度到并开始执行所经历的时间。等待时间越短越好。

(5)响应时间。交互式系统中定义进程从提交一个请求到产生响应所需的时间间隔称为响应时间。分时系统要求用户的响应时间尽可能短,实时系统要求尽快处理实时任务。

(6)公平性。确保每个用户的每个进程获得合理的CPU 份额或其它资源份额,不会出现饿死情况。

上述这些指标不是所有操作系统在设计时都要达到最优,而必须根据操作系统类型的不同进行权衡,以达到较好的效果。一般人们需要使CPU使用率和吞吐量最大化,而使周转时间、等待时间和响应时间最小化。

3. 简述作业状态及其转换过程。

答:通常把作业在系统中的状态分为四种:提交、后备、执行和完成。批处理系统中作业的状态及其转换如下图所示。

(1)提交状态。此时作业的信息正在从输入设备上预输入。

(2)后备状态。此时作业预输入结束放在辅存中,但尚未被选中执行。 (3)执行状态。作业已被选中进入主存,并构成进程去竞争处理器资源已获得运行。 (4)完成状态。作业已经运行结束(正常或非正常结束),甚至已经撤离,但正在等待缓输出运行结果。

SPOOLing输入程序执行状态SPOOLing输出程序运行度待等进程调预输入完成作业调度创建用户进程时间片提交状态后备状态完成状态作业运行结束撤消用户进程到件事缓输出就绪I/O完成中级调度外存交换阻塞外存磁盘静止就绪静止阻塞图3.5 作业的状态及其转换图4. 叙述作业、进程和程序三者的关系。 答:程序、进程、作业之间的区别与联系 程序与进程之间的区别:

(1)进程更能真实地描述并发,而程序不能。

(2)进程由程序和数据两部分组成,进程是竞争计算机系统有限资源的基本单位,也是进程处理机调度的基本单位。

(3)程序是静态的概念;进程是程序在处理机上一次执行的过程,是动态的概念。 (4)进程有生存周期,有诞生有消亡。是短暂的;而程序是相对长久的。

(5)一个程序可以作为多个进程的运行程序;一个进程也可以运行多个程序。 (6)进程具有创建其他进程的功能;而程序没有。 作业与进程的区别:

248752581.doc 8

一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。作业是用户需要计算机完成的某项任务,是要求计算机所做工作的集合。一个作业的完成要经过作业提交、作业收容、作业执行和作业完成4个阶段。而进程是对已提交完毕的程序所执行过程的描述,是资源分配的基本单位。

作业、进程和程序之间的联系:

一个作业通常包括程序、数据和操作说明书3部分。每一个进程由PCB、程序和数据集合组成。这说明程序是进程的一部分,是进程的实体。因此,一个作业可划分为若干个进程来完成,而每一个进程有其实体—程序和数据集合。

5. 何谓响应比最高优先算法?它有何主要特点?

答:响应比最高者优先算法是既要考虑作业的等待时间,又要考虑作业的运行时间,是介于先来先服务算法和最短作业优先算法之间的一种折衷策略。该算法把作业进入系统后的等待时间与估计作业运行时间之和称为作业的响应时间,作业的响应时间除以作业运行时间称为作业响应比,作业响应比Rp定义为:

Rp=作业的响应时间=作业的等待时间?作业的运行时间=1+作业的等待时间

作业的运行时间作业的运行时间作业的运行时间

6. 何谓进程调度中“可抢占”和“非抢占”两种方式?哪一种系统的开销更大?为什么? 答:因为―可抢占‖的进程调度方式是一个进程能把处理机资源从正在运行的进程哪里抢占过来。它的优点是能保证系统当前运行的进程是所有进程中优先级最高的进程。但由于在处理机调度过程中,处理机资源的交换比较频繁,所以引起的系统开销比较大。这也是可抢占调度方法的一大缺点。

7. 进程调度功能有哪些?进程调度的时机有哪几种? 答:

进程调度的功能是:记录进程的运行状况;根据一定调度算法从就绪队列中选择一个进程投入运行(处理机的分配);进行进程的上下文切换。

进程调度时机:当发生下述几种情况之一时,引起进程重新调度: (1)当一个进程从运行状态转换到阻塞状态 (2)当一个进程从运行状态转换到就绪状态 (3)当一个进程从阻塞状态转换到就绪状态。 (4)当一个进程终止时。

8. 试比较进程调度与作业调度的不同点。

答:作业调度程序的主要功能是审查系统是否能满足用户作业的资源要求以及按照一定的算法来选取作业,为该作业创建一进程。

进程调度主要功能是根据一定的算法将cpu分派给就绪队列中的一个进程。进程调度是操作系统中最基本的一种调度,其调度策略的优劣直接影响整个系统的性能。

9. 假定有一个支持实时、分时和批处理的操作系统,对该系统应如何设计进程调度

策略?

答:调度算法:

在操作系统中调度是指一种自远方分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的的系统和系统目标,通常采用不同的调度算法,例如,在批处理系统中,为了照顾为数众多的段作业,应采用短作业优先的调度算法;又如在分时系统中,为了保证系统具有合理的响应时间,应当采用轮转法进行调度;又如在实时系统中最好采用基于优先级的抢先式调度策略。对于一个支持实时、分时和批处理的

248752581.doc 9

操作系统,最好将批处理作为后台作业,采用短作业优先的调度算法;分时系统和实时系统作为前台作业,采用优先级调度策略。

10. 在多级反馈队列系统中设置不同大小的时间片有什么优点?

答:多级反馈队列调度算法是一种CPU处理机调度算法,UNIX操作系统采取的便是这种调度算法。

多级反馈队列调度算法中设置不同大小的时间片,即能使高优先级的作业得到响应又能使短作业(进程)迅速完成。(对比一下FCFS与高优先响应比调度算法的缺陷)。

Ⅱ 单项选择题

C B B D A D C C D D A A B B B

Ⅲ 应用题

1. 设有4个进程Pl,P2,P3,P4,它们到达就绪队列的时间、运行时间及优先级如表3.10所示。试问:

①若采用可剥夺的表 进程到达时间 优先级调度算法,给出

到达就绪队列的时间 运行时间 各个进程的调度次序以进程 优先级 (基本时间单位) (基本时间单位) 及每个进程的等待时

P1 0 9 1 间。

②若采用时间片轮P2 1 4 3 换调度算法,且时间片P3 2 8 2 为两个基本时间单位,P4 3 10 4 给出各个进程的调度次序以及平均等待时间。

答:

假设优先数越大,优先级越高

(1) t0时刻:P1到达且投入运行。

t1时刻:P2到达,因为P2的优先级比P1高,P2投入运行,P1进入就绪队列。 t2时刻:P3到达,仍然P2的优先级最高,继续运行。就绪队列有:P1、P3。 t3时刻:P4到达,且P4的优先级最高,投入运行,就绪队列有:P1、P2、P3。 t13时刻:P4结束,此时P2的优先级最高,P2投入运行,就绪队列有:P1、P3。 t15时刻:P2结束,此时P3的优先级最高,P3投入运行,就绪队列有:P1。

T23时刻:P3结束, P1又投入运行。 t31时刻:P1结束。

调度次序:P1→P2→P4→P2→P3→P1 开始运运行结进程 到达时间 运行时间 等待时间 周转时间 行时间 束时间 P1 P2 P3 P4 0 1 2 3 9 4 8 10 0 1 15 3 31 15 23 13 22 10 13 0 31 14 21 10 平均等待时间=(22+10+13+0)/4=11.25ms 平均周转时间=(31+14+10)/4=19

248752581.doc

10

(2)时间片轮转法

t0时刻:P1就绪切得到时间片开始运行。 t1时刻:P2就绪,等待时间片。

t2时刻:P1时间片完成,P2得到时间片投入运行,同时P3就绪。就绪:P2、P3、P1。 t3时刻:P4就绪。P2时间片未结束,继续运行。就绪:P2、P3、P1、P4。 t4时刻:P2时间片结束,P3得到时间片投入运行,就绪:P3、P1、P4、P2。 t6时刻:P3时间片结束。P1得到时间片,就绪:P1、P4、P2、P3。 t8时刻:P1时间片结束。P4得到时间片,就绪:P4、P2、P3、P1。 t10时刻:P4时间片结束。P2得到时间片,就绪:P2、P3、P1、P4。

t12时刻:P2时间片结束且P2运行结束。P3得到时间片投入运行,就绪:P3、P1、P4。 t14时刻:P3时间片结束,P1得到时间片投入运行,就绪:P1、P4、P3。 t16时刻:P1时间片结束,P4得到时间片投入运行,就绪:P4、P3、P1。 t18时刻:P4时间片结束,P3得到时间片投入运行,就绪:P3、P1、P4。 t20时刻:P3时间片结束,P1得到时间片投入运行,就绪:P1、P4、P3。 t22时刻:P1时间片结束,P4得到时间片投入运行,就绪:P4、P3、P1。 t24时刻:P4时间片结束,P3得到时间片投入运行,就绪:P3、P1、P4。

t26时刻:P3时间片结束,且P3运行结束。P1得到时间片投入运行,就绪有:P1、P4。 t27时刻:P1运行结束。P4得到时间片投入运行。 t31时刻:P4运行结束。

等待时间的计算:

P1=4+6+4+4=18 P2=1+6=7

P3=2+6+4+4=16 P4=5+6+4+3=18

练习题(四)

I 问答题

248752581.doc

11

1. 试说明进程的互斥和同步两个概念,并说明它们之间的异同。

答:进程互斥是解决进程间竞争关系(间接制约关系)的手段。它是指一组并发进程中的一个或多个程序段,因共享同一临界资源时,任何时刻不允许两个以上的共享该资源的并发进程同时进入临界区。

进程同步指的是两个或多个进程为了合作完成同一个任务,在执行速度或某些确定的时序点上必须相互协调,即一个进程的执行依赖于另一个进程—其合作伙伴的消息,当一个进程到达了某一确定点而没有得到合作伙伴发来的“已完成某些操作”的消息时必须等待,直到该消息到达被唤醒后,才能继续向前推进。

进程同步与互斥相似之处是:进程的互斥实际上是进程同步的一种特殊情况,即逐次使用互斥共享资源,也是对进程使用资源次序上的一种协调。进程的互斥和同步统称为进程同步。

进程同步与互斥的差别是:进程互斥是进程间共享资源的使用权,这种竞争没有固定的必然联系,哪个进程竞争到资源的使用权,该资源就归那个进程使用,直到它不再需要使用时才归还资源;而进程同步则涉及共享资源的并发进程间有一种必然的联系,当进程必须同步时,即使无进程在使用共享资源时,那么尚未得到同步消息的进程也不能去使用该资源。

2. 进程之间存在哪几种相互制约关系?各是什么原因引起的?请说明下列活动分别属于哪种制约关系?

(1)若干同学去图书馆借书; (2)两队举行篮球比赛;

(3)流水线生产的各道工序; (4)商品生产和社会消费。 答:进程之间存在直接制约关系(进程间的同步)和间接制约关系(进程间的互斥)。直接制约关系是指两个或多个进程为了合作完成同一个任务,间接制约关系是指两个或多个进程为了竞争临界资源。

(1)属于互斥关系 (2)属于互斥关系 (3)属于同步关系 (4)属于同步关系

3. 什么是临界区和临界资源?对临界区管理的基本原则是什么?

答:把一次只允许一个进程使用的资源称为临界资源。把每个进程中访问临界资源的那段代码从概念上分离出来,将其称为临界区。即临界区是指对临界资源实施操作的程序代码段。

对临界区管理的原则是:

① 互斥。如果某个进程在临界区内执行,则其它进程不能进入临界区。

② 有空让进。如果没有进程在其临界区内执行,则选择一进程(如有)进入临界区。 ③ 有限等待。当有若干个进程同时要求进入临界区时,应在有限时间内使一个进程进入。

4. 什么是信号量?在信号量S 上作P、V 操作时,S 的值发生变化,当S>0、S=0、

S<0 时,它们的物理意义是什么?

答:信号量是用于表示资源数目或请求使用某一资源的进程个数的整型变量。

当S>0时,其值表示系统中当前可用的某类资源数量; 当S=0时,表示系统中当前已无某类资源可用; 当S<0时,其绝对值表示系统中因请求该类资源而被阻塞的进程数量或登记排

列在该信号量S队列之中等待的进程个数。

5. 请说明P、V 操作的定义和作用?为什么它们均为不可分割的原语操作? 答:定义:

248752581.doc

12

设S为一个记录型数据结构,其中一个分量为整型量value ,另一个分量为信号量队列queue,value 通常是一个具有非负初值的整型变量,queue 是一个初始状态为空的进程队列。信号量S的初值可定义为0,l 或其它正整数,在系统初始化时确定。

记录型信号量和P 操作和V 操作可表示成如下的数据结构和不可中断的过程: void P(semaphore S){ /* P操作定义 */

S.value––; /* 把信号量值减1 */ if (S.value< 0){ add this process to S.queue; block(); } }

void V(semaphore S){ /* V操作定义 */

S.value + +; /* 把信号量值加1 */ if (S.value< = 0) { remove a process P from S.queue; wackup(P); } }

作用:利用信号量和P、V 操作既可以解决并发进程的竞争问题,又可以解决并发进程的协作问题。

它们均为不可分割的原语操作原因:因为P操作和V操作都是对信号量的操作,是为了实现进程同步和互斥的,互斥要解决的就是如何在一个进程修改共享内存区时不让操作系统切换给另一个同样访问这块共享内存区的进程的问题,所以在执行P、V操作时一定不能让进程切换,所以必须采用原语。

6. 已经有信号量和P、V 操作可用作进行进程间的通信,为什么还要引入管程? 答:采用P、V同步机制来编写并发程序,其主要缺点是:

(1)同步操作分散。信号量机制中,同步操作分散在各个进程中,使用不当就可能导致进程死锁(如P、V操作的次序错误、重复或遗漏);

(2)易读性差。要了解对于一组共享变量及信号量的操作是否正确,必须通读整个系统或者并发程序;

(3)正确性难以保证。操作系统或并发程序通常很大,很难保证这样一个复杂的系统没有逻辑错误。

引入管程机制保证进程能互斥地访问共享变量,并方便地阻塞和唤醒进程。其基本思想是把信号量及其操作原语封装在一个对象内部。即:将共享变量以及对共享变量能够进行的所有操作都集中在一个模块中。管程可以函数库的形式实现。相比之下,管程比信号量更好控制。

7. 叙述产生死锁的必要条件。

答:系统出现死锁一定同时保持以下四个必要条件:

(1)互斥条件。进程应互斥使用资源,任一时刻一个资源仅为一个进程独占,若另一个进程请求一个已被占用的资源时,它被置成等待状态,直到占用者释放了该资源。

(2)占有和等待条件。一个进程请求资源得不到满足而等待时,不释放已占有的资源。

(3)不剥夺条件。任何一个进程不能抢夺其它进程占用的资源,即已被占用的资源只能由占用资源的进程自己来释放。

(4)循环等待条件。存在一个循环等待链,链中每一个进程已获得资源,同时分别等待它前一个进程所持有的资源,造成永远等待。

248752581.doc

13

8. 简述死锁的防止与死锁的避免的区别。

答:死锁的预防就是在运行之前,预先防止死锁的产生,主要是通过破坏产生死锁的4个必要条件中任何一个来实现的。所以系统预先确定一些资源分配策略,进程按规定申请资源,系统按预先规定的策略进行分配,从而防止死锁的发生。

死锁的避免是在系统运行过程中注意避免死锁的发生,这就要求系统每当在进程申请资源时,都应根据一定的算法进行判断,仅当系统处于安全状态时才把资源分配给进程,使系统一直处于安全状态之中,从而避免死锁。

死锁的避免策略比起死锁的预防策略系统资源的利用率更高一些。

9. 列举死锁的各种预防策略。 答:

静态分配资源策略:要求每一个进程在开始执行前就要申请它所需要的全部资源,仅当系统能满足进程的资源申请要求时才把资源分配给进程,该进程才能开始执行(注意,所有并发执行的进程要求的资源总和不能超过系统拥有的资源数)。

按序分配资源策略:把系统中所有资源排一个顺序,对每一个资源给一个确定的编号,规定任何一个进程申请两个以上资源时总是先申请编号小的资源,后申请编号大的资源(或者先申请编号大的,后申请编号小的资源)。系统按进程对资源的申请顺序来分配资源。按序分配策略将阻止死锁 的第四个条件(循环等待条件)的出现。

10. 何谓银行家算法?叙述其基本思想?

答:银行家算法是一种能够避免死锁的调度方法。

银行家算法的基本思想描述如下:假定一个银行家拥有资金,被N个客户共享。银行家对客户提出下列约束条件是:

①每个客户必须预先说明自己所要求的最大资金量; ②每个客户每次提出部分资金量申请和获得分配;

③如果银行满足了客户对资金的最大需求量,那么,客户在资金运作后,应在有限时间内全部归还银行。

银行家算法是把操作系统比作银行家,操作系统管理的各种资源比作银行的周转资金,申请资源的进程比作向银行借款的客户。银行家占有有限的资金,他不可能满足所有客户的请求,但可以满足一部分客户的借款请求,等这些客户归还后,又可把这笔资金借给其它客户,其原则是不能使银行家的钱被借完,使资金无法周转。

11. 有20 个进程,竞争使用65 个同类资源,申请方式是逐个进行的,一旦某进程

获得了所需的全部数量的资源,立即归还所有资源,若每个进程最多使用3 个资源。问系统会产生死锁吗?为什么?

答:若仅考虑这一类资源的分配,则不会产生死锁。因为产生死锁的原因是:系统

资源不足或进程推进顺序不当。本题进程所需最大资源数为:20×3=60个,但系统有该类资源65个,所以完全能满足需要,不会出现死锁。

12. 设有n 个进程共享一个互斥段,如果: (1)每次只允许一个进程进入互斥段;

(2)每次最多允许m 个进程(m≤n)同时进入互斥段。

试问:所采用的信号量初值是否相同?信号量值的变化范围如何? 答:(1)int S=1, -(n-1)--1 (2)int S=m -(n-m)--m

13. 有两个优先级相同的进程P1和P2,各自执行的操作如下,信号量S1和S2初

值均为0。试问P1、P2并发执行后,x、y的值各为多少? P1: P2: begin begin y:=1; x:=1; y:=y+3; x:=x+5;

248752581.doc

14

V(S1); P(S1); z:=y+1; x:=x+y; P(S2); V(S2); y:=z+y end z:=z+x; end

答:x=10 y=9 z=15

14. 设N为整型数,初始值为3,两个并发进程A和B的程序如下:

process A process B do{ do{

N=N+5; print(N); } N=0; }

若process A先执行了三个循环后,process A和 process B又并发执行了一个循环,写出可能出现的打印值。请用P、V操作实现同步,使两并发进程能正确执行。 答:可能的值是 18或 23.这是因为 process A执行三个循环后,N=18,之后 A和 B并发执行,可能先执行A中的N:=N+5,再执行B中的print(N);这样就会得到23,也可能先执行B中的pint(N);这就会得到18。 可以利用P、V操作实现同步: begin

N:integer; S:semphore; S:=l; N:=3; cobegin process A begin

L1:P(S); N:=N+5; V(S); goto L1; end;

process B begin

L2:P(S); print(N); N:=0; V(S); goto L2; end; coend; end

Ⅱ 单项选择题

D B D C A C B D B B C B C B C C Ⅲ 应用题

1. 另一个经典同步问题:吸烟者问题(patil,1971)。三个吸烟者在一个房间内,

248752581.doc

15

还有一个香烟供应者。为了制造并抽掉香烟,每个吸烟者需要三样东西:烟草、纸和火柴,供应者有丰富货物提供。三个吸烟者中,第一个有自己的烟草,第二个有自己的纸和第三个有自己的火柴。供应者随机地将两样东西放在桌子上,允许一个吸烟者进行对健康不利的吸烟。当吸烟者完成吸烟后唤醒供应者,供应者再把两样东西放在桌子上,唤醒另一个吸烟者。试采用信号量和P、V 操作编写他们同步工作的程序。 答:var S,S1,S2,S3;semaphore; S:=1;S1:=S2:=S3:=0; flag1,flag2,flag3:Boolean; flag1:=flag2:=flag3:=true; cobegin {

process 供应者 begin L1: P(S);

取两样香烟原料放桌上,由flagi标记; /*flage1、flage2、flage3代表烟草、纸、火柴 if flag2&flag3 then V(S1); /*供纸和火柴

else if flag1&flag3 then V(S2); /*供烟草和火柴 else V(S3); /*供烟草和纸 goto L1; end

process 吸烟者1 begin L2: P(S1); 取原料; 做香烟; V(S);

吸香烟; goto L2 end

process 吸烟者2 begin L3:

P(S2); 取原料; 做香烟; V(S);

吸香烟; goto L3; end

process 吸烟者3 begin L4:

P(S3);

248752581.doc

16

取原料; 做香烟; V(S);

吸香烟; goto L4;; end }

coend.

2. 在一个盒子里,混装了数量相等的黑白围棋子。现在用自动分拣系统把黑子、白子分开,设分拣系统有二个进程P1 和P2,其中P1 拣白子;P2 拣黑子。规定每个进程每次拣一子;当一个进程在拣时,不允许另一个进程去拣;当一个进程拣了一子时,必须让另一个进程去拣。试写出两进程P1 和P2 能并发正确执行的程序。

答:实质上是两个进程的同步问题,设信号量S1和S2分别表示可拣白子和黑子,不失一般性,若令先拣白子。 信号量S1,S2其初值为:

S1:=1;S2:=0; cobegin {

process P1 begin repeat P(S1); 拣白子 V(S2); until false; end

process P2 begin repeat P(S2); 拣黑子 V(S1); until false; end }

coend.

3. 一个快餐厅有4 类职员: (1)领班:接受顾客点菜; (2)厨师:准备顾客的饭菜;

(3)打包工:将做好的饭菜打包; (4)出纳员:收款并提交食品。

每类职员可被看作一个进程,试用一种同步机制写出能让四类职员正确并发执行的程序。

答:

设信号量:s1=1;s2=s3=s4=0;

248752581.doc 17

cobegin { process P1 L1: 有顾客到来 p(s1); 接受顾客点菜 v(s2); goto L1; process P2 L2: P(s2); 准备顾客的饭菜 v(s3); goto L2; process P3 L3: p(s3); 将做好的饭菜打包 v(s4); goto L3; }conend process P4 L4: P(s4); 收款并提交食品 v(s1); goto L4;

4. 设有三组进程Pi、Qj、Rk,其中Pi、Qj 构成一对生产者和消费者,共享一个由M1 个缓冲区构成的循环缓冲池buf1 。Qj、Rk 构成另一对生产者和消费者,共享一个由M2 个缓冲区构成的循环缓冲池buf2。如果Pi 每次生产一个产品投入buf1,Qj 每次从中取两个产品组装后成一个并投入buf2,Rk 每次从中取三个产品包装出厂。试用信号量和P、V 操作写出它们同步工作的程序。

答:Pi Qj Rk … … … 生产一产品 P(full1) P(full2) P(empty1) buffer1-> buffer2-> ->buffer1 V(empty1) V(empty2) V(full1) P(empty2) ->buffer2 V(full2)

5. 考虑一个共有150个存储单元的系统,如下分配给三个进程,P1 最大需求70,己占有25;P2 最大需求60,己占有40;P3 最大需求60,己占有45。使用银行家算法,以确定下面的任何一个请求是否安全。

(1) P4 进程到达,P4 最大需求60,最初请求25 个。

(2) P4 进程到达,P4 最大需求60,最初请求35。如果安全,找出安全序列;如果不安全,给出结果分配情况。

答:(1) 由于系统目前还有150-25-40-45=40个存储单元,P4进程到达,把25个存储单元分给它。这时系统还余15个单元,可把15个单元分给P3,它执行完后会释放60个单元。于是可供P1(还要45个单元)、P2(20个单元)和P4(还要35个单元)任何一个执行。安全序列有6个序列,分别为:

P3, P1, P2, P4 ; P3, P1, P4, P2 ; P3, P2, P1, P4 ; P3, P2, P4, P1 ; P3, P4, P1, P2 ; P3, P4, P2, P1 ;

(2)P4进程到达,P4最大需求60,最初请求35。如果把35个单元分给P4,系统还余5个单元,不再能满足任一个进程的需求,系统进入不安全状态。

6. 某一游览胜地,有一天然隧道,隧道内只允许一人通过。为使双方游人都有机会,规定当同一方向经过一人后就交替地改变方向,让另一方游人通过,要想进入隧道的人在隧道口排队等待,试用信号量与P、V操作编写游人到达隧道口,通过隧道并从另一端离开隧道口的程序。

答:设隧道一边的信号量为S1和隧道另一边的信号量为S2,它们的初值分别为: S1=1;S2=0;

248752581.doc

18

隧道一边P(S1)过隧道V(S2)隧道另一边P(S2)过隧道V(S1)

7. 有P1、P2、P3三个进程共享一个表格F,P1对F只读不写,P2对F只写不读,P3对F先读后写。进程可同时读F,但有进程写时,其它进程不能读和写。用信号量和P、V操作编写三进程能正确工作的程序。

答:

有P1、P2、P3三个进程共享一个表格F,P1对F只读不写,P2对F只写不读,P3对F先读后写。进程可同时读F,但有进程写时,其他进程不能读和写。用信号量和P、V操 作。

semaphore read(1),write(1); p1 {

p(read); 读; v(read); } p2 {

p(read); p(write); 写; v(write); v(read); } p3 {

p(write); 读; p(read); 写; v(read); v(write); }

248752581.doc 19

练习题(五)

Ⅰ 问答题

1. 存储管理的主要功能是什么? 答:

(1)主存空间的分配与回收。系统按照一定的算法把某一空闲的存储空间分配给作业或进程;用户不需要时,及时回收,以供其它用户程序使用。

(2)地址转换(地址重定位)。把作业地址空间中使用的逻辑地址转换成内存空间中的物理地址。

(3)主存空间的共享和保护。可用的主存空间可由两个或多个进程共享。同时要保护系统程序区不被用户有意或无意的侵犯,不允许用户程序读写不属于自己地址空间的数据,避免各道程序间相互干扰。特别是当一道程序发生错误时,不致于影响其它程序的运行。

(4)主存空间的扩充。使用虚拟存储或自动覆盖技术提供比实际内存更大的空间。

2. 指出逻辑地址与物理地址的不同点。

答:用户的源程序一旦编译之后,每个目标模块都以0为基地址进行编址,这种地址称为逻辑地址或相对地址。为了便于CPU访问,内存中的每个物理存储单元都有一个编号,这个编号称为内存地址,即物理地址(也称绝对地址)。

3. 何谓地址转换(重定位)?有哪些方法可以实现地址转换?

答:当作业运行时,不能用逻辑地址在内存中读取信息,必须把作业地址空间中使用的逻辑地址转换成内存空间中的物理地址,这种转换称为地址转换。

实现地址转换的方法有:静态地址转换和动态地址转换。

4. 简述什么是覆盖?什么是交换?覆盖和交换的区别是什么?

答:覆盖技术主要是指同一主存区可以被不同的程序段重复使用。交换,就是系统根据需要把主存中暂时不运行的某个(或某些)作业部分或全部移到外存,而把外存中的某个(或某些)作业移到相应的主存区,并使其投入运行。

交换是由操作系统完成,用户并不知道。操作系统按一定的策略采用“强占”和“礼让”的方法,把内存部分内容暂时放到硬盘交换区中。覆盖是由用户控制,操作系统提供覆盖机制,用户给出该程序的覆盖结构。覆盖机构将整个作业分为常驻和覆盖两部分。子程序不会同时调入内存。用户只要将最大的子程序作为覆盖区告诉系统即可。

5. 简述固定分区存储管理和可变分区存储管理的区别。固定式分区中可采用哪几种办法使主存空间的利用率得到改善? 答:

(1)固定分区存储管理:分区大小是事先固定的,因而可容纳作业的大小受到限制,而且当用户作业的地址空间小于分区的存储空间时,造成存储空间浪费。

(2)可变分区存储管理:不是预先将内存划分分区,而是在作业装入内存时建立分区,使分区的大小正好与作业要求的存储空间相等。这种处理方式使内存分配有较大的灵活性,也提高了内存利用率。但是随着对内存不断地分配、释放,操作会引起存储碎片的产生。

固定式分区中可采用以下办法使主存空间的利用率得到改善。 (1)划分分区时按分区的大小顺序排列。 (2)根据作业的大小和频繁程度来划分分区。

(3)按照作业对主存空间的需求量排成多个作业队列,规定每个作业队列中的各作业

248752581.doc 20

答:

一般把I/O控制方式分为程序直接I/O控制方式、程序中断I/O控制方式、直接存储访问(DMA)I/O控制方式和I/O通道控制方式

程序直接I/O控制方式CPU绝大部分时间都在处于等待I/O数据传输完成的循环测试之中,极大地浪费了CPU资源;另外设备与设备之间也只能串行工作。但是,它的优点是管理简单,在CPU速度不是很高而且外围设备种类不多的情况下常被采用。

程序中断I/O控制方式中断处理方式优点是大大提高了CPU的利用率。但中设备每传输一个单位的数据,CPU都要对其进行一次中断处理,仍占用CPU时间。若系统支持的I/O设备很多,CPU仍将陷入繁忙的I/O事务处理中。

直接存储访问I/O控制方式它比中断驱动方式,减少了CPU对I/O的干预,进一步提高了CPU和I/O设备的并行能力。只能完成简单的数据传输,不能满足更复杂的I/O操作要求。

I/O通道控制方式可以做到一个通道控制多台设备与内存交换数据,从而进一步减轻CPU的工作负担,增加了计算机系统的并行工作程度,使现代计算机系统功能不断完善、性能不断提高。增加额外进程开销和硬件开销。

8.什么叫“与设备无关性”?如何做到“与设备无关性”?

答:为实现用户程序与物理设备的无关性,系统规定,在应用程序(用户程序)中不要直接使用物理设备名(或设备的物理地址),而只能使用逻辑设备名,与具体设备无关,这就是所谓与设备的无关性。为了实现与设备的无关性,使用系统设置的逻辑设备和物理设备影像表,可以实现从逻辑设备名到物理设备名的转换。

9.空闲磁盘空间可用空闲表或位示图来跟踪。假设磁盘地址需要D位,一个磁盘有B个块,其中有F个空闲。在什么条件下,空闲表占用的空间少于位图?设D为16位,请计算空闲磁盘空间的百分比。

答:磁盘位示图需要B位,而空闲快表需要DF位。当DF

当D=16时,空闲块表较短,空闲磁盘的空间百分比不大于6%。

10. 一个空闲空间位示图开始时和磁盘分区首次格式化类似,比如1000 0000 0000 0000(首块被根目录使用),系统总是从最小编号的块开始寻找空闲块,所以在有6块的文件A写入之后,该位示图为1111 1110 0000 0000。请说明在完成下列每一个附加动作之后位示图的状态:

(1)写入有5块的文件B。 (2)删除文件A。

(3)写入有8块的文件C。 (4)删除文件B。 答:

(1)写入有5块的文件B。 1111 1111 1111 0000 (2)删除文件A。 1000 0001 1111 0000 (3)写入有8块的文件C。 1111 1111 1111 1100 (4)删除文件B。 1111 1110 0000 1100

248752581.doc

31

11.某个文件系统使用2KB的磁盘块,而中间文件大小值为1KB。如果所有的文件都是正好1KB大,那么浪费掉的磁盘空间的比例是多少?你认为一个真正的文件系统所浪费的空间比这个数值大还是小?请说明理由。

答:如果所有的文件都是正好1KB,那么浪费的磁盘空间的比例是50%。一个真正的文件系统所浪费的空间比这个数值大,因为在文件操作过程中,系统可能会产生

Ⅱ 单项选择题

C B A D D A C A C D A B A D Ⅲ 思考题

1.为什么打印机的输出文件在打印前通常都假脱机输出在磁盘上?

答:假脱机是多道程序系统中处理专用I/O设备的一种方法。它创建一个特殊的进程,称为守护进程,以及一个特殊目录,称为假脱机目录。为了打印一个文件,一个进程首先要生成需要打印的整个文件并把它放在假脱机目录里。由守护进程打印该目录下的文件,该进程是允许使用打印机设备文件的唯一进程。通过保护设备文件来防止用户直接使用,可以解决某些进程不必要地长期空占打印机的问题

2.一个计算机制造商决定重新设计Pentium硬盘的分区表以提供四个以上的分区。这一变化有什么后果?

练习题(八)

? 简答题 Ⅱ 选择题

Ⅲ 思考题

1.根据你使用计算机的经历,谈谈你对操作系统安全等级的体会。 2.你认为能否设计一种安全的操作系统完全避免计算机病毒的攻击吗?

248752581.doc 32

只能依次装入对应的指定分区中。

6. 试述可变分区管理中的最先适应算法、最佳适应算法以及最坏适应算法的原理,并比较其优缺点。

答:①首次(最先)适应分配算法是将未分配分区表按地址递增的顺序排列,每次分配时,从空闲分区表的第一个表目开始顺序查找空闲分区表,找到第一个能满足作业长度要求的空闲区,分割这个空闲区,把能够满足要求的空闲区分配给作业。

该算法简单,尽可能地利用了低地址空间,把较大的空闲分区保留在内存高端,有利于大作业的分配。但随着低端分区不断地划分而产生过多的小地址碎片,每次分配时查找时间开销会增大,同时降低了主存空间的利用率。

②最佳适应分配算法是将未分配分区表按照分区的大小从小到大进行排列,每次分配时,自表头顺序开始查找到第一个满足要求的空闲分区。这样可保证不去分割一个更大的区域,使装入大作业时比较容易得到满足。

该算法的特点是可以解决大作业的分配问题;但是容易产生不可利用的小空闲区,降低了主存空间的利用率。

③最差(坏)适应分配算法是将未分配分区表按照分区的大小从大到小进行排列,每次分配时,只要看第一个分区能否满足作业要求,若可以,将该分区分配给作业使用,否则作业不能执行。

该算法的优点是查找效率很高;可使剩下的空闲区不至于太小,对中、小作业有利,对于大作业不利。

7. 请比较分页式存储管理和分段式存储管理。 答:(1)分页是信息的物理单位,与源程序的逻辑结构无关,用户不可见。分页是为了实现离散的分配方式,以减少主存“碎片”,提高主存的利用率。分段是信息的逻辑单位,由源程序的逻辑结构所决定,段长是根据用户需要来规定,段起始地址可以从任何主存地址开始。分段的目的是为了能更好地满足用户的需要。

(2)页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。段的长度却不固定,取决于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。

(3)分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需要利用一个记忆符,即可表示一个地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名(号),又需给出段内地址。

8. 分页式存储管理中,决定页面大小的主要因素是什么?试分析大页面与小页面各自的优点。 答:

(1)页面大小的设置主要因素是与系统的硬件有关。

(2)如果页面较小,虚存的页面数就增加,页表也随着扩大,占用的空间多,但内碎片小,浪费少;如果页面较大,可以减少页表所耗费的存储空间,有利于提高I/O的效率,但内部碎片大,浪费多。

9. 比较内存管理中FIFO、LRU、OPT三种页面淘汰算法的优缺点。 答:

(1)OPT 是一种理论上的算法,实现困难,它用来理论分析其它算法的优劣性。

248752581.doc 21

(2)FIFO算法实现简单,但有时实现效率低,甚至出现异常现象。 (3)LRU算法是一个相当好的页面置换算法,但实现时不太容易。

10. 为什么要采用虚拟存储器管理?其工作原理和理论依据又是什么?实现虚拟存储

器必须要有哪些硬件/软件设施支撑。 答:

(1)采用虚拟存储器是为了解决小主存运行大作业的问题。

(2)根据局部性原理,一个作业在运行之前,仅将当前要运行的那部分页面或段,先装入内存便可启动运行,其余部分暂时留在磁盘上。程序在运行时如果它所要访问的页(段)已调入内存,便可继续执行下去;但如果程序所要访问的页(段)尚未调入内存,此时利用操作系统所提供的请求调页(段)功能,将它们调入内存,以使进程能继续执行下去。当调入页(段)时,如果内存已满,无法再装入新的页(段),则还须再利用页(段)的置换功能,将内存中暂时不用的页(段)调出至磁盘上,腾出足够的内存空间后,再将所要访问的页(段)调入内存,使程序继续执行下去。

(3)主要使用请求分页中断和请求分段两种方法实现。

硬件:请求分页(段)的页(段)表机制;缺页中断机构;地址转换机构等 软件:请求调页;页面置换

11. 什么是请求页式管理?试设计和描述一个请求页式管理时的内存页面分配和回收算法(包括缺页处理部分)。

答:请求分页存储管理把作业分成大小相等的若干页,称为虚页。把主存分成与页大小相等的若干块,称为实块(物理块)。对每个作业限定分给它的主存块数。在进程开始运行之前,不是装入全部作业,而是先把作业的部分页面装入主存就可以开始运行,作业的其它部分被放在外存中等待需要时才被调入内存。

在请求分页系统中,当进程需要访问某条指令或某个数据时,硬件地址转换机构将根据逻辑地址中的页号去检索内存中的页表,并根据相应页表项的状态位来判断该页是否已经在内存中,若已经装入内存,则可从页表项中得到内存块号,并与页内偏移地址组合成该指令或数据的物理地址,同时还需要修改页表项中的访问字段,若是写操作则还需修改页表中的修改字段;若需要的页没有在内存,则还需要缺页中断机构来产生中断,转向缺页中断处理程序。

12. 请求页式管理中有哪几种常用的页面置换算法?试比较它们的优缺点。 答:

(1)最佳置换算法OPT可保证获得最低的缺页中断率,是一种理想化的置换算法,性能最好。它要求操作系统能知道进程“将来”页面的使用情况,但这是不可能实现的,因为程序的执行是不可预测的。

(2)先进先出页面置换算法FIFO总是淘汰最先进入内存的页面,该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老页面。但该算法与进程实际运行的规律不相适应,没有考虑到动态变化情况,对于某一特定的页面走向,先进先出算法会出现缺页中断率随着被分配的内存块增加反而上升的反常现象即Belady现象。

(3)最近最久未使用置换算法是选择最近最久未使用的页面予以淘汰。LRU算法是一个相当好的页面置换算法。

13. 什么是段式管理?它与页式管理有何区别?

248752581.doc

22

答:段式管理是:

(1)在段式存储管理方式中,作业的地址空间按照程序的自然逻辑关系分成若干段,每个段定义了一组逻辑信息,各段长度是不等的,每个段都有自己的名字,都是从0开始编址的一段连续的地址空间。

(2)段系统的逻辑地址由段号s和段内地址d两部分组成的,分段逻辑地址表示为:[段号,段内地址]。

(3)段式存储管理的实现可以基于可变分区存储管理的原理,以作业的每一个分段分配一个连续的主存空间。段与段在内存中可以不相邻接,也实现了离散分配。

(4)主存的分配与回收采用动态重定位。若装入作业的某段信息找不到足够大的空闲区,可采用移动技术,合并分散的空闲区。

分页和分段的区别有:

(1)分页是信息的物理单位,与源程序的逻辑结构无关,用户不可见。分段是信息的逻辑单位,由源程序的逻辑结构所决定,段长是根据用户需要来规定。

(2)页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的。段的长度不固定,取决于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。

(3)分页的作业地址空间是一维的。分段的作业地址空间是二维的。

14. 列出存储管理中使用的存储保护方法,并说明每种存储管理都使用哪种存储保护法?

答:常用的界地址保护有两种。 (1)上下界保护和地址检查机构

(2)基址、限长寄存器和动态地址转换机构 存储管理方式 单一连续 固定分区 可变分区 基本分页 请求分页 基本分段 请求分段 使用存储保护方法 界地址 上下界 基址、限长寄存器 地址越界 地址越界 地址越界 地址越界

15. 在段式存储管理中实现程序共享时,共享段的段号是否一定要相同?为什么? 答:不用。几道作业共享的例行程序可放在一个段中,只要让各道作业的共享部分有相同的基址/限长值就行了,共享的段号不一定相同。

16. 叙述段页式存储器的主要优缺点。

答:段页式存储分配方式既照顾到了用户共享和使用方便的需求,又考虑到了主存的利

用率,提高了系统的性能。

段页存储分配方式的空间浪费要比页式管理的多。作业各段的最后一页都有可能浪费一部分空间。另外段表和页表占用的空间都比页式和段式的多,这样就增加了系统开销。

17. 在请求分页虚拟存储系统中,若已测得时间利用率为:CPU20%、分页磁盘97.7%、

248752581.doc

23

其它外设50%。试问哪些措施可以改善CPU 的利用率? 答:更换速度更快的CPU; 更换更大容量的分页磁盘; 增加内存中的用户进程数;

采用更快的I/O设备;

挂起内存中的谋个或某些进程。

18. 如果主存中某页正在与外围设备交换信息,那么,发生缺页中断时,可以将该页淘

汰吗?为什么?出现这种情况时,你能提出什么样的处理办法? 答:不能。因为容易造成程序出错或系统崩溃。

若出现这种情况,首先查找系统有没有空闲页面,若有调入所缺的页。若没有,执

行页面置换算法。

19. 说明内碎片与外碎片的区别。

答:内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空

间;外碎片指的是还没有被分配出去(不属于任何进程),但由于太小以至无法将它分配给申请内存的新进程

20. 为什么页面的大小总是2的幂? 答:因为计算机采用二进制算法工作。

Ⅱ 单项选择题

C D C A C C A A D A C B C C D D A D A A B Ⅲ 应用题

1. 在可变分区存储管理下,按地址排列的内存空闲区为:10K、4K、20K、18K、7K、9K、12K 和15K。对于下列的连续存储区的请求:(1)12K、10K、9K,(2)12K、10K、15K、18K。试问:使用首次适应算法、最佳适应算法、最差适应算法和循环首次适应算法,哪个空闲区被使用?

答:(1)12K、10K、9K

首次适应算法 20K,10K,18K 循环首次适应算法 20K,18K,9K 最佳适应算法 12K,10K,9K 最差适应算法 20K,18K,15K (2)12K、10K、15K、18K。

首次适应算法 20K,10K,18K,无 循环首次适应算法 20K,18K,15K,无 最佳适应算法 12K,10K,15K,18K 最差适应算法 20K,18K,15K,无

2. 设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16 页,每页2048 字节,内存总共有8 个存储块。试问逻辑地址至少应为多少位?内存空间有多大?

答:

2的4次方=16,所以页号占4位,页长为2048=2的11次方,所以页内地址占11位,

248752581.doc

24

逻辑地址15位。

存储块有8个,每个存储块对应2048B大小的页框,所以主存空间为16KB

3. 在一分页存储管理系统中,逻辑地址长度为16 位,页面大小为4096 字节,现有一逻辑地址为2F6AH,且第0、1、2 页依次存在物理块5、8、11 号中,问相应的物理地址为多少?

答:

解:由题目所给给条件可知,本页式系统的逻辑地址结构为:

页号P,页内位移W。页面大小为4096 字节,页内地址占12位,页号占4位. 逻辑地址2F6AH的二进制表示如下: P W

0010 111101101010

由此可知逻辑地址2F6AH的页号为2,该页存放在第11号物理块中,用十六进制表示志号为B,所以物理地址为BF6AH. 4. 在一次请求页式存储管理系统中,进程P共有5页。访问串为:3,2,1,0,3,2,4,3,2,1,0,4时,试采用LRU置换算法和FIFO置换算法,计算当分配给该进程的页面分别为3和4时,访问过程中发生的缺页次数和缺页率,比较所得的结果。

答: FIFO 页面访问次序 内存块数=3 是否缺页 3 3 2 2 3 1 1 2 3 0 0 1 2 3 3 0 1 2 2 3 0 4 4 2 3 3 4 2 3 2 4 2 3 1 1 4 2 0 0 1 4 4 0 1 4 √ √ √ √ √ √ √ √ √ F=9/12=3/4

LRU

页面访问次序 内存块数=3 是否缺页 3 3 2 2 3 1 1 2 3 0 0 1 2 3 3 0 1 2 2 3 0 4 4 2 3 3 3 4 2 2 2 3 4 1 1 2 3 0 0 1 2 4 4 0 1 √ √ √ √ √ √ √ √ √ √ F=10/12=5/6

FIFO 页面访问次序 内存块数=4 是否缺页 3 3 2 2 3 1 1 2 3 0 0 1 2 3 3 0 1 2 3 2 0 1 2 3 4 4 0 1 2 3 3 4 0 1 2 2 3 4 0 1 1 2 3 4 0 0 1 2 3 4 4 0 1 2 √ √ √ √ √ √ √ √ √ √ F=10/12=5/6

248752581.doc

25

本文来源:https://www.bwwdw.com/article/e21v.html

Top