25. 用户使用( D )形式的文件。
A.链接 B.连续 C.物理 D.逻辑
26. 能够装入内存任何位置并能执行的程序代码必须是可( B )。
A.动态链接 B.重定位 C.可重入的 D.静态链接
27. . 若系统中只有用户级线程,则处理机调度单位是( A )。
A.线程 B.进程 C.程序 D.作业
28. 如果要使装入内存的程序,在内存中移动后仍能正常运行,必须要有( B )的支持。
A. 静态重定位 B.动态重定位 C. 动态链接 D.静态链接 29.
采用( B )不会产生内部碎片。
A.分页式存储管理 B.分段式存储管理
C.固定分区式存储管理 D.段页式存储管理
解:C.将产生大量的内部\碎块
A.不产生外部碎片,产生的内碎片不超过页大小 D.没有解决碎片问题,有内部碎片
30.
假脱机技术中,对打印机的操作实际上是用对磁盘存储实现的,用以替代打印机的部分是指( C )。
(A)共享设备 (C)虚拟设备
31
32 最短进程优先技术的一个困难在于 答案:D
33时系统中的当前运行进程连续获得了两个时间片,原因可能是 答案:B
34进程依靠()从阻塞状态过渡到就绪状态 答案:D
(B)独占设备 (D)物理设备
(七)简答题:
1.
为什么要区分系统态和用户态? 解 区分系统态和用户态主要原因如下:
(1) 为了防止操作系统及关键数据受到用户程序有意或无意的破坏,通常将处理机的执行状态分成系统态和用户态两种。处于用户态执行的程序的操作要受到限制,不能去执行特权指令,访问操作系统区域和其他程序的区域,这就防止了用户程序对操作系统和其他用户程序的破坏。操作系统的内核通常是运行在系统态的,用户态的程序通过系统调用接受系统态程序运行的服务。
(2) 用户态下的进程能存取它们自己的指令与数据,但不能存取内核指令和数据或其他进程的指令和数据。然而,系统态下的进程能够存取内核和用户地址。例如,一个进程的虚拟地址空间可划分成仅在系统态下可存取及在系统态和用户态都可存取的两部分。某些机器指令是特权指令(Privilege Instruction),如I/O指令等。在用户态下执行的进程没有执行特权指令的能力,在用户态下执行特权指令会引起错误。而在系统态下的进程可以执行一切指令。
2.
进程和线程的主要区别是什么?
解:线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度实体。
在具有多线程机制的操作系统中,处理机调度的基本单位不是进程而是线程。一个进程可以有多个线程,而且至少有一个可执行线程。在有进程和线程的系统中,进程是系统资源分配的独立单位,而线程是可调度运行的独立单位。
进程和线程的区别是:
(1) 线程是进程的一个组成部分;
(2) 进程的多个线程都在进程的地址空间活动;
(3) 资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源配额中扣除并分配给它;
(4) 处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程; (5) 同一进程中的线程在执行过程中,可能需要同步。 3.
进程能自己将自己唤醒吗?进程能自己将自己撤消吗?
解:唤醒进程和撤消进程都是要通过在CPU上运行程序来实现的。一个进程入睡了,它就不可能被调度到CPU上运行;一个进程在撤消前必须先进入终止状态,而处于终止状态的进程不可能被调度到CPU上运行。因此,进程被唤醒、被撤消都不能由自己来完成,只能由别的进程实现。 4.
程序并发执行的主要特性是什么?
解:可分割性(即可中断性)、失去封闭性、失去可再现性。 5.
何为死锁?产生死锁的原因和必要条件是什么?
解:死锁是指多个进程因竞争资源而造成的一种僵持状态。若无外力作用,这些进程都将永远处于阻塞状态,不能再运行下去。
产生死锁的原因有:资源不足资源、进程推进次序不当。
产生死锁的必要条件有:互斥条件、请求和保持条件、不可剥夺条件、环路等待条件 6.
在解决死锁问题的几个方法中,哪种方法最容易实现?哪种方法使资源的利用率最高?
解:预防死锁方法,主要是破坏产生死锁的必要条件。该方法是最容易实现的,但系统资源利用率较低。
避免死锁方法,比较实用的有银行家算法(Banker Algorithm)。该算法需要较多的数据结构,实现起来比较困难,但资源利用率最高。
检测死锁方法是基于死锁定理设计的,定期运行该算法对系统的状态进行检测,发现死锁便予以解除。其中,需要比较一下各种死锁解除方案的代价,找到代价最小的方案。该方法最难实现,资源利用率较高。 7.
分页存储管理存在的局限性是什么?
逻辑地址空间:页是物理单位,共享困难,不便对代码进行分类管理,不能进行动态连接。 8.
为什么说分段系统较之分页系统更易于实现信息共享和保护?如何实现。 解 a)
在分页和分段存储管理系统中,多个进程并发运行,共享同一内存块里的程序或数据是可行的。为了实现共享,必须在各共享者的段表或页表中分别有指向共享内存块的表目。 b)
对分段式系统,被共享的程序或数据可作为单独的一段。在物理上它是一段,在不同的进程中,可以对应不同的逻辑段,相对来说比较易于实现。 c)
对分页管理,则要困难的多。首先,必须保证被共享的程序或数据占有整数块,以便与非共享部分分开。其次,由于共享程序或数据被多个进程访问,所以每个进程对共享程序或数据的访问都应该是有限制条件的。
d) 因此,从共享和保护的实现上来看,须共享的程序段或数据段是一个逻辑单位,而分段存储管理中被共享的程序或数据作为一个整体(一段),实现共享和保护就要方便得多。
e) 分段系统的共享是通过两个(或多个)进程的段表之相应表目都指向同一个物理段,并设置共享计数来实现的。每段设置访问方式,就可以实现段的保护。
f) 9.
多道程序系统为什么能提高CPU的利用率?
答:利用了原来CPU的等待时间。
10. 文件的逻辑结构有哪些?
解:文件的三种物理结构是 顺序文件、链接文件和索引文件。
一种是无结构的流式文件,是指对文件内信息不再划分单位,它是依次的一串字符流构成的文件。
一种是有结构的记录式文件,是用户把文件内的信息按逻辑上独立的含义划分信息单位,每个单位称为一个逻辑记录(简称记录)。所有记录通常都是描述一个实体集的,有着相同或不同数目的数据项,记录的长度可分为定长和不定长记录两类。
11. 什么是设备独立性?
解:其基本含义是: 设备独立性又称为设备无关性。它指的是应用程序在使用设备进行I/O时,使用的是逻辑设备,而系统在实际执行时使用的是物理设备,由操作系统负责逻辑设备与物理设备的映射。引入设备独立性可以使设备的分配具有极大的灵活性,并易于实现I/O重定向。
12. 为什么要引入线程,解释一下线程与进程之间的相互关系。
解:线操作系统的并发进,引进了线程.这样,进程是分配资源的基本单位,而线程则是系统调度的基本单位.一个进程内部的线程可以共享该进程的所分配到的资源.线程的创建与撤消,线程之间的切换所占用的资源比进程要少很多.总的来说就是为了更进一步提高系统的并发性,提高CPU的利用率.
通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。 13.
死锁的必要条件是什么?
解:产生死锁的四个必要条件:????
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。?? (3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。?? (4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。??
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。
14. 什么是虚拟内存?
解 虚拟存储器通过把主、辅存统一起来管理,给用户造成一种仿佛系统内有巨大主存供用户使用的假象。例如页式存储管理,一道作业被划分成若干页,其中较活跃的几页放在内存,而其余不活跃的页被放在辅存,当需要访问辅存内的页时,就可通过页面调度将其调入内存运行;但用户感觉不到这种变化,他会以为作业的所有部分都存在于主存。
这样可以让更多的作业进入主存,提高系统的效率。虚拟盘是物理上不存在这样的盘,而是操作系统为用户借助其它存储介质实现的。
15. 说明静态重定位和动态重定位的区别。
解 “重定位”,在实际上指的是这样相互联系的两件事情:一是确定一个待执行程序在内存中的位置;二是将程序中的逻辑地址转换成物理地址。说它们是相互联系的,是因为后一件事情是由前一件事情决定的。
静态重定位,指的是在程序装入时实现的重定位。具体的讲,就是将程序装入内存后,立即根据其装入位置将程序中需重定位的逻辑地址转换成物理地址,包括指令地址、数据地址、子程序入口地址等。这种“定位”的特点是“定位”之后,内存中的代码发生了变化,程序不能在内存移动,CPU按物理地址运行程序。
动态重定位,是在程序执行的过程中,根据执行的需要动态地装入、链接和定位。它不是根据程序在内存的位置立即将指令和数据的逻辑地址转换成物理地址,而是把这种位置信息送入一个称之为“地址映射机构”的硬件中,然后,CPU按逻辑地址执行程序。在执行中,由“映射机构”将逻辑地址及时地转换成正确的访存物理地址。这种定位方法的主要特点是重定位后,内存中的代码没有发生了变化,允许程序在执行的过程中在内存移动位置,这只要更换“映射机构”中的启址信息就可将同一程序映射到内存不同的地方。这种位置移动对提高内存空间的利用率是有好处的。
16. 假脱机技术是什么?
解:SPOOLing系统,把独享设备分割为若干台逻辑上的独占的设备,使用户感受到系统有出若干独占设备在运行。当然,系统中至少一台拥有物理设备,这是虚拟设备技术的基础。
SPOOLing系统又称“假脱机I/O系统”,其中心思想是,让共享的、高速的、大容量外存储器(比如,磁盘)来模拟若干台独占设备,使系统中的一台或少数几台独占设备变成多台可并行使用的虚拟设备。
SPOOLing系统主要管理外存上的输入井和输出井,以及内存中的输入缓冲区和输出缓冲区。其管理进程主要有输入和输出进程,负责将输入数据装入到输入井,或者将输出井的数据送出。它的特点是:提高了 I/O操作的速度;将独占设备改造为共享设备;实现了虚拟设备功能。
为什么在分页和分段管理下取一条指令或一个操作数通常需两次访存?如何解决这一问题?
解 这是因为用于地址变换的页表或段表也是存放在内存的,为了将CPU给出的逻辑地址变成物理地址,首先就要访问内存的页表和段表,然后,根据形成的物理地址再取指令或数据,这就要两次访存。解决这一问题的办法是提供一个称之为“快表”的硬件,用以存放当前运行进程的页表或段表的部分内容,“快表”的访问时间很快,因此可以节约访问页表和段表的时间。 存储器访问具有时间和空间的“局部性”,因此快表的命中率一般可达70%到90%;页表和段表是在系统执行过程中,每时每刻都需要访问的,因此,访问时间的微小缩短,其累计节约的时间却可以达到很大。
17
18为什么要引入设备独立性?如何实现设备独立性?
引入设备独立性,可使应用程序独立于具体的物理设备,显著改善资源的利用率及可适
应性;还可以使用户独立于设备的类型。
实现独立性:在应用程序中应使用逻辑设备名称来请求使用某类设备。当应用程序用逻辑设备名请求分配I/O 设备时,系统必须为它分配相应的物理设备,关在逻辑设备表LUT中建立一个表目。
19对目录管理的主要要求是什么? 答:文件系统所要解决的核心问题,就是按照充分发挥主机和外部设备效率的原则,把信息的逻辑结构映像成设备介质上的物理结构,把用户的文件操作转换成相应的I/O指令。转换过程所使用的主要数据结构是文件目录和辅存空间使用情况表。所以目录管理的基本功能就
是通过查目录能实现符号名与具体地址之间的转换。要求目录的编排应以如何能准确地找到所需文件为原则,而选择目录的方法应以查找速度快为准则。