操作系统的目标、作用、基本特性、主要功能 2
进程和程序 6、7
处理机调度层次 作业调度、中级调度、进程调度
死锁必要条件和处理方法 11
Spooling 17
1. 什么是多道程序设计技术?它的主要优点是什么?
-
多道程序设计技术是指同时把多个作业放入内存并允许它们交替执行,共享系统中的各类资源,当一道程序因某种原因(如I/O请求)而暂停执行时,CPU立即转去执行另一个作业。
-
优点是:提高CPU、内存、I/O的利用率;增加系统的吞吐量。
2. OS的作用表现在哪几个方面
-
作为用户与计算机硬件系统之间的接口;
-
作为计算机系统资源的管理者;
-
实现对计算机资源的抽象调用;
3. 什么是微内核OS?
- 提供操作系统核心功能的内核的精简版本,设计在很小的空间内存,基于客户,服务器模式,提供模块化的设计
4. 什么是操作系统?它有什么基本特征?
- 是管理计算机软、硬件资源,合理调度作业运行、方便用户使用的程序集合。
- 基本特征:并发性、共享性、虚拟性及异步性。
5. 比较分时系统和实时系统(从交互性、及时性、可靠性三方面看)
- 从交互性看:在分时系统中,各终端用户可通过人机会话方式直接控制程序运行,交互性要求高;实时系统中,人与系统的交互仅限于访问系统中某些特定的专用服务程序,不能向分时系统那样向用户提供数据处理和资源共享等服务。
- 从及时性看:分时系统是以用户能接受的时间来确定;实时信息处理系统对实时性的要求与分时系统类似,实时控制系统的及时性是以截止时间来确定的,要求高。
- 从可靠性看:分时系统也要求系统可靠,但相比之下实时系统要求更高的可靠性。
6. 试从动态性、并发性和独立性上比较进程和程序。
(1)程序是一组指令的集合,是静态的,而进程是程序的一次执行过程,是动态的。
(2)一个进程能与其他进程并发地执行,而程序不具有并发性;
(3)进程是一个独立运行的单位,也是系统进行资源分配和调度的独立单位,而程序不是。
7. 从调度性、并发性、拥有资源和系统开销几个方面对进程和线程进行比较。
(1)调度性:在引入线程的OS中,把线程作为CPU调度和分派的基本单位,而把进程作为资源拥有的基本单位。
(2)并发性:在引入线程的OS中,一个进程可以包含多个线程。不仅进程间可并发,进程中的线程也可并发。
(3)拥有资源:进程始终是拥有资源的一个独立单位,线程自身不拥有资源,但可以访问其隶属进程的资源。
(4)系统开销:在创建、撤销和切换进程方面,进程的开销远大于线程的开销。
8. 进程在运行时存在哪两种形式的制约?并举例说明。
(1)间接的相互制约关系:源于共享资源,如两个进程A、B,A请求打印,而唯一的一台打印机被B占用着,此时A只能阻塞。
(2)直接的相互制约关系:源于进程间的合作,如输入进程A通过单缓冲向计算进程B提供数据,当缓冲空时,B只能被阻塞,当A把数据放入缓冲后,B被唤醒。
9. 什么是临界资源、临界区?
- 一次只允许一个资源进入的资源称为临界资源;
- 每个进程中访问临界资源的那段代码称为临界区。
10. 为什么说多级反馈队列调度算法能较好地满足各方面用户的需要?
(1)终端型作业用户:其作业大多属交互型作业,通常较小,只要在第一队列所规定的时间内完成,用户都会感到满意。
(2) 短批处理作业用户:若能在第一队列中执行一个时间片即可完成,便可获得与终端型作业相同的响应时间。对于稍长的作业,通常也只需在第二和第三队列各执行一个时间片即可完成,周转时间较短。
(3) 长批处理作业用户:它依次在各队列中运行一个时间片,用户不必担心其作业长期得不到运行。
11. 何为死锁?产生死锁的原因和必要条件是什么?
(1)死锁是指多个进程因竞争资源而造成的一种僵持状态。若无外力作用,这些进程都将永远处于阻塞状态,不能再运行下去。
(2)产生死锁的原因有:资源不足资源、进程推进次序不当。
(3)产生死锁的必要条件有:互斥条件、请求和保持条件、不可剥夺条件、环路等待条件。
**12. 在解决死锁问题的几个方法中,哪种方法最容易实现?哪种方法使资源的利用率最高? **
(1)预防死锁方法,主要是破坏产生死锁的必要条件。该方法是最容易实现的,但系统资源利用率较低。
(2)避免死锁方法,比较实用的有银行家算法(Banker Algorithm)。该算法需要较多的数据结构,实现起来比较困难,但资源利用率最高。
(3)检测死锁方法是基于死锁定理设计的,定期运行该算法对系统的状态进行检测,发现死锁便予以解除。
其中,需要比较一下各种死锁解除方案的代价,找到代价最小的方案。该方法资源利用率较高。
13. 现有两道作业同时执行,一道以计算为主,另一道以输入输出为主,你将怎样赋予作业进程占有处理器的优先级?为什么?
(1)以计算为主的进程运行期间,将主要集中在CPU的计算上,较少使用外部设备。而以输入输出为主的进程则主要集中在外部设备的I/O上,较少使用CPU。因此让两个进程并发运行是可以提高系统效率的。并且设定输入输出为主的进程优先级高于计算为主的进程。(2)因为:输入输出操作是一种速度极慢的操作。若该项操作的优先级高,那么,当它完成一项输入输出操作后,便能立即获得CPU,为下一次输入输出作准备工作,并启动外部设备。当设备被启动起来后,它便主动让出CPU,由系统将CPU交给计算进程使用。从而获得较好的运行效率。
14. 为什么要引入动态重定位?如何实现?
在连续分配内存方式中,会出现不能被利用的"零头"或"碎片",为了利用这些"零头"或"碎片",就必须进行数据或程序的移动—"紧凑",因此相应的这些程序或数据在内存中的位置就必须进行修改,否则就无法执行.从本质上讲引入动态重定位,就是在连续分配内存方式下,进一步提高内存利用率的一种方法. 实现技术动态重定位必须获得硬件支持.只有具有动态重定位硬件机构的计算机系统,才有可能采取动态重定位可变分区多道管理技术,系统的硬件包括重定位寄存器和加法器
15. 分页和分段存储管理有何区别?
1、页是信息的物理单位,分页是为了提高内存的利用率。段则是信息的逻辑单位,它含有一组其心意相对完整的信息。分段是为了能更好的满足用户的需要。
2、页的大小固定且由系统决定。段的长度不固定,且由用户所编写的程序决定。
3、分页的地址空间是一维的,程序员只需要一个助记符便可表示一个地址。分段的地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。
(1) 虚拟存储器的应用背景是什么?
(2) 虚拟存储器的可行性基础是什么?
(3) 实现虚拟存储器的主要方法是什么?
(4) 虚拟存储器的定义。
(1)虚存的应用背景是有的作业很大,但是自有的内存却小,其要求的内存空间超过了内存总容量,又或者多道作业要求运行,内存不足以容纳所有作业导致大量作业在外存等待。利用虚拟存储器可以很好地解决这种问题。
(2)虚存的可行基础是程序运行的局部性原理,在一段较短的时间内,程序执行仅限于某个部分,相应的它所访问的存储空间也局限于某个区域
(3)实现虚存的主要方法是请求分页(段)技术和页面(分段)置换算法
(4)虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存对内存容量进行扩充的一种存储系统。从用户观点看,虚拟存储器具有比实际内存大得多的容量,其逻辑容量是有逻辑地址结构以及内存和外存容量之和决定的默契运行速度接近于内存的速度,而每位成本却又接近于外存。
16. 有哪几种I/O控制方式?各适用于何种场合?
① 程序直接控制方式:适用于早期无中断机构的计算机系统。
② 中断驱动I/O控制方式:适用于字符设备。
③ 直接存储器访问DMA控制方式:适用于块设备。
④ I/O通道控制方式:适用于具有通道的系统对一组离散的数据块的传送。
17. 简述SPOOLing系统的组成。在实现后台打印时,SPOOLing系统应为请求I/O的进程提供哪些服务
SPOOLing技术实对假脱机输入,输出系统的模拟,它必须建立在具有多道程序功能的操作系统上,而且还需要得到高速随机外存(通常采用磁盘)的支持。spooling系统主要由四部分组成:
(1)输入井和输出井
(2)输入缓冲区和输出缓冲区
(3)输入进程和输出进程
(4)井管理程序
实现后台打印时,SPOOLing系统并不真正把打印机分配给用户进程,而是由假脱机管理程序为他做两件事:
(1)在输出井中为之申请一个空闲的磁盘块区,并将要打印的数据送入其中
(2)为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,然后将该表挂到假脱机文件队列上。