计算机操作系统
第一章 操作系统概述
1、什么是计算机系统,它有哪些组成部分 计算机系统就是按照人的要求接受和存储信息,自动进行处理和计算,并输出结果信息的机器系统。(计算机系统的特点是能进行精确、快速的计算和判断,通用性好,使用容易,能连接成网络。)组成部分:计算机硬件(运算器、存储器、控制器、输入设备、输出设备、辅助存储器、总线、转换设备、输入输出控制系统、电源和场地设备)、计算机软件(系统软件、支撑软件、应用软件)。
2、什么是操作系统,说明操作系统的功能 操作系统是紧挨着硬件的第一层软件,其他软件则是建立在操作系统之上的。操作系统对硬件功能进行扩充,并统一管理和支持各种软件的运行;是整个计算机系统的控制管理中心,也包括对其他各种软件的控制和管理;是计算机系统中的一个系统软件,它既是计算机系统资源的管理员,又是计算机系统用户的服务员。操作系统的功能:进程管理、存储管理、文件管理、作业管理、设备管理、其他功能(系统安全、网络通信)。 3、操作系统有哪些类型?这些类型的特点 批处理操作系统:多道和成批处理; 分时操作系统:多路性、交互性、“独占”性和及时性; 实时操作系统:及时响应、快速处理;高可靠性和安全性; 嵌入式操作系统: 个人计算机操作系统:计算机在某一时间内为单个用户服务;采用图形界面人机交互的工作方式,界面友好;使用方便; 网络操作系统:
分布式操作系统:统一性、共享性、透明性、自治性; 智能卡操作系统: (有待补充)
4、什么是多道程序设计技术?多道程序设计技术的特点是什么 多道程序设计技术是指把多个程序同时放在内存中,使它们同时处于运行状态;这些作业共享处理机的时间和外部设备以及其他资源。多道程序设计的主要特点是:多道,宏观上并行,微观上串行。机内存中同时存放多道相互独立的程序;宏观上并行是指同时进入系统中的多道程都处于运行过程中;微观上串行是指在单处理机环境中,内存中的多道程序轮流占有CPU,交替执行。
5、举例说明,多道程序的引入提高了系统资源的利用率,同时也使操作系统复杂化 多道程序中存在着并发和并行操作。例如,在内存中同时装入几个用户程序,I/O操作与CPU计算操作并行。由并发和并行产生的一系列问题,如如何从一个活动切换到另一个,怎样保护一个活动使其免受另外一些活动的干扰,以及如何让实现相互依赖的活动之间的同步等。
第二章 用户接口与作业管理
1、什么是作业?作业调度程序的功能是什么
作业(JOB)是操作系统中的一个常见的概念,我们把用户要求计算机系统处理的一个计算问题称为一个“作业”;它由一个完整的用户程序、数据和作业说明书三部分组成。作业调度程序的功能是审查系统是否能满足用户作业的资源要求以及按照一定的算法选取作业。 2、什么是系统调用?系统调用的执行过程是什么
系统调用:用户在程序中调用操作系统提供的子功能。 系统调用命令处理程序的执行过程是:(1)保护用户程序现场,将系统调用命令的编号等参
数放入约定的单元;(2)根据编号访问系统调用入口表,找到相应的系统调用子程序的入口地址,然后转去执行,并将返回参数放在约定的存储单元中;(3)恢复现场。(有待补充) 3、什么是用户接口?操作系统提供了哪些接口
用户和操作系统之间的接口就是用户和操作系统打交道的手段,操作系统提供两类接口:程序一级的接口和作业控制一级的接口。(有待补充) 第三章 进程和处理机管理
1、为什么引入进程?它与程序有哪些联系与区别
程序在并行执行时已不能描述不封闭性和“执行-暂停-执行”活动规律,需要有一种新的概念工具来描述下列特征: 能描述“计算”这一现象;
能描述“执行-暂停-再执行”这一活动规律;
能为并行执行的“计算”的制约关系提供协调和共享资源的机构。 这样的新概念称为进程或任务。 进程与程序的主要区别:(1)程序只是指令的有序集合,是静态的描述;进程是程序的一次运行活动,是动态的概念。(2) 进程是一个独立运行的单位,共享资源的实体,能与其他进程并发执行,而程序则不然。一个程序可以对应多个进程,反过来,一个进程至少对应一段程序。逻辑上,每个进程有自己的处理机和程序,实际上两个进程可以共享同一段程序或同一个处理机,所以进程不等价于程序,也不等价于处理机,它是执行期间的<处理机、程序>对。(4) 静态地观察进程,其实体是由程序和数据两部分构成,与程序没有什么区别。 2、进程有哪些基本状态组成,状态变化的原因 基本状态:自由状态(运行状态、就绪状态)、等待状态。进程的状态不是一成不变的,它是随着自身的推进和外界条件的变化而变化的。(有待补充) 3、什么是死锁,解决死锁问题的3种途径是什么
死锁的定义:当某进程提出资源请求后,使得若干进程在无外力作用下,永远不能再继续前进,称这种情况为系统发生了死锁或僵局;三种途径:死锁的预防、死锁检测、死锁恢复。 4、什么是临界资源?什么是临界区?进程访问临界区为什么要互斥
临界资源:一次仅允许一个进程使用的资源;临界区:访问临界资源的那段程序;为了使临界资源互斥地被使用,必须使临界区互斥地被执行,即诸进程访问临界区时必须互斥。 5、在银行家算法中,若出现一下资源分配情况: 进程 P0 P1 P2 P3 P4 资源最大需求 7,5,3 3,2,2 9,0,2 2,2,2 4,3,3 已分配资源 0,1,0 2,0,0 3,0,2 2,1,1 0,0,2 剩余资源 3,3,2 试分析:(1)状态是否安全
(2)如果进程依次有如下资源请求 P1:资源请求 Request(1,0,2)。 P4:资源请求 Request(3,3,0)。 P0:资源请求 Request(0,2,0)。 则系统如何进行资源分配 答:银行家算法:
(1) 当前状态的安全性
当前状态下存在进程执行序列P1,P3,P0,P2,P4,按此序列执行,每个进程均可以获得全
部资源顺利运行结束,因此当前状态是安全的。
(2) 资源分配:
P1的资源请求 Request(1,0,2),进行试探分配后,系统状态变为: 进程 P0 P1 P2 P3 P4 最大需求 7,5,3 3,2,2 9,0,2 2,2,2 4,3,3 已获得资源 0,1,0 3,0,2 3,0,2 2,1,1 0,0,2 尚需资源 7,4,3 0,2,0 6,0,0 0,1,1 4,3,1 剩余资源 2,3,0 此时,存在进程执行列P1,P3,P0,P2,P4,按此序列执行,每个进程均可以获得全部资源顺利运行结束,因此,表1所示状态是安全的,系统可以满足P1的资源申请。
P4的资源请求Request(3,3,0),由于Request(3,3,0)《=Available(2,3,0)不成立,所以,系统不足满足P4的资源申请。
P0:资源请求Request(0,2,0),进行试探分配后,系统状态变为: 进程 P0 P1 P2 P3 P4 最大需求 7,5,3 3,2,2 9,0,2 2,2,2 4,3,3 已获得资源 0,3,0 3,0,2 3,0,2 2,1,1 0,0,2 尚需资源 7,2,3 0,2,0 6,0,0 0,1,1 4,3,1 剩余资源 2,1,0 此时,不存在任何进程执行序列,使每个进程均可获得全部资源,因此,表2所示状态是不安全的,系统不能满足P0的资源申请。
6、假定某系统当时的资源分配图如图A.2所示:
R1
R2 P1 P2
R3 图A.2 P3
(1)分析当时系统是否存在死锁。
(2)若进程P3再申请R3时,系统将发生什么变化,说明原因。 答:(1)因为当时系统的资源分配图中不存在环路,所以不存在死锁。
(2)当进程P3申请资源R3后,资源分配图中引起环路P2→R2→P3→R3→P2,而R2,R3都是单个资源的类,该环路无法消除,所以进程P2,P3永远处于等待状态,从而引起死锁。 7、某系统中有10台打印机,有三个进程P1,P2,P3分别需要8台,7台,4台。若P1,P2,P3已申请到4台,2台,和2台。试问:按银行家算法能安全分配吗?请说明分配过程。
9. 什么是进程?进程有哪几种状态?这些状态是否代表了进程的动态性 进程是并发程序的一次执行过程,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行的活动。
进程最基本的状态:运行状态,如果CPU的时间正好被分配给该进程,也就是说该进程正被CPU运行着,那么这个进程就处于运行状态;就绪状态,当进程被调入到主存储器中,所有的运行条件也都满足,也就是因为调度没有将CPU的时间分配给该进程,这时的进程处于就绪状态;等待状态,除了CPU时间不能分配给该进程,还因等待其他原因或条件,使进程根本不可能被运行,这样的进程处于等待状态。 这些状态代表了进程的动态性。
10. 什么是P、V操作?涉及什么数据结构
P操作:当S的入口值大于或等于0时,当前进程继续运行;当S的入口值小于0时,当前进程进入等待队列;V操作:当S的入口值大于0时,当前进程继续运行;当S的入口值小于或等于0时,当前进程在唤醒一个进程后才能继续运行。 涉及的数据结构是信号量。
12. 多个进程对信号量S进行了5次P操作,2次V操作后。现在信号量是-3,与信号量S相关的处于阻塞状态的进程有几个?信号量的初值是多少? 3;0
13. 有三个进程P1、P2和P3并发工作、进程P1需要资源S3和S1,进程P2需用资源S1和S2,进程P3需用资源S2和S3,回答
(1) 若对资源分配不加限制,会发生什么情况?为什么?
(2) 为保证进程正确地工作,应采用什么资源分配策略?为什么? 答:(1)若对资源分配不加限制,如将S1分配给P1,S2分配给P2,S3分配给P3,进程的推进会发生死锁现象。从下图中可以看到,进程与资源分配之间产生了无法化简的循环等
S1 S2 P1P2P3S3 待环。
(2) 若在进程被创建时就采取预防措施,方法有两种。一种是对所申请的资源一次性全部分配。这种分配方法虽然不会产生死锁,却会引起资源的严重浪费,它使有些使用时间很短的资源被长时间占用。另一种是按一定的资源序列号升序或降序地分配资源。这种分配办法可以预防循环等待的发生,因此不会发生死锁,但资源序号的排定是一个让人为难的问题,并且低序号资源同样可能被浪费。
第四章 存储管理
1、存储管理的主要功能是什么
对主存空间进行分配和管理、提高主存的利用率、“扩充”主存容量、实现地址的变换。 2、什么是物理地址和物理地址空间?它们和逻辑地址空间有什么关系
物理地址:内存中的实际地址被成为物理地址。由于它并不和任何相对地址相关,因此,物理地址又称为绝对地址。物理地址的最小值为0,最大值取决于内存的大小和内存地址寄存器所能表现的最大值,二者中较小的那一个值为物理地址的最大值。 物理地址空间:当逻辑地址空间被映射到内存时所对应的物理地址的集合,物理地址空间又
称为绝对地址空间。物理地址空间并不是指物理内存,只有当逻辑地址空间存在时,才会有物理地址空间,物理地址空间受存储器大小的限制,也就是说物理地址空间最大只能达到内存的大小。物理空间所使用的地址是物理地址,但并不是说只有物理空间内的地址才是物理地址,内存中所有的地址都是物理地址。 关系:只有当逻辑地址空间存在时,才会有物理地址空间,物理地址空间受存储器大小限制。 3、什么是重定位?解释静态定位和动态重定位的异同点
重定位:在装入过程完成后,根据装入的起始位置来修改程序中指令要访问的地址,将相对地址改为绝对地址就是重定位。
静态重定位是在装入过程完成后在程序运行前,一次将所有的指令要访问的地址全部修改为绝对地址,在程序运行过程中不再修改。动态重定位是在程序的运行过程中,当指令需要执行时对将要访问的地址进行修改。两种重定位方法的时机不同。 静态重定位要求程序一旦装入其绝对地址空间就不能发生变化了。动态重定位允许在程序运行过程中,其绝对地址空间发生变化或被分割为不同的区域,变化后只需要将基地址寄存器中的内容作对应修改。
采用静态重定位方式不需要增加任何硬件设备,可以在一般机器上全部用软件实现;采用动态重定位方式需要有硬件支持,实现存储管理的软件算法比较复杂。 采用静态重定位方式对提高主存储器的利用率不利;采用动态重定位方式可以使用较小的存储分配单位,以提高主存储器的利用率。、
4、什么是覆盖?什么是交换?覆盖和交换的区别
覆盖:一个作业的若干程序段或几个作业的某些部分共享某一段主存空间; 交换:先将内存某部分的程序或数据写入外存交换区,再从外存交换区中调入指定的程序或数据到内存中来,并让其执行一种内存扩充技术; (有待补充) 5. 何为抖动?它是由什么引起的
当前替换的页面正是下次要访问的页面,最先进入内存的页面可能是经常使用的页面,在被淘汰出局后可能马上要调用的内存,这将导致频繁的调出调进发生,引起系统不稳定,这种现象被称为抖动。抖动是由于页面的频繁调入调出产生的。
6. 已知主存有512KB容量,其中操作系统占用40KB,有如下的一个作业序列: 作业1要求280KB; 作业2要求 32 KB; 作业3要求 160 KB; 作业1 完成; 作业3 完成;
作业4要求 160KB; 作业5要求 240KB;
请用首次适应算法和最佳适应算法来处理上述的作业序列,并完成以下步骤(1)~(4),要求从空白区下端分割一块作为已分配区。
(1)画出作业1、2、3进入主存后,主存的分配情况。 (2)作业1、3完成后,画出主存分配情况。 (3)画出两种算法下空白区的链接情况。 (4)哪种算法对该作业序列是适合的? 答:(1)作业1、2、3进出主存后,主存的分配情况如图
作业名称 OS 作业1 内存分配情况 40KB 280KB