操作系统复习提纲.docx
《操作系统复习提纲.docx》由会员分享,可在线阅读,更多相关《操作系统复习提纲.docx(14页珍藏版)》请在冰豆网上搜索。
操作系统复习提纲
操作系统复习提纲
第一部分绪论
1.操作系统在计算机系统中的地位:
操作系统进行资源分配,充当着计算机系统大管家的角色。
操作系统的作用:
(1)一般用户角度:
OS作为用户与计算机硬件系统之间的接口
(2)资源管理角度:
OS作为计算机系统资源的管理者(3)OS产生的角度:
OS实现了对计算机资源的抽象。
操作系统定义:
操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序集合。
2.操作系统的五大功能模块basicfunctionmodules:
处理机管理功能、存储器管理功能、设备管理功能、文件管理功能、操作系统与用户之间的接口
3.现代操作系统的四大特征characteristic:
并发性、共享性、虚拟技术、异步性(随机性)。
(并发性:
指两个或多个事件在同一时间运行;并行性:
指两个或多个事件在同一时刻发生)
4.操作系统的三个基本类型及其特点:
(1)多道批处理系统:
资源利用率高、系统吞吐量大、平均周转时间长、无交互能力
(2)分时系统:
多路性、独立性、及时性、交互性(3)实时系统:
多路性、独立性、及时性、交互性、可靠性。
(单道批处理系统:
自动性、顺序性、单道性)
第二部分处理机管理(进程管理+处理机调度)
1.进程的定义:
进程是可以并发执行的程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位;进程是程序的一次执行过程;进程是可参与并发执行的程序;进程是一个程序及其数据在处理机上顺序执行时所发生的活动;进程是在给定初始状态和内存区域的条件下,可以并发执行的程序的一次执行过程。
传统OS中进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程的引入的背景:
在多道程序环境下,程序的执行属于并发执行,此时它们将失去封闭性,并具有间断性,以及其运行结果不可再现性的特征。
因此为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,就引入了“进程”的概念。
线程定义:
线程是程序执行流的最小单元,是调度和分派的基本单位,它是进程中的一个实体。
线程的引入背景:
已经引入了进程,使多个程序能并发执行,提高资源利用率和系统吞吐量,再引入线程是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。
2.进程控制块:
(进程实体的三部分:
程序代码、程序段操作的数据源、进程控制块)为描述进程动态变化过程以及对进程进行控制与管理而设的数据结构。
进程与PCB一一对应,操作系统根据PCB了解进程的存在,是系统感知进程的唯一标识。
3.进程三状态模型:
就绪状态、执行状态、阻塞状态
它的状态转换(包括状态转换原因,会用图示加以说明)以及进程五状态模型及其状态转换
4.挂起的概念:
当该操作作用于某个进程时,该进程将被挂起,意味着此时进程处于静止状态。
对正在执行的进程,则停止执行。
对就绪状态的进程,则停止调度,并回收资源。
对阻塞状态的进程,则停止条件的发生(把内存里暂不具备运行条件的进程转至外存)。
挂起的引入背景:
(1)终端用户的需要:
发现可疑问题
(2)父进程的需要:
考查、修改子进程、协调子进程间活动(3)负荷调节的需要:
调整负荷,使系统正常运行(4)操作系统的需要:
检查资源使用情况(5)对换的需要:
缓和内存紧张
5.并发执行的进程,由于资源共享存在着间接制约,需要互斥;由于进程合作存在着直接制约,需要同步。
什么是同步?
互斥?
同步:
它是进程之间通过在执行时序上的某种限制而达到相互合作的这种约束关系,它是一种直接相互制约。
互斥:
程序之间彼此无关,但是由于竞争使用同一共享资源而产生了相互约束的关系。
这种因共享资源而产生的制约关系成为进程的互斥,又称为间接制约关系。
6.临界资源:
凡是以互斥方式使用的共享资源都称为临界资源。
临界资源具有一次只允许一个进程使用的属性。
临界区:
每个进程中,访问临界资源的那段代码称为临界区。
临界区是一段代码。
进程进入临界区要遵循的准则(即同步机制应遵循的规则):
(1)空闲让进:
无进程处于临界区内时,可让一个申请进入该临界区的进程进入
(2)忙则等待:
临界区内有进程时,申请进入临界区的进程必须等待(3)有限等待:
进程进入临界区的请求,必须在有限的时间内满足。
(4)让权等待:
等待进入临界区的进程,必须立即释放CPU。
7.记录型信号量:
定义:
structsemaphore{
int:
value;信号量值:
表示某种资源的数量。
queue:
*L;信号量等待队列指针:
信号量值为负时,表示该类资源已分配完
};
信号量的取值范围(从负到正):
信号量初值为m,反映有m个资源可用,或一次可以有m个进程共用。
如有n个进程共享使用此资源,n>m,则信号量的取值范围为:
m,m-1,0,-1,-(n-m)
(1)S.Value>0:
表示某类资源可用数
(2)S.Value<=0:
表示其绝对值为在信号量队列中等待释放资源的进程数。
8.设信号量用PV原语解决同步和互斥问题:
在信号量基础上引入同步操作原语:
P操作、V操作。
(1)P操作(wait原语):
每执行一次P操作,申请分配一个单位的资源。
P(S)—对信号量S进行P操作。
S.value=S.Value-1;若S.Value≥0则进程继续执行。
若S.Value<0则进程阻塞,并进入等待队列(L)。
P操作:
P(s){
semaphore:
s;
s.value=s.value-1;
ifs.value0block(s.L);
}
(2)V操作(Signal原语):
V(S)—对信号量S进行V操作,释放一个单位的资源。
S.value=S.Value+1;若S.Value>0则进程继续执行。
若S.Value≤0则唤醒S等待队列中的一个进程,使之转为就绪状态。
V操作:
V(s){
semaphore:
s;
s.value=s.Value+1;
ifs.value=0wakeup(s.L);
}
semWait:
用于申请资源,作为进入区的使用。
semSigal:
用于释放资源,作为退出区使用。
semWait和semSignal操作对应资源的申请和释放,必须成对出现。
semWait和semSignal都需要修改信号量,为了保证可再现性,要求semWait和semSignal操作执行过程中不允许中断,用原语实现。
也即P原语和V原语。
如果s.count初值为1,表示只允许一个进程访问该资源,即为临界资源,此时为互斥信号量。
三大经典模型(生产者-消费者问题、哲学家进餐问题、读者写者问题)及相关练习(书P60)
例:
有一个充分大的池子,两个人分别向池中扔球,甲扔红球,乙扔蓝球,一次扔一个,开始时池中有红、蓝球各一个,要求池中球满足条件:
1≦红球数/蓝球数≦2.用P、V操作描述两个进程:
解:
题目要球红球数要大于等于蓝球数,且池中已经有一红一蓝球,那么开始之后只能扔一红球,然后再扔一蓝球;扔一蓝球又可连续扔两红球。
那么:
设有两个信号量Red和Blue,
描述过程如下:
9.进程高级通信方式:
直接通信方式:
指发送进程利用OS所提供的发送原语,直接把消息发送给目标进程。
间接通信方式:
指发送和接收进程,都通过共享中间实体的方式进行消息的发送和接收,完成进程间的通信。
10.死锁:
如果一组进程中的每一个进程都在等待仅由该组进程中的其他进城才能引发的事件,那么该组进程是死锁的。
死锁产生的原因:
(1)竞争不可抢占性资源引起死锁
(2)竞争可消耗资源引起死锁(3)进程推进顺序不当引起死锁
产生死锁的四个必要条件:
(1)互斥条件:
进程对分配到的资源进行排它性使用
(2)请求和保持条件:
进程已经保持了至少一个资源,但又提出了新的资源要求,而该资源又被其他进程占有,请求进程阻塞,但对已经获得的资源不放(3)不剥夺(不可抢占)条件:
进程已获得的资源,使用完之前不能被剥夺,只能用完自己释放(4)环路等待条件:
发生死锁时,必然存在进程——资源的环形链。
如何预防死锁:
设置某些限制条件,破坏四个必要条件中的一个或几个(破坏“请求和保持”条件;破坏“不可抢占”条件;破坏“循环等待”条件)。
优点:
容易实现。
缺点:
系统资源利用率和吞吐量降低。
银行家算法避免死锁(书P111):
11.处理机调度的类型及各自的任务:
低级调度:
进程调度、短程调度,三种类型OS都必须配置这级调度。
它是最基本的调度。
它的功能是:
根据某种算法,决定就绪队列中的那个进程应获得处理机,并由分派程序处理机分配给被选中的程序
中级调度:
又称中程调度或者内存调度。
它的目的是为了提高内存利用率和系统吞吐量。
高级调度:
称作业调度、长程调度或接纳调度,批处理系统需要有作业调度,分时和实时系统无需此调度。
它的功能是:
根据某种算法决定将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列。
处理机调度算法:
先来先服务算法FCFS(书P89,PPT第3章11页),短作业(进程)优先调度算法SPN(PPT第3章15页),轮转调度算法RR(书P93,PPT第3章28页),高响应比优先调度算法HRRN(书P90,PPT第3章21页),优先权调度;并会计算在某种调度算法下,周转时间等指标值:
(1)先来先服务(FCFS):
适合于作业调度和进程调度。
优点:
有利于长作业(进程)。
缺点:
不利用短作业(进程),特别是来的较晚的短作业(进程)。
(2)短作业(进程)优先调度算法SPN:
适合于作业调度和进程调度。
优点:
(1)能有效降低作业的平均等待时间。
(2)提高系统的吞吐量。
缺点:
(1)必须预知作业的运行时间
(2)对长作业不利,更严重的是可能将导致长作业(进程)长期不被调度。
(3)该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理。
(3)轮转调度算法RR:
在早期的时间片轮转法中,系统将所有就绪进程按先来先服务原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。
当时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。
(4)高响应比优先调度算法HRRN:
基于作业的紧迫程度,由外部赋予作业相应的优先级。
适合于作业调度和进程调度
12.什么是“优先级倒置”现象:
即高优先级进程(或线程)被低优先级进程(或线程)延迟或阻塞。
解决方法有哪些:
(1)进程P3在进入临界区后P3所占用的处理机就不允许被抢占。
如果系统中的临界区都较短且不多,则可行,否则,效果无法令人满意。
(2)建立在动态优先级继承基础上。
规定,当高优先级进程P1要进入临界区,去使用临界资源,如果已有一个低优先级进程P3正在使用该资源,此时P1被阻塞,由P3继承P1的优先级,并一直保持到P3退出临界区。
第三部分存储管理(常规存储管理方法和虚拟内存管理)
1.什么是物理地址?
逻辑地址?
相对地址?
物理地址:
数据在主存的实际地址(绝对地址)
逻辑地址:
与当前数据在内存的物理分配地址无关的访问地址,在执行对内存的访问前必须把它转换为物理地址。
相对地址:
是逻辑地址的一种特例,相对于某些已知点(程序开始处)的地址。
2.地址重定位的种类及各自的优缺点
(1)静态重定位:
装入模块为相对地址(逻辑地址),装入程序按照当前内存使用情况,将装入模块装入内存的某个物理地址。
但是装入后不允许移动
(2)动态重定位:
程序装入后,并不立即进行地址转换,而是在执行过程中,当执行到本条指令需要进行地址变换时,再进行的地址重定位,此方式需要特殊硬件的支持。
。
装入内存后的所有地址都仍是逻辑地址。