《操作系统-复习资料.doc》由会员分享,可在线阅读,更多相关《操作系统-复习资料.doc(21页珍藏版)》请在金锄头文库上搜索。
1、第一章1.可能考核心态和用户态填空。2.时间复用和空间复用3.五个功能要熟记。(填空)4.填空,主要是黑体的三个。5. 选择或填空分时系统性能的决定因素有1.终端用户数 2.时间片的长度。(老师给的)6. (填空)操作系统的特征 并发、共享和不确定性7. 用户程序是用户调度系统的代码。(老师给的,应是填空)8.(可能是简答)附加,并发和并行:并发是多道程序的交替运行叫并发。同时运行即使并行。9.(可能是简答,考作业步的定义)10. 作业题(1) 操作系统主要有哪五种基本类型?各有什么特点?答:网络系统,网络操作系统是基于计算机网络的,是在各种计算机操作系统上按网络体系结构协议标准开发的软件,包
2、括网络管理、通信、安全、资源共享和各种网络应用。其目标是相互通信及资源共享。特点:多用户多任务操作系统 UNIX、NETWARE、WINDOWS NT LINUX等分布式系统,大量的计算机通过网络被连结在一起,可以获得极高的运算能力及广泛的数据共享。这种系统被称作分布式系统。12 什么是处理机的核心态和用户态?为什么要设置这两种不同的状态?答:当执行操作系统程序时,处理机处于核心态。它有较高的特权,可以执行所有的指令,包括一般用户程序中不能使用的特权指令,从而能对所有寄存器和内存进行访问、启动 I/O 操作等。用户程序是在用户态下执行,它的权限较低,只能执行指令集中非特权指令。设置这两种不同状
3、态的目的是为了保护操作系统程序(特别是其内核部分),防止受到用户程序的损害。第2章 。1. 进程最根本的属性是动态性和并发性。(填空)2. (可能是填空,简答)进程的基本状态,是运行状态、就绪状态和阻塞状态(或等待状态)(1)运行状态(Running)运行状态是指当前进程已经分配到CPU,它的程序正在处理机上执行时的状态。处于这种状态的进程的个数不能大于CPU 的数目。在一般单CPU 系统中,任何时刻处于运行状态的进程至多是一个。在多处理器系统中,同时处于运行状态的进程可以有多个(最多等于处理器的个数,最少为0 个)(2) 就绪状态(Ready)就绪状态是指进程已经具备运行条件,但因为其他进程
4、正占用CPU,使得它暂时不能运行而处在等待分配CPU 的状态。一旦把CPU 分配给它,它就立即可以运行。在操作系统中,处于就绪状态的进程数目可以是多个(如果系统中共有N 个进程,则就绪进程至多为N-1 个)。(3) 阻塞状态(Blocked)阻塞状态是指进程因等待某种事件发生(例如等待某个输入、输出操作完成,等待其他进程发来的信号等)而暂时不能运行的状态。也就是说,处于阻塞状态的进程尚不具备运行条件即使CPU 空闲,它也无法使用。这种状态有时也称为封锁状态或等待状态。系统中处于这种状态的进程可以有多个。3.(定义)进程控制块(PCB)有时也称进程描述块(Process Descriptor),
5、它是进程组成中最关键的部分,其中含有进程的描述信息和控制信息,是进程动态特性的集中反映,是系统对进程施行识别和控制的依据。4.临界资源和临界区(概念)(1)一次仅允许一个进程使用的这类共享资源称为临界资源。(2)在每个进程中访问临界资源的那段程序叫做临界区。5.(概念)原语是,机器指令的延伸,往往是为完成某些特定的功能而编制的一段系统程序。原语操作也称做“原子操作”即一个操作中的所有动作要么全做,要么全不做。6.(填空或简答)高级进程通信方式有很多种,大致可归并为共享存储器、消息传递和管道文件三类。1共享存储器方式共享存储器方式是在内存中分配一片空间作为共享存储区。需要进行通信的各个进程把共享
6、存储区附加到自己的地址空间中,然后,就像正常操作一样对共享区中的数据进行读或写。如果用户不需要某个共享存储区,可以把它取消。通过对共享存储区的访问,相关进程间就可以传输大量数据。2消息传递方式消息传递方式以消息(Message)为单位在进程间进行数据交换。它有如下两种实现方式: 直接通信方式。发送进程直接将消息挂在接收进程的消息缓冲队列上,接收进程从消息缓冲队列中得到消息。 间接通信方式。发送进程将消息送到称做信箱的中间设施中,接收进程从信箱中取得消息。这种通信方式也称信箱通信方式。3 管道文件方式管道文件也称管道线,它是连接两个命令的一个打开文件。一个命令向该文件中写入数据,称做写者;另一个
7、命令从该文件中读出数据,称做读者。写者和读者按先入先出(FIFO)方式传送数据,由管道通信机制协调二者的动作,提供同步、互斥等功能。课后习题2. PCB 的作用是什么?它是怎样描述进程的动态性质的?PCB 是进程组成中最关键的部分。每个进程有惟一的进程控制块;操作系统根据PCB对进程实施控制和管理,进程的动态、并发等特征是利用 PCB 表现出来的;PCB 是进程存在的惟一标志。PCB 中有表明进程状态的信息,该进程的状态包括运行态、就绪态和阻塞态,它利用状态信息来描述进程的动态性质。7. 什么是临界区和临界资源?进程进入临界区的调度原则是什么?临界资源 一次仅允许一个进程使用的资源。临界区 在
8、每个进程中访问临界资源的那段程序。一个进程进入临界区的调度原则是: 如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。 任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其他所有试图进入临界区的进程必须等待。 进入临界区的进程要在有限时间内退出,以便其他进程能及时进入自己的临界区。 如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。14(要求会写伪码)假定一个阅览室最多可容纳100 人,读者进入和离开阅览室时都必须在阅览室门口的一张登记表上做标识(进入时登记,离开时去掉登记项),而且每次只允许一人登记或去掉登记。问: 应编写几个程序完成此项
9、工作?程序的主要动作是什么?应设置几个进程?进程与程序间的对应关系如何? 用P, V 操作写出这些进程的同步通信关系。(1)完成此项工作可编写一个或两个程序(函数),要求:每个读者对应一个进程。每个读者的动作包括: 入室前查表、登记 register( )。 进入室内,阅读书籍。 出室时删除登记项 delete( )。(2)信号量:S 座位情况,初值为100。mutex 互斥使用登记表,初值为1。第一个程序(函数): 第二个程序(函数):每位读者进程typedef int semaphore;semaphore s=100;P(S)semaphore mutex=1;P(mutex)void
10、main()查表,登记V(mutex)register( );入室,阅读reading( );P(mutex)delete( );出室查表,删除登记项V(mutex)void register( )V(S)P(S);P(mutex);Check_register( );V(mutex);void delete( )P(mutex);Check_delete( );V(mutex);V(S);第三章(要会找安全序列)1. 死锁的定义:是指多个进程循环等待他方占有的资源而无限期地僵持下去的局面。(习题2)死锁出现的根本原因是:资源有限且操作不当。一种原因是竞争资源引起的死锁,另一种原因是由于进程推
11、进顺序不合适引发的死锁。如果在计算机系统中同时具备下面四个必要条件时,就会发生死锁:互斥条件,不可抢占条件,占有且申请条件,循环等待条件。(习题5&6)预防思想:要求进程申请资源时遵循某种协议,从而打破产生死锁的四个必要条件中的一个或几个,保证系统绝不会进入死锁状态。死锁预防方法中最有效的方法是实行资源有序分配策略,即把资源事先分类编号,按序分配,所有进程对资源的请求必须严格按资源序号递增的顺序提出,使进程在申请、占用资源时不会形成环路。避免的思想:它不限制进程有关申请资源的命令,而是对进程所发出的每个申请资源命令加以检查,根据检查结果决定是否进行资源分配。也就是说,在资源分配过程中,若预测有
12、发生死锁的可能性,则加以避免。这种方法的关键是确定资源分配的安全性。(思想不用完全背下,自己理解)2. (重点)银行家算法3. 等待图(了解)4. 死锁恢复方式:通过抢占资源实现恢复、通过回退执行实现恢复和通过杀掉进程实现恢复。5. (简答)“饥饿”状态:进程在其生存期中需要很多不同类型的资源。由于进程往往是动态创建的,这样,在任何时候系统中都会出现资源申请。何时、为哪个进程、分配什么资源,以及分配多少资源,是系统分配资源的策略问题。在某些策略下,系统会出现这样一种情况:在可以预计的时间内,某个或某些进程永远得不到完成工作的机会,因为它们所需的资源总是被别的进程占有或抢占。这种状况称做“饥饿”
13、或者“饿死”。(必考类型)16 设系统中有三种类型的资源(A, B, C)和五个进程(P1, P2, P3, P4, P5),A 资源的数量为17,B 资源的数量为5,C 资源的数量为 20。在T0时刻系统状态如表 3-9 所示。系统采用银行家算法来避免死锁。 T0时刻是否为安全状态?若是,请给出安全序列。 在T0时刻,若进程P2请求资源(0, 3, 4),能否实现资源分配?为什么? 在的基础上,若进程P4请求资源(2, 0, 1),能否实现资源分配?为什么? 在的基础上,若进程P1请求资源(0, 2, 0),能否实现资源分配?为什么?答案: T0时刻是安全状态,因为存在一个安全序列 P4,
14、P5, P1, P2, P3。 不能实现资源分配,因为所剩余的资源数量不够。 可以分配。当分配完成后,系统剩余的资源向量为(0, 3, 2),这时,仍可找到一个安全序列 P4, P5, P1, P2, P3。 不能分配。如果分配的话,则系统剩余的资源向量为(0, 1, 2),这时无法找到一个安全序列。初始化由用户输入数据,分别对可利用资源向量矩阵AVAILABLE、最大需求矩阵MAX、分配矩阵ALLOCATION、需求矩阵NEED赋值。银行家算法在避免死锁的方法中,所施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态
15、,便可以避免发生死锁。银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是,才分配。它是最具有代表性的避免死锁的算法。设进程cusneed提出请求REQUEST i,则银行家算法按如下规则进行判断。(1)如果REQUEST cusneed i= NEEDcusneedi,则转(2);否则,出错。(2)如果REQUEST cusneed i= AVAILABLEcusneedi,则转(3);否则,出错。(3)系统试探分配资源,修改相关数据:AVAILABLEi-=REQUESTcusneedi;ALLOCATIONcusneedi+=REQUESTcusneedi;NEEDcusneedi-=REQUESTcusneedi;(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。安全性检查算法(1)设置两个工作向量Wor