操作系统期末复习要点.docx
《操作系统期末复习要点.docx》由会员分享,可在线阅读,更多相关《操作系统期末复习要点.docx(25页珍藏版)》请在冰点文库上搜索。
操作系统期末复习要点
《操作系统》复习指导
考试共有5种题型:
选择、填空、判断、简答、操作,基本上每种题型20分。
操作题出自下面6种题型。
简答题:
1.什么是多道程序设计?
其主要特点是什么?
2..什么是进程?
进程和程序有什么区别与联系?
3.什么是线程?
建立线程的目的是什么?
4.什么是临界资源?
什么是临界区?
举一个临界资源的例子。
5.在进程的整个生命周期中,可能要经历哪几种状态?
这几种状态在什么情况下会发生什么样的变迁(主要叙述三状态模型即可)?
所谓三状态模型、五状态模型、七状态模型各包括进程的哪几种状态?
6.什么是死锁?
产生死锁的根本原因是什么?
解决死锁有哪几种解决策略?
这些策略有哪些具体的解决方案?
7.为什么要使用联想寄存器(快表)?
联想寄存器里存放的内容是什么?
8.什么是虚拟技术?
虚拟技术需要什么物质基础?
9.在设备管理中为什么要引入缓冲区?
常见的缓冲技术有哪几种?
现在最常用的是哪种?
10.什么是SPOOLING系统?
SPOOLING系统由哪几部份构成?
举一个利用SPOOLING技术的例子。
11.以打印机为例,说明SPOOLING的工作原理
12.有哪几种常见的输入输出控制机制?
简述其工作原理。
操作题(共有6种类型的题,20分上下))
(1)作业调度:
分别用先来先服务、最短作业优先、响应比高者优先算法调度,计算作业的平均周转时间和平均带权周转时间。
注:
在时间运算上,可用10进程,也可用60进制参与运算。
(2)信号量机制和P、V(Wait、Signal)操作。
理解P、V操作的定义,理解信号量值的含义。
能够在具体的应用里,根据题意,建立信号量,并用伪代码(类C或类PASCAL)来表达进程之间的同步与互斥。
(3)银行家算法:
(一种典型的死锁避免策略)
这是一种避免死锁的策略。
要会根据当前资源情况和进程需求情况,判断当前状态是否安全;若当前状态安全,再有进程申请新的资源,可否给它?
(4)逻辑地址到内存地址的转换:
给定一个逻辑地址(段号,段内地址)和段表,要求给出物理地址;
给定一个逻辑地址(逻辑地址)、页面尺寸、页表,要求换算出物理地址;
(5)页面淘汰算法:
给定一个页面访问序列,会用以下几种算法分别计算页面的缺页中断数和缺页中断率:
最佳淘汰算法(OPT)、
先进先出淘汰算法(FIFO)、
最近最久未使用淘汰算法(LRU)
(6)磁盘调度算法:
给定一个磁盘访问序列,会分别用以下几种磁盘调度算法计算寻道总长度和平均寻道长度:
先来先服务(FCFS)、最短寻道时间优先(SSTF)
扫描算法(SCAN)——又叫电梯算法、循环扫描(CSCAN)
章节复习要点:
第一章操作系统概论
1.什么是操作系统?
答:
操作系统是最复杂、最典型的系统软件。
其目标有以下几点:
1.方便性2.有效性3.可扩充性4.开放性
2.OS作为计算机系统资源的管理者,主要管理哪几方面的资源?
或OS功能?
l答:
OS的主要功能也正是针对这四类资源进行有效的管理,即:
(1)处理机管理:
用于分配和控制处理机;
(2)存储器管理:
主要负责内存的分配与回收;
(3)I/O设备管理:
负责I/O设备的分配与操纵;
(4)文件管理:
负责文件的存取、共享和保护。
(5)用户接口
3.中断分类:
(1)I/O中断
(2)程序中断
(3)硬件故障中断
(4)外中断
(5)访管中断(软中断)
(6)缺页中断:
4.OS主要特征:
(1)并发性:
是指在操作系统中存在着许多同时的或并行的活动
(2)共享性:
并发活动需要共享系统的软,硬件资源
(3)虚拟性:
(4)不确定性:
结果不确定是因为执行的顺序的不确定性
5.多道程序设计的实现:
为了实现,需要解决:
存储保护和地址重定位;处理机管理和调度;资源的管理和分配。
4.什么叫共享,什么叫虚拟?
什么叫异步?
答:
(1)共享:
在操作系统环境下,所谓共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。
(2)虚拟:
操作系统中的所谓“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。
物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的东西。
相应地,用于实现虚拟的技术,称为虚拟技术。
异步:
在多道程序环境下,允许多个进程并发执行,但只有进程在获得所需的资源后方能执行。
在单处理机环境下,由于系统中只有一个处理机,因而每次只允许一个进程执行,其余进程只能等待。
或者说,进程是以人们不可预知的速度向前推进,此即进程的异步性。
5.基本的操作系统有哪几种?
答:
批处理系统(单道和多道),分时系统,实时系统
第二章:
用户与操作系统的接口
1、管态与算态(CPU的两种工作状态):
(1)用户工作的状态称为算态或用户态;
(2)将系统程序工作的状态称为管态或系统态或内核态。
2、特权指令:
是一类只能在管态下执行而不能在算态下执行的特殊机器指令
常见的特权指令有以下几种:
(1)有关对外设使用的指令,如启动外设指令,测试外设工作状态以及控制外设动作的指令。
(2)有关访问程序状态的指令,如程序状态字寄存器,指令计数器和特殊的控制寄存器等。
(3)存取特殊寄存器指令。
如中断寄存器,时钟寄存器,上下界地址寄存器等。
(4)其它指令
★对用户来说切换到管态唯一途径是中断
3、系统调用与过程调用的区别:
(1)运行在不同的系统状态:
一般过程调用,其调用程序和被调用程序都运行在相同状态:
核心态或用户态
系统调用:
调用程序在用户态,被调用程序在系统态
(2)通过软中断进入:
一般的过程调用可以直接由调用过程转向被调用过程;而执行系统调用时,由于调用过程和被调过程处于不同的系统状态,因而不允许由调用过程直接转向被调过程,通常都是通过软中断机制或访管指令,先进入操作系统,然后再转向被调过程。
4、简单命令:
Fork()创建一个与当前进程完全相同的拷贝
★系统调用的一个重要特性——可重入性
第三章:
进程管理
1.什么是进程?
答:
(1)进程的定义有多种,比较典型的有:
1)进程是程序在处理器上的一次执行过程。
2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
3)进程是程序在一个数据集合上的运行的过程,是系统进行资源分配和调度的一个独立单位。
通常人们定义进程为:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
2、为什么要引入进程?
(2)在多道程序环境下,程序的并发执行代替了程序的顺序执行,程序不再像单道程序环境那样,顺序连贯地执行,而是走走停停,具有执行——暂停——执行的规律。
它破坏了程序的“封闭性”和“可再现性”,使得程序和机器执行程序的活动不再一一对应,程序执行的结果也不再唯一,这样,程序的执行也就失去了意义。
这时“程序”这个静态的概念已经不能反映程序活动所具有的特征,需要引进一个新的概念——进程。
为了使程序能并发执行,且为了对并发执行的程序加以描述和控制,人们引入了“进程”的概念。
3、进程由哪几个部分构成?
(3)程序段、数据段及PCB三个部分组成。
4、系统是通过什么来感知进程的存在的?
(4)PCB
5、进程有哪几种基本的状态?
这些状态都在哪些典型情况下会发生哪种变迁?
挂起有几种状态?
挂起的进程能获得处理机吗?
答:
(1)进程的三种基本状态:
1)就绪(Ready)状态2)执行状态3)阻塞状态
(2)就绪(Ready)状态:
当进程已分配到除CPU以外的的所有必要资源后,只要再获得CPU就可以立即执行,这时的进程状态称为就绪状态。
在一个系统中处于就绪状态的进程可能有多个,通常将他们排成一个队列,称为就绪队列
执行状态:
进程已获得CPU,其程序正在执行。
在单处理机系统中,只有一个进程处于执行状态;在多处理器系统中,则有多个进程处于执行状态。
阻塞状态:
正在执行的进程由于发生某事件(如需要输入或输出数据)而暂时无法继续执行时,便放弃处理机而处于暂停状态,即进程的执行受到阻塞,这种暂停的状态称为阻塞状态
致使进程阻塞的典型事件有:
请求I/O,申请缓冲空间等。
(3)当内存所有进程阻塞时,操作系统可将一进程置为挂起状态并交换到磁盘,再将另一个处于就绪状态的进程调入另一进程执行。
挂起状态与原有的阻塞和就绪状态结合为起来又可形成阻塞挂起状态和就绪挂起状态。
1)活动就绪→静止就绪。
(通过挂起原语将其挂起)
2)活动阻塞→静止阻塞。
3)静止就绪→活动就绪。
(用激活原语将静止状态变为活动状态)
4)静止阻塞→活动阻塞。
细分的进程状态转换图:
带有挂起操作的进程状态转换图:
6、比较进程和程序有什么区别:
(1)进程是程序的一次执行,属于一种动态概念,而程序是一组有序的指令,是一种静态概念。
(2)一个进程可以执行一个或几个程序;反之,同一程序可能由几个进程同时执行。
(3)程序可以作为一种软件资源长期保留,而进程是程序的一次执行过程,是暂时的。
(4)进程具有并发性,它能与其它进程并发运行。
(5)进程是一个独立的运行单位,也是系统进行资源分配和调度的一个独立单位。
7、进程的调度方式:
(1)剥夺方式:
现运行程序在运行过程中,如有重要或紧迫的进程到达,则现运行进程放弃处理机,暂停原进程的运行并把处理机分配给新进程
(2)非剥夺方式:
现运行程序在运行过程中,如有重要或紧迫的进程到达,需要等待原进程的完成或发生某种事件,而进入“完成”或“阻塞”状态时,才主动放弃处理机,把处理机让出重要进程运行。
8、什么是线程?
答:
(1)线程可定义为“进程内的一个执行单位”,或者定义为“进程内的一个可调度的实体”。
9、比较线程和进程之间有什么异同和联系。
答:
(1)线程的引入,进一步提高了程序并发执行的程度,从而进一步提高了系统的吞吐量。
为了既能提高程序的并发程度,又能减少OS的开销,操作系统设计者引入了线程,把进程的两个基本属性分离开来。
即以进程为单位分配资源,以线程为单位进行调度。
(2)进程和线程的区别与联系:
调度
拥有资源
并发性
系统开销
10、P、V操作:
P、V操作是定义在信号量S上的两个操作,其定义如下:
P(S):
①S∶=S-1;
②若S≥0,则调用P(S)的进程继续运行;
③若S<0,则调用P(S)的进程被阻塞,并把它插入到等待信号量S的阻塞队列中。
V(S):
①S∶=S+1;
②若S>0,则调用V(S)的进程继续运行;
③若S≤0,从等待信号量S的阻塞队列中唤醒头一个进程,然后调用V(S)的进程继续运行。
(问题:
1、唤醒哪一个;2、执行哪一个)
例子:
哲学家就餐问题
11、为什么会产生死锁?
产生死锁的必要条件:
(1)互斥控制
(2)非剥夺控制
(3)逐次请求
(4)环路条件
12、对死锁采取的对策:
(1)鸵鸟策略。
(2)预防策略(破坏四个必要条件之一)。
(3)避免策略(分配资源时用算法判定)。
(4)检测和解除(进程资源图、删除;剥夺)。
13、预防:
(1)资源静态分配法
(2)资源顺序分配法
注意第三章的习题
第三章并发控制——进程的同步与互斥
1.什么叫进程同步?
什么叫进程互斥?
通过前趋图进一步感受进程的同步。
答:
(1)同步,也称为直接相互制约,是指某些并发执行的进程为共同完成一个任务,需要相互合作、协同工作。
这些合作的进程都是独立地以不可预知的速度推进,这就需要在一些关键点上互相等待,互通消息。
所谓进程同步,是指多个相互合作的进程,在一些关键点上可能需要互相等待或互相交换信息,这种相互制约的关系称为进程同步。
进程同步是进程之间直接的相互作用,是合作进程间有意识的行为。
(2)互斥:
也称间接相互制约关系,是指多个进程同时竞争一个需要互斥使用的资源(如打印机等),当该资源已经分配给某个进程使用时,其它进程只能等待,直到该资源被释放。
所谓进程互斥是指当有若干进程都要使用某一共享资源时,最多允许一个进程使用,而其他要使用该资源的进程必须等待,直到占用该资源的进程释放了该资源为止。
2.什么叫临界资源?
什么叫临界区?
答:
(1操作系统中将一次仅允许一个进程访问的资源称为临界资源,如打印机、共享变量等
(2) 操作系统中把每个进程中访问临界资源的那段代码段称为临界区。
3.什么叫信号量?
它是一种解决什么问题的机制?
信号量的值可以人为设定几次?
它的值是由哪些操作改变的?
答:
(1)信号量是一个确定的两元组(S,Q),其中S是一个具有非负初值的整型变量,Q是一个初始状态为空的队列。
整型变量S表示系统中某类资源的数目,当其值大于或等于0时,表示系统中当前可用资源的数目;当其值小于0时,其绝对值表示系统中因请求该类资源而被阻塞的进程数目。
(2)信号量是一种用来有效地解决进程同步与互斥问题的机制。
(3)信号量的初值
(4)除信号量的初值外,信号量的值仅能由P操作(又叫Wait操作)和V操作(又称Signal操作)来改变。
4.体会、理解信号量以及P、V(Wait、Signal)操作的意义。
答:
一个信号量的建立必须经过说明,即应该准确说明S的意义和初值(注意这个初值不是一个负值)。
每个信号量都有一个相应的队列,在建立信号量时,队列为空。
P、V操作以原语方式实现,信号量的值仅能由这两条原语加以改变。
P、V操作的定义为:
P操作。
P操作记为P(S),其中S为一个信号量,它执行时主要完成下述动作:
⏹S=S-1;
⏹若S>=0则进程继续运行;
⏹否则(即S<0)阻塞该进程,并将它插入该信号量的等待队列中。
V操作。
V操作记为V(S),S为一个信号量,它执行时主要完成下述动作:
⏹S=S+1;
⏹若S大于0则进程继续执行;
否则(即S<=0)则从信号量等待队列中移出第一个进程,使其变为就绪状态并插入就绪队列,然后再返回原进程继续执行。
只需要把临界区置于P(S)和V(S)之间,即可以实现两个进程的互斥。
互斥访问临界区的描述如下:
----要求P1、P2互斥访问临界区:
//注意书写格式!
semaphoreS=1;
main()
{
cobegin
P1();
P2();
coend
}
P1()
{……/*剩余区*/
P(S);
进程P1的临界区;
V(S);
……
}
P2()
{……/*剩余区*/
P(S);
进程P2的临界区;
V(S);
……
}
当我们可使用的资源数量最多为1的时候,信号量一般用mutex表示.如:
semaphoremutex=1
第四章处理机调度与死锁
2.常见的作业调度算法有哪些?
常见的进程调度有哪些?
哪些调度是可剥夺的,哪些是不可剥夺的?
答:
(1)先来先服务调度算法(FCFS)、短作业优先调度算法(SJF)、响应比高者优先(HRF)调度算法
(2)剥夺式:
当系统按照某种原则发现一个比现运行的进程更合适、更应该占用CPU的进程时,系统将强迫处于运行状态的进程将CPU的使用权交给这个更合适的进程。
常见的调度原则有优先权原则、短进程优先原则和时间片原则等。
非剥夺式:
一旦某个进程占用了CPU,除非是由于它自身的原因自动放弃CPU,否则它将一直运行下去直到完成。
常见的进程调度算法有以下4种:
先来先服务算法、
最高优先权优先调度算法、
时间片轮转调度算法、
多级反馈队列调度算法
3.给定一个作业序列,按先来先服务、短作业优先、响应比高者优先算法调度,分别计算该作业序列的平均周转时间和平均带权周转时间
答:
衡量作业调度算法性能的指标
1.系统吞吐率:
平均每单位时间内完成的作业数
2.周转时间:
作业从提交到完成所经历的时间
作业i的周转时间为:
Ti=Tei-Tsi
其中,Tei为作业i的完成时间,Tsi为提交时间
3.平均周转时间:
多个作业周转时间的平均值
T=(T1+T2+……+Tn)/n
平均周转时间越短,作业吞吐率越大,系统效率越高
4.带权周转时间:
作业周转时间与作业实际运行时间的比。
作业i的带权周转时间为:
Wi=Ti/Tri
其中Ti为作业i的周转时间,Tri为作业i的实际运行时间
5.平均带权周转时间:
多个作业带权周转时间的平均值
W=(W1+W2+……+Wn)/n
4.死锁产生的根本原因是什么?
5.一是系统提供的资源有限,不能满足每个进程的需要;
二是多道程序运行时,进程推进顺序不合理。
第四章存储器管理
1.内存管理的任务是什么?
操作系统的内存管理应具备哪些功能?
答:
(1)在多道程序的环境中,存储管理的目的主要有两个:
一是提高资源的利用率,尽量满足多个用户对主存的要求;
二是能方便用户使用主存储器,使用户不必考虑作业存放在哪块区域,也不必考虑如何能实现正确运行等问题。
(2)存储管理一般应能完成如下功能:
1)按作业要求进行内存的分配并进行实时回收;
2)实现程序中的逻辑地址到物理地址的重定位;
3)对操作系统及其用户的信息提供存储保护;
4)实现主存的逻辑扩充,提供给用户更大的存储空间。
2.什么是重定位?
什么是静态重定位和动态重定位?
它们重定位的时机都在什么时候?
答:
(1)为使程序能正确运行,必须将逻辑地址空间中的逻辑地址转换为内存空间中的物理地址,这一过程称为地址重定位或地址映射。
换句话说,地址重定位就是建立用户程序的逻辑地址和物理地址之间的对应关系。
★
(2)静态地址重定位是在程序执行之前由操作系统的重定位装入程序完成的。
它根据要装入的内存起始地址,直接修改所有涉及到的逻辑地址,一次性完成逻辑地址到物理地址的转换,在程序运行中,不再进行任何地址转换。
⏹静态地址重定位的优点是只需通过重定位装入程序,即可实现逻辑地址向物理地址的转化,不需要硬件的支持,可以在任何机器上实现。
⏹早期的操作系统大多采用这种方法。
⏹缺点是程序必须占据连续的内存空间,且一旦装入内存后,就不能被移动,不利于内存空间的利用
★动态地址重定位也称动态地址映射,是指把目标程序装入内存的时候,并不立即把逻辑地址转换为物理地址,而是在程序运行过程中,当CPU访问程序和数据的时候,才进行地址转换。
为了提高转换效率,一般需要重定位寄存器的支持。
通常在程序装入内存后,将其在内存中的起始地址装入重定位寄存器。
在程序执行时,把要访问的程序(数据)的逻辑地址加上重定位寄存器中的起始地址,便可形成CPU能够访问的物理地址。
⏹动态地址重定位的优点是不要求程序装入连续的内存空间。
⏹在内存中允许程序再次移动位置,而且还可以部分地装入程序运行。
⏹便于作业共享同一程序的副本。
⏹因此现代计算机系统广泛采用动态地址重定位技术。
⏹动态地址重定位的缺点是需要硬件的支持,而且实现存储管理的软件算法也比较复杂
3、分页管理的特点:
页面的大小是固定的,通常是2^k,如256B,1KB,4KB
内存块的大小=页面的大小
连续页所分配的块不需要连续
【例子】设某进程地址空间大小为16MB。
页面大小为1KB。
问保存该进程的页表需要多大内存空间?
(1)16MB的程序可以划分出:
2^{24}/2^{10}=2^12个页面
(2)要编码2^12个页面,至少需要12bits
(3)考虑到字节对齐,保存12bits需要2Bytes,也就是用2Bytes
保存一个页面编号
(4)共需要2^12X2Bytes=2^{13}Bytes=8KB
★最简单的页表只包含页号、块号两个内容。
6.会借助于段表、页表等表格,来将给定的用户程序地址(逻辑地址)转化为内存地址。
7.理解、体会虚拟内存管理中涉及的几种页面淘汰算法,会计算页面中断数和页面中断率
第五章文件管理
2.文件的逻辑结构(2种)、
答:
文件的逻辑结构分为以下两类:
1.有结构的记录式文件
有结构的文件是指由若干个相关的记录构成的文件,又称记录式文件。
在文件中的记录一般有着相同或不同数目的数据项,根据记录的长度,记录式文件又分为等长记录文件和变长记录文件。
2.无结构文件
又称流式文件,组成它的基本信息单位是字节或字,其长度是文件中所含字节的数目。
如大量的源程序、库函数等采用的就是流式文件。
3.文件的物理结构(4种),各适合于哪种存取方式?
答:
(1)连续结构(顺序结构):
这种结构的文件,其文件在磁盘上的存放顺序与用户看到的逻辑记录是一致的。
连续文件可采用顺序存取,也可以随机存取,就看你采用什么样的存储介质来存储文件
(2)串联结构(链接结构):
且其存取的方法只能顺序存取,不能随机存取。
(3)索引文件:
索引结构要求系统为每一个文件建立一张索引表,表中每个栏目指出文件信息所在的逻辑块号和物理块号之间的对应关系
(4)Hash文件:
计算寻址
即当文件的物理结构为索引结构时,即可顺序存取,也可随机存取。
6.什么是文件目录?
文件目录的主要作用是什么?
文件目录里面存放的内容是什么?
答:
(1)文件目录实际上就是文件控制块的有序集合,即把所有文件控制块有机地结合起来,就构成了文件目录。
专放文件目录(FCB)的文件被称为目录文件。
构成目录文件的基本单元通常称为目录项——其实就是每个文件的FCB。
(2)作用:
1)可实现对文件的“按名存取”。
2)能实现对文件的共享。
3)二级目录和多级目录结构能允许文件重名。
7.一级目录、二级目录、多级目录都是怎么组织文件信息的?
各有何好处与坏处?
一级目录能解决文件的重名问题吗?
答:
(1)单级目录结构是最简单的目录结构,在整个文件系统中仅设置一个文件目录,每个文件占用一个目录项。
每个目录项包含文件名、扩展名、文件类型和长度、文件的物理地址及其它属性。
单级目录结构的优点是简单,管理方便能实现文件系统的基本功能——按名存取。
但存在一些缺点:
(1)无法解决重名问题
(2)难以实现文件共享(3)查找速度慢
二级目录就是为了实现文件能重名而提出的。
在二级目录中,第一级为主文件目录(MFD),它用于管理所有用户文件目录,它的目录项登记了每个用户名及其文件目录的地址。
第二级为用户文件目录(UFD),它为该用户的每个文件设置一个目录项,用户只允许查看他自己的目录项。
缺点:
二级目录解决了不同用户不能采用同一个文件名的问题,但还是不能反映目录的层次关系。
在多级目录结构中,对文件的访问是通过文件的路径名进行的。
路径名又分为绝对文件名和相对文件名。
多级目录有以下优点:
(1)层次清楚
(2)解决了重名问题
(3)检索速度快。
可为每类文件建立一个子目录,从而很容易查找。
多级目录的缺点是:
由于是按路径名逐层查找文件,而每个文件都放在外存,因此查找过程中要多次访问磁盘,从而影响计算机的速度。
8.什么是i节点?
里面存放了什么内容?
答:
(1)在有些系统中,如Unix/Linux,采用了文件名和文件描述信息分开存储的方法,使文件的描述信息单独形成一个数据结构。
该数据结构称为索引节点,简称i节点。
在文件的目录项中,只包含两个内容:
文件名和指向i节点的指针。
(2)索引节点又分为磁盘i节点和内存i节点两种。
磁盘i节点是指存放在磁盘上的i节点,其主要内容包括:
●文件所有者标识符、
●文件类型、存取权限、
●文