第一章

为什么说操作系统实现了对计算机资源的抽象?

OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。

试说明推动多道批处理系统形成和发展的主要动力是什么?

主要动力来源于四个方面的社会需求与技术发展:

(1)不断提高计算机资源的利用率;

(2)方便用户;

(3)器件的不断更新换代;

(4)计算机体系结构的不断发展。

试从交互性、及时性以及可靠性方面将分时系统与实时系统进行比较

(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微秒。

(2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。

(3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性

是什么原因使操作系统具有异步性特征?

操作系统的异步性体现在三个方面:一是进程的异步性,进程以人们不可预知的速度向前推进,二是程序的不可再现性,即程序执行的结果有时是不确定的,三是程序执行时间的不可预知性,即每个程序何时执行,执行顺序以及完成时间是不确定的。

试说明推动传统OS演变为现代OS的主要因素是什么?

系统安全、网络的功能和服务、支持多媒体

第二章

程序并发执行时为什么会失去封闭性和可再现性?

程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改变,致使程序运行失去了封闭性,也会导致其失去可再现性。

在操作系统中为什么要引入进程的概念? 它会产生什么样的影响?

为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和描述,在操作系统中引入了进程概念。

试从动态性、并发性和独立性上比较进程和程序。

(1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,由撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合,是静态实体

(2)并发性是进程的重要特征,同时也是OS 的重要特征。引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。

(3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。对于未建立任何进程的程序,不能作为独立单位参加运行

试说明进程在三个基本状态之间转换的典型原因。

(1)就绪状态→执行状态:进程分配到CPU资源

(2)执行状态→就绪状态:时间片用完

(3)执行状态→阻塞状态:I/O请求

(4)阻塞状态→就绪状态:I/O完成

为什么要引入挂起状态? 该状态有哪些性质?

引入挂起状态处于五种不同的需要: 终端用户需要,父进程需要,操作系统需要,对换需要和负荷调节需要。处于挂起状态的进程不能接收处理机调度。

试从调度性、并发性、拥有资源及系统开销方面对进程和线程进行比较。

a. 调度性。在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程,在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;

b. 并发性。在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使OS具有更好的并发性

c. 拥有资源。无论是传统的操作系统,还是引入了线程的操作系统,进程始终是拥有资源的一个基本单位,而线程除了拥有一点在运行时必不可少的资源外,本身基本不拥有系统资源,但它可以访问其隶属进程的资源;

d. 开销。由于创建或撤销进程时,系统都要为之分配和回收资源,如内存空间等,进程切换时所要保存和设置的现场信息也要明显地多于线程,因此,操作系统在创建、撤消和切换进程时所付出的开销将显著地大于线程。

第三章

高级调度与低级调度的主要任务是什么? 为什么要引入中级调度?

高级调度的主要任务是根据某种算法,把外存上处于后备队列中的那些作业调入内存。 低级调度是保存处理机的现场信息,按某种算法先取进程,再把处理器分配给进程。引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。使那些暂时不能运行的进程不再占用内存资源,将它们调至外存等待,把进程状态改为就绪驻外存状态或挂起状态。

在选择调度方式和调度算法时,应遵循的准则是什么?

(1)面向用户的准则:周转时间短、响应时间快、截止时间的保证、优先权准则。

(2)面向系统的准则:系统吞吐量高、处理机利用率好、各类资源的平衡利用。

试比较FCFS和SJF两种进程调度算法。

相同点:两种调度算法都可以用于作业调度和进程调度。

不同点:FCFS调度算法每次都从后备队列中选择一个或多个最先进入该队列的作业,将它们调入内存、分配资源、创建进程、插入到就绪队列。该算法有利于长作业/进程,不利于短作业/进程。SJF算法每次调度都从后备队列中选择一个或若干个估计运行时间最短的作业,调入内存中运行。该算法有利于短作业/进程,不利于长作业/进程。

何谓死锁? 产生死锁的原因和必要条件是什么?

死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进
产生死锁的原因为竞争资源和进程间推进顺序非法。其必要条件是:互斥条件、请求和保持条件、不剥夺条件、环路等待条件。

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

解决死锁的四种方法即预防、避免、检测和解除死锁中,预防死锁最容易实现; 避免死锁使资源的利用率最高。

在银行家算法的例子中,如果P0发出的请求向量由Request(0, 2, 0)改为Request(0, 1, 0),问系统可否将资源分配给它?

(1)可以。银行家算法各种资源数量分别为10、5、7,在T0时刻的资源分配如图所示:   (2)具体分析如下: ① Request0(0,1,0)<=Need0(7,4,3); ②Request0(0,1,0)<=Available(2,3,0); 系统先假定可为P0分配资源,并修改Available0,Allocation0和Need0向量,由此形成 的资源变化情况如下图所示:

(3)P0请求资源:P0发出请求向量Requst0(0,1,0),系统按银行家算法进行检查:

① Requst0(0,1,0)<=Need0(7,4,3);

②Requst0(0,1,0)<=Available(2,3,0);

③ 系统暂时先假定可为P0分配资源,并修改______________有关数据,如下图所示

综上所述系统可以将资源分配给它

在银行家算法中,若出现下述资源分配情况,试问:


(1) 该状态是否安全?
(2) 若进程P2提出请求Request(1, 2, 2, 2)后,系统能否将资源分配给它?

(1)安全,因为存在安全序列{P0,P3,P4,P1,P2}

(2)系统能分配资源,分析如下。 ① Request(1,2,2,2) <=Need2(2,3,5,6); ② Request(1,2,2,2) <=Available2(1,3,5,4)改成Available2(1,6,2,2); ③系统先假定可为P2分配资源,并修改Available2,Allocation2和Need2向量, 由此形成的资源变化情况如下图所示:   ④ 再利用安全性算法检查此时系统是否安全。如下图由此进行的安全性检查得知,可以找到一个安全序列{P2,P0,P1,P3,P4}。

第四章

何谓装入时动态链接? 装入时动态链接方式有何优点?

装入时动态链接是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的一种链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找相应的外部目标模块,把它装入内存中,并修改目标模块中的相对地址。

何谓运行时动态链接? 运行时动态链接方式有何优点?

运行时动态链接是指对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行的链接。也就是,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。

为什么要引入动态重定位? 如何实现?

(1)程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。引入重定位的目的就是为了满足程序的这种需要。

(2)要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。

基于离散分配时所用的基本单位不同,可将离散分配分为哪几种?

基于离散分配时所用的基本单位不同,可将离散分配分为:

(1)分页存储管理方式。在该方式中,将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”。典型的页面大小为1KB。相应的。也将内存空间分为若干个物理块或页框,页和块的大小相同。这样可将用户程序的任一页放入任一物理块中,实现了离散分配。

(2)分段存储管理方式。这是为了满足用户要求而形成的一种存储管理方式。它把用户程序的地址空间分为若干个大小不同的段,每段可定义一组相对完整的信息。在存储器分配时,以段为单位,这些段在内存中可以不相邻接,所以也同样实现了离散分配。

(3)段页式存储管理方式。这是分页和分段两种存储管理方式结合的产物。他同时具有两者的优点,是目前应用较广泛的一种存储管理方式。

什么是页面? 什么是物理块? 页面的大小应如何确定?

(1)页面。分页存储管理将进程的逻辑空间分成若干个页,并为各页加以编号,从0开始,如第0页、第1页等。

(2)物理块。相应的,也把内存的物理地址空间分成若干个块,同样也为它们加以编号,如0#块、1#块等等。

(3)页面大小。在分页系统中,若选择过小的页面大小,虽然一方面可以减小内存的碎片,起到减少内存碎片总空间的作用,有利于内存利用率的提高,但另一方面却会造成每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存。此外,还会降低页面的换进换出的效率。然而,如果选择的页面过大,虽然可以减少页表的长度,提高页面换进换出的效率,但却又会使页内碎片增大。因此,页面的大小应选择适中,且页面大小应是2的幂,通常为1KB~8KB。

分页和分段存储管理有何区别?

(1)页是信息的物理单位,采用分页存储管理方式是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页仅仅只是系统管理上的需要,完全是系统的行为,多用户是不可见的。而段是信息的逻辑单位。它通常包含的是一组意义相对完整的信息。分段的目的主要在于能更好地满足用户的需要。

(2)页的大小固定而且由系统决定,在采用分页存储管理系统中,在硬件结构上,就是把用户程序的逻辑地址划分为页号和页内地址两部分,是直接由硬件实现的,因而在每个系统中只能有一种大小的页面。而段的大小不固定,通常由编译程序根据信息的性质来划分。

(3)分页用户程序地址空间是一维的,分页完全是系统的行为,故在分页系统中,用户程序的地址是属于单一的线性地址空间,程序员只需利用一个记忆符即可表示一个地址。而分段是用户的行为,故在分段系统中,用户程序的地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。

试全面比较连续分配和离散分配方式。

连续分配方式不需要额外的硬件支持,且实现算法相对简单。但是在很多情况下会造成内存利用率低,系统吞吐量小和CPU利用率低等情况,虽然可以通过紧凑等方式有所调节,但是紧凑也会造成很大的系统开销。离散分配方式需要额外的硬件支持,且实现的算法相对比较复杂,但是出于用户或操作系统的角度,离散分配方式在系统性能上或实现功能上明显比连续分配更灵活。比如信息的保护和共享等等方面,离散比连续更加容易实现

第五章

什么是程序运行时的时间局限性和空间局限性?

时间局限性:如果程序中的某条指令被执行,则不久以后该指令可能再次执行,如果数据被访问过,则不久后该数据可能再次被访问; 

空间局限性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围之内。

虚拟存储器有哪些特征?其中最本质的特征是什么? 

虚拟存储器有多次性、对换性、虚拟性三大特征。最本质的特征是虚拟性。

试比较缺页中断机构与一般的中断,它们之间有何明显的区别?

(1)一般中断只需要保护现场然后就直接跳到需及时处理的地方。

(2) 缺页中断除了保护现场之外,还要判断内存中是否有足够的空间存储所需的页或段,然后再把所需页调进来再使用。

在请求分页系统中,常采用哪几种页面置换算法?

采用的页面置换算法有:最佳置换算法和先进先出置换算法,最近最久未使用(LRU)置换算法,Clock置换算法,最少使用置换算法(LFU),页面缓冲算法等。

在一个请求分页系统中,采用FIFO页面置换算法时,假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果。

当分配给该作业的物理块数M为3时,缺页10次,缺页率: 10/12=5/6; 当分配给该作业的物理块数M为4时,缺页8次,缺页率: 8/12=2/3. —-以上解答出错(若采用LRU算法则是正确的)。正确解法见下面: 答:当分配给该作业的物理块数M为3时,缺页9次,缺页率: 9/12=3/4; 当分配给该作业的物理块数M为4时,缺页10次,缺页率: 10/12=5/6.

实现LRU算法所需的硬件支持是什么?

寄存器、栈。

当前可以利用哪几种方法来防止“抖动”?

1. 采取局部置换策略

在页面分配和置换策略中,如果采取的是可变分配方式,则为了预防发生“抖动”,可采取局部置换策略。

2. 把工作集算法融入到处理机调度中

当调度程序发现处理机利用率低下时,它将试图从外存调入一个新作业进入内存,来改善处理机的利用率。

3. 选择暂停的进程

当多道程序度偏高时,已影响到处理机的利用率,为了防止发生“抖动”,系统必须减少多道程序的数目。

4. 利用“L=S”准则调节缺页率

Denning于1980年提出了“L=S”的准则来调节多道程序度,其中L是缺页之间的平均时间,S是平均缺页服务时间,即用于置换一个页面所需的时间。

如果是L远比S大,说明很少发生缺页,磁盘的能力尚未得到充分的利用;反之,如果是L比S小,则说明频繁发生缺页,缺页的速度已超过磁盘的处理能力。

只有当L与S接近时,磁盘和处理机都可达到它们的最大利用率。理论和实践都已证明,利用“L=S”准则,对于调节缺页率是十分有效的。

第六章

简要说明I/O软件的四个层次的基本功能

中断处理程序:用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后恢复现场,并返回到被中断的进程

设备驱动程序:与硬件直接有关,用来具体实现系统对设备发出的操作指令驱动I/O设备工作

设备独立性软件:用于实现用户程序与设备驱动器的统一接口、设备命令、设备保护,以及设备分配与释放等

用户层I/O软件:用于实现用户与I/O设备交互

为什么说中断是OS赖以生存的基础?

中断在操作系统中有着特殊重要的地位,它是多道程序得以实现的基础,没有中断,就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。另一方面,中断也是设备管理的基础,为了提高处理机的利用率和实现CPU和I/O设备并执行,也必需有中断的支持。中断处理程序是I/O系统中最低的一层,它是整个I/O系统中最低的一层。

有哪几种I/O控制方式? 各适用于何种场合?

I/O控制方式:程序I/O方式、中断驱动I/O控制方式、DMAI/O控制方式、I/O通道控制方式。

程序I/O方式适用于早期的计算机系统中,并且是无中断的计算机系统;

中断驱动I/О控制方式是普遍用于现代的计算机系统中;

DMAI/O控制方式适用于I/O设备为块设备时在和主机进行数据交换的一种I/O控制方式;

当I/O设备和主机进行数据交换是一组数据块时通常采用I/O通道控制方式,但此时要求系统必须配置相应的通道及通道控制器

何谓设备虚拟? 实现设备虚拟时所依赖的关键技术是什么?

通过虚拟技术可将一台独占设备变换成若干台逻辑设备,供若干个用户(进程)同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。其实现所依赖的关键技术是SPOOLING技术。

引入缓冲的主要原因是什么?

缓和CPU与I/O设备之间速度不匹配的矛盾;减少对CPU的中断频率:放宽对中断响应时间的限制;解决数据力度不匹配的问题;提高CPI和I/O设备之间的并行性。

磁盘访问时间由哪几部分组成? 每部分时间应如何计算?

磁盘访问时间由寻道时间Ts、旋转延迟时间Tr、传输时间Tt三部分组成。(1 )Ts 是启动磁臂时间s与磁头移动n条磁道的时间和,即Ts = m × n + s。(2)Tr是指定扇区移动到磁头下面所经历的时间。硬盘15000r/min时Tr为 2ms;软盘300或600r/min 时Tr 为50~100ms.(3)Tt 是指数据从磁盘读出或向磁盘写入经历的时间。Tt 的大小与每次读/写的字节数b和旋转速度有关:Tt =b/rN。

目前常用的磁盘调度算法有哪几种? 每种算法优先考虑的问题是什么?

目前常用的磁盘调度算法有先来先服务、最短寻道时间优先及扫描等算法

(1)先来先服务算法优先考虑进程请求访问磁盘的先后次序;
(2)最短寻道时间优先算法优先考虑要求访问的磁道与当前磁头所在磁道距离是否最近;
(3)扫描算法考虑欲访问的磁道与当前磁道间的距离,更优先考虑磁头当前的移动方向

第七章

文件系统的模型可分为三层,试说明其每一层所包含的基本内容。

(1)最低层为对象及其属性说明,主要包括物理文件相关功能,包括文件和目录、盘存储空间等对象。

(2)中间层是对对象进行操纵和管理的软件集合,是文件系统的核心部分,主要是逻辑文件相关功能。包括文件存储空间管理、文件目录管理、逻辑文件到物理文件的映射、文件读写管理及文件共享与保护等诸多功能。

(3)最高层是文件系统提供给用户的接口,分为命令接口、图形化用户接口、程序接口(C语言函数形式)和等三种类型。

何谓文件的逻辑结构? 何谓文件的物理结构?

文件的逻辑结构是指从用户的观点出发所观察到的文件组织形式,也就是用户可以直接处理的数据及其结构,它独立于物理特性,而文件的物理结构则是指文件在外存上的存储组织形式,与存储介质的存储性能有关。

通过哪两种方式来对固定长记录实现随机访问?

(1)通过文件中记录的位置

在文件中的每一个记录,可用从0到N-1的整数来标识,即用一个整数来唯一地标识一个记录。对于定长记录文件,如果要查找第i个记录,可直接根据下式计算,获得第i个记录相对于第一个记录首址的地址。由于获得任何记录地址的时间都非常短,故可利用这种方法对定长记录实现随机访问。

(2)利用关键字

用户必须指定一个字段作为关键字,通过指定的关键字来查找该记录。当用户给出要检索记录的关键字时,系统将利用该关键字顺序地从第一个记录开始,与每一个记录的关键字进行比较,直到找到匹配的记录。

可以采取什么方法来实现对变长记录文件进行随机检索?

为变长记录文件建立一张索引表,索引表中记录每一个变长记录项的地址。因为检索索引表是对定长文件进行检索,就可以实现随机检索。

系统如何利用访问控制表和访问权限表来实现对文件的保护?

当进程第一次试图访问一个对象时,必须先检查访问控制表,查看是否有权访问该对象。

如果无则拒绝访问,并构成一个例外异常事件;否则便允许访问,并为之建立访问权限,以便快速验证其访问的合法性。当进程不再访问该对象时便撤销该访问权限。

第八章

为了快速访问,又易于更新,当数据为以下形式时,应选用何种文件组织方式?
(1) 不经常更新,经常随机访问;
(2) 经常更新,经常按一定顺序访问;
(3) 经常更新,经常随机访问。

以上三种宜分别采用

(1)顺序结构

(2)xx顺序结构

(3)xx结构的组织方式。

在UNIX 中,如果一个盘块的大小为1 KB,每个盘块号占4 个字节,即每块可放256个地址。请转换下列文件的字节偏移量为物理地址:
(1)  9999;(2)  18000;(3)  420000。

首先将逻辑文件的字节偏移量转换为逻辑块号和块内偏移量,就是将[字节偏移量]/[盘块大小],商为逻辑块号,余数是块内偏移量。在FCB中,第0-9个地址为直接地址,第10个为一次间接地址,第11个地址为二次间接地址,第12个地址为三次间接地址。 再将文件的逻辑块号转换为物理块号。使用多重索引结构,在索引节点中根据逻辑块号通过直接索引或间接索引找到对应的物理块号。

(1)余783,则逻辑块号为9,直接索引第9个地址得到物理块号,块内偏移地址为783。

(2)余592,则逻辑块号为10<17<10+256,通过一次间接索引在第10个地址可得到物理块号,块内偏移地址为592。

(3)余160,则逻辑块号为10+256<410,通过二次间接索引在第11个地址可得到一次间址,再由此得到二次间址,再找到物理块号,其块内偏移地址160。

什么是索引文件? 为什么要引入多级索引?

索引文件是指当记录为可变长度时,通常为之建立一张索引表,并为每个记录设置一个表项构成的文件。通常将索引非顺序文件简称为索引文件。索引是为了是用户的访问速度更快,多级索引结构可以有效的管理索引文件,可根据用户的访问情况多级处理。

有一计算机系统利用图8-19所示的位示图来管理空闲盘块。盘块的大小为1 KB,现要为某文件分配两个盘块,试说明盘块的具体分配过程。

分配量个盘块的过程如下:

⑴顺序扫描位示图,从中找到第一个值为0的二进制位,得到行号i=3,列号j=3。

⑵将找到的二进制位转换成对应盘块号。盘块号为: b=(3-1)*16+3=35;

⑶修改位示图,令map[3,3]=1,并将该盘块分配出去。 类似地,可使用相同的方法找到第二个值为0的二进制位,得到行号i=4,列号j=7,其对应的盘块号为55,令map[i,j]=1,并将该盘块分配出去。

某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理盘空间,试问:
(1) 位示图需多少个字?
(2) 第i字第j位对应的块号是多少?
(3) 给出申请/归还一块的工作流程。

(1)位示图需要的字数计算: INT(500/32)=16个字;

(2)块号b=(i-1)*32+j;

(3)申请的过程:顺序扫描位示图、找到空闲块并分配、修改位示图map[i,j]=1。归还的过程:找到回收盘块在位示图中的行和列,修改位示图map[i,j]=0

何谓磁盘高速缓存? 在设计磁盘高速缓存时需要考虑哪些问题?

(1)磁盘高速缓存的定义

磁盘高速缓存是指在内存中为磁盘盘块设置的一个缓冲区,在缓冲区中保存了某些盘块的副本。当出现一个访问磁盘的请求时,由核心先去查看磁盘高速缓冲器,看所请求的盘块内容是否已在磁盘高速缓存中,如果在,便可从磁盘高速缓存中去获取,这样就省去了启动磁盘操作,而且可使本次访问速度提高几个数量级;如果不在,才需要启动磁盘将所需要的盘块内容读入,并把所需盘块内容送给磁盘高速缓存,以便以后又需要访问该盘块的数据时,便可直接从高速缓存中提取。

(2)在设计磁盘高速缓存时需要考虑的问题

① 如何将磁盘高速缓存中的数据传送给请求进程;

② 采用什么样的置换策略;

③ 已修改的盘块数据在何时被写回磁盘。

分类: 作业

0 条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注