计算机操作系统-复习大纲-知识点总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统复习
PS:有些题目红字为必背,()为解释,黄背景为了解。

第一章
一、操作系统的作用?
(1)OS作为用户与计算机硬件系统之间的接口;
(2)OS作为计算机系统资源(软硬件资源)的管理者;
(3)OS实现了对计算机资源的抽象,包括第一层次的抽象:设备管理软件;第二层次的抽象:文件管理软件。

虚拟机或扩充机器:资源抽象
第一层次的抽象:设备管理软件
第二层次的抽象:文件管理软件(文件系统)
二、操作系统的发展过程?
(1)手工操作:穿孔卡片;
(2)监督程序——早期批处理:计算机高级语言出现,单道批处理;
(3)多道批处理系统——现代意义上的操作系统。

PS:单道批处理系统是在解决人机矛盾和CPU与I/O设备速度不匹配的矛盾过程中产生的。

三、什么是多道程序设计技术?它的优点是什么?缺点是什么?(不考)
多道批处理:允许多个程序同时存在于主存之中,由中央处理机以切换方式为之服务,使得多个程序可以“同时”执行。

PS:单道批处理系统中在I/O启动至I/O操作完成过程中,CPU处于空闲状态;多道批系统利用这个CPU空闲时间,让CPU将其他程序调入内存,提高了CPU的利用率)优点:
(1)资源利用率高;(多道程序交互执行,保持了CPU始终处于忙碌状态)
(2)系统吞吐量大;
缺点:
(1)平均周转时间长;(多道批中,作业排队依次进行处理,周转时间长)
(2)无交互能力。

(作业提交-完成过程中,用户不能与作业进行交互)
四、实现分时系统的关键问题是什么?应如何解决?
关键问题:实现用户和自己的作业进行交互。

解决:允许多个用户同时通过自己的键盘键入命令,系统也能全部及时接收和及时处理。

PS:
一、分时系统:(分时:划分时间片,作业按时间片运行)在一台主机上连接了多个配有显
示器和键盘的终端并由此组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。

及时接收:在系统中配置多路卡,实现分时多路复用。

及时处理:作业直接进入内存;采用轮转方式运行(设置时间片,每个作业每次只能运行一个时间片,然后暂停,并立即调度下一个作业运行)。

二、实时系统:(实时:规定时间完成处理)系统能及时响应外部事件的请求,在规定时间
内完成对该事件的处理,并控制所有实时任务协调一致地运行。

类型:工业武器控制系统;信息查询系统;多媒体系统;嵌入式系统。

实时任务的类型:
(1)周期性实时任务、非周期性实时任务;(前者:外部设备周期性的发出激励信号给计算机,要求它按指定周期循环执行;后者设置开始截止时间【在某时间之前必须开始执行】和完成截止时间【在某时间前必须完成】)
(2)硬实时任务、软实时任务;(都设置一个截止时间,但前者强制要求截止时间内完成,后者不太严格)
五、操作系统四大特征、五大功能?
四大特征:并发(同时有多个程序并发执行)、共享(资源共享或资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用)、虚拟()、异步(进程的执行以“停停走走”的方式运行)
五大功能:处理机管理功能;存储器管理功能、设备管理功能、文件管理功能、操作系统与用户之间的接口;
PS:并发性:两个或多个事件在同一时间间隔内发生;
并行性:两个或多个事件在同一时刻发生。

资源共享两种方式:
(1)互斥资源共享:在一段时间内,只允许一个进程访问该资源;
(2)同时访问方式:允许一段时间内由多个进程“同时”对资源进行访问
实现虚拟的两种技术:
(1)时分复用技术:利用某设备为以用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分地利用。

多道程序技术利用处理机的空闲时间运行其他程序,
提高了处理机的利用率。

(2)空分复用技术:利用存储器的空闲空间分区存放和运行其他的多道程序,提高内存的利用率。

“停停走走”:系统中资源因素限制。

六、操作系统的接口类型:
用户接口(CLI、GUI,供用户获取系统的服务)
程序接口(API/系统调用,以系统调用的形式提供用户编程时使用)
第二章
一、为什么要引入进程?
为了使程序并发执行,并可以对并发执行的程序加以描述和控制。

PS:进程较典型的定义:程序的一次执行;一个程序及其数据在处理机上顺序执行时所发生的活动;具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位。

进程实体:由程序段、相关的数据段和PCB三部分构成
二、进程的基本特征:4个
动态性(进程最基本的特征,由创建而产生、由调度而执行、由撤销而消亡)
并发性(进程的重要特征,也是OS的重要特征)
独立性(进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位)异步性(“停停走走”)
三、P CB:存放的信息
Process Control Block:进程控制块,用来描述进程的基本状况和活动过程,进而控制和管理进程。

PCB提供了进程管理和调度的哪些信息?
进程管理:通用寄存器、指令计数器、程序状态字、用户栈指针;
进程调度:进程状态、进程优先级、事件、其他信息。

四、进程的三种基本状态,它们之间如何进行转换?
就绪状态(进程已分配到除CPU以外的所有必要资源)、执行状态(进程分配到CPU,正在执行)、阻塞状态(正在执行的进程由于发生某事件如I/O请求、申请缓冲区失败
等暂时无法继续执行时的状态)
进程状态转换
(1) 就绪→执行
处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。

(2) 执行→就绪
处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。

(3) 执行→阻塞
正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。

(4) 阻塞→就绪
处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。

五、引入挂起之后的五状态
(1)NULL→创建
一个新进程产生时,该进程处于创建状态。

(2)创建→活动就绪
当前系统的性能和内存的容量均允许,相应的系统进程将进程的状态转换为活动就绪状态。

(3)创建→静止就绪
考虑到系统当前资源状况和性能的要求,不分配给新建进程所需资源,主要是内存,相应的系统将进程的状态转换为静止就绪状态,被安置在外存,不参与调度,此时进程创建工
(4)执行→终止
当进程已完成任务时,或是出现了无法克服的错误,或是被OS或是被其它进程所终结,此时进程的状态变为终止状态
六、原语特点:
原子性,运行在内核态
原语是由若干条指令组成的用于完成一个特定功能的操作,要么不做,要么全做。

七、进程创建的典型事件、创建过程
导致一个进程创建另一个进程的典型事件:
(1)用户登录(分时系统中,用户键入登录命令并登陆成功,系统为用户创建进程,插入就绪队列)
(2)作业调度(多道批处理系统中,作业调度程序按一定的算法调度某个作业,将他们装入内存,并创建进程,插入就绪队列)
(3)提供服务(运行中的用户程序提出某种请求,系统专门创建一个进程提供它所需服务)
(4)应用请求(由用户进程自己创建,以便使新进程以同创建者进程并发运行的方式完成特定任务)
通过进程创建原语(不可分操作)创建过程:
(1)申请空白PCB(为新进程申请获得唯一的数字标识符,并从PCB集合中索取一
个空白PCB)
(2)为新进程分配其运行所需的资源(包括物理资源和逻辑资源,如内存、文件、I/O 设备、CPU事件等,这些资源从操作系统或父进程获得)
(3)初始化PCB
(4)如果进程就绪队列能接纳新进程,便将新进程插入就绪队列
八、进程控制原语:3对
(1)block:阻塞原语
wakeup:唤醒原语,将阻塞进程唤醒
(2)suspend:挂起原语,将处于阻塞状态的进程挂起
active:将指定进程激活,如静止就绪→活动就绪,静止阻塞→活动阻塞(3)create:创建原语
destroy:进程撤销原语
九、临界资源、临界区的概念
临界资源:一次只允许一个进程访问的资源。

临界区:在每个进程中访问临界资源的那段代码成为临界区。

把一个访问临界资源的循环进程描述如下:
while(True)
{
进入区(检查临界资源是否被某进程访问的代码)
临界区(每个进程中访问临界资源的代码)
退出区(将临界区正被访问的标志恢复为违背访问的标志的代码)
剩余区(除以上三者之外的代码)
}
十、进程的同步机制:16个字
空闲让进(当前没有进程进入临界区)
忙则等待(已有进程正在访问临界资源,其他进程需等待,CPU仍保持)
有限等待(保证在有限时间内让请求访问的进程能够进入,防止出现死等状态)
让权等待(当进程不能进入临界区,会立即释放CPU)
※“让权等待”在进程不能进入临界区时会释放处理机,防止CPU资源的浪费,而“忙则等待”不可以。

PS:进程同步是源于进程之间的合作关系,进程同步机制的主要任务是对多个进程在执行次序上进行协调,使并发执行的诸进程之间能按一定的规则(或时序)共享系统资源,并能很好的合作,从而使程序的执行具有可再现性。

实现进程互斥访问临界资源的机制:
软件方式:较难实现;
硬件指令方式:
(1)关中断
(2)利用Test-and-Set指令实现互斥
(3)利用Swap指令实现进程互斥
信号量机制:
(1)整形信号量:进程请求资源不足时,会陷入忙等状态,一直占据CPU
(2)记录型信号量:对整形信号量的修改,添加了记录型链表,保存处于阻塞状态的CPU,请求进程在资源不足时释放CPU,实现了让权等待。

(3)AND型信号量:适合多个进程共享多个资源的情况,进程请求多个资源,要么全部分配,要么不分配。

(4)信号量集
十一、记录型信号量的含义,它是如何解决整型信号量中所出现的“忙等”问题的?
记录型信号量不存在“忙等”机制的进程同步机制。

(记录型信号量在资源不足时可以将请求进程加入进程链表中,block实现了“让权等待”;wakeup将等待进程唤醒)解决:采用记录型的数据结构,一个用于代表资源数目的整型变量value,还增加一个进程链表指针list用于链接上述所有等待进程。

在进程的wait操作中,S->value<0表明该类资源已分配完,进程调用block原语进行自我阻塞,放弃处理机,并插入到信号量链表S->list中,实现了让权等待。

在signal操作中,S->value++表示资源加1,若S->value<=0则表示信号量链表中仍有等待该资源的进程被阻塞,所以调用wakeup原语将S->list中的第一个等待进程唤醒。

若S->value初值为1,则表示只允许一个进程访问临界资源,此时信号量转化为互斥信号量,用于进程互斥。

十二、什么是忙等,有何缺点?
忙等是当一个进程位于其临界区内时,任何试图进入其临界区的进程都必须在其进入代码中连续地循环。

缺点:没有做到“让权等待”,降低了CPU 的使用效率。

十三、信号量集的引入
由于记录型信号量机制每次只能对某类临界资源进行一个单位的申请或释放。

当一次需要N个单位时,便要进行N次wait(S)操作,低效且容易引发死锁。

(当进程申请某类临界资源时,在每次分配之前,都必须测试资源的数量是否>可分配的下限值,决定是否予以分配。


十四、什么是前趋图?为什么要引入前趋图?(编程)
前趋图是一个有向无循环图,用于描述进程之间执行的先后顺序。

十五、应用信号量机制解决进程的同步与互斥问题(生产者与消费者、读者写者问题)哲学家就餐问题
读者写者问题
第三章
一、调度层次:3级
高级调度(作业调度或长程调度,运行频率最低、合理调度作业进入内存,并为他们创建进程,分配资源)
低级调度(进程调度或短程调度,运行频率最高,调度进程获取处理机)
中级调度
提高内存利用率和系统吞吐量,将暂不能运行的进程,
调入外存,当它们具备运行条件且内存有了空闲时间,再重新调入内存)
二、作业调度
任务:接纳多少作业,接纳哪些作业
三、进程调度算法(要求知道每种算法的调度规则、调度方式与偏好性,会计算周转时间与带权周转时间)
利用率 有效工作时间
有效工作时间 空闲等待时间
周转时间完成时间到达时间
周转时间
带权周转时间
服务时间
每个作业的周转时间之和
平均周转时间
进程数
带权周转时间之和
平均带权周转时间
进程数
优先级调度算法:
静态优先级(在创建进程时确定优先级,在执行过程中保持不变,用整数值表示,0-255)动态优先级(在创建进程时确定优先级,在执行过程中随进程的推进或等待时间的增加而改变,以便获得更好的调度性能)
多队列调度算法:设置多个进程就绪队列,将不同类型或性质的进程固定分配在不同的就绪队列,不同的就绪队列采用不同的调度算法,一个就绪队列中的进程可以设置不同的优先级,不同的就绪队列本身也可以设置不同的优先级。

保证调度算法:P104
保证调度算法向用户保证的是明确的性能,可以做到调度的公平性。

保证处理机分配的公平性:如果系统中有n个相同类型的进程同时运行,须保证每个进程都获得相同的处理机时间1/n。

PS:(1)非抢占式优先级调度算法:一旦把处理机分配给就绪队列中优先级最高的进程后,该进程便一直执行下去,除非该进程因某事件发生而放弃处理机,否则不会将处理机分配给其他进程。

(2)抢占式优先级调度算法:在把处理机分配给就绪队列中优先级最高的进程后,如果在其执行期间出现一个优先级更高的进程,则将处理机分配给新进程。

用于对实时性要求比较高的进程。

四、实时调度算法
最低松弛度优先算法LLF
(1)调度规则:根据任务的紧急程度(或松弛程度)确定优先级。

任务紧急程度越高,赋予该任务的优先级越高。

(2)松弛度=必须完成时间-本身运行时间-当前时间P110
五、优先级倒置的概念
高优先级进程被低优先级进程延迟或阻塞。

六、死锁的相关概念
死锁的定义:如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的(Deadlock)。

产生死锁的原因:通常是多个进程在运行过程中争夺资源。

产生死锁的四个必要条件:
(1)互斥条件:在一段时间内,某资源仅允许一个进程占用。

如果有个进程正在访问某资源,其他进程只能等待。

(2)请求和保持条件:进程已保持了一个资源,又提出新的资源请求,但该资源已被其他进程占有,此时请求进程被阻塞,但有对已获得的资源保持不放。

(3)不可抢占条件:进程已获得的资源使用过程中不可被抢占,只能在使用完后由进程本身释放。

(4)循环等待条件:在发生死锁时,必然存在一个进程——资源的循环链,进程等
待队列{P1,P2,…,Pn},其中P1等待P2占有的资源,P2等待P3占有的资源,…,
Pn等待P1占有的资源,形成一个进程等待环路,环路中每一个进程所占有的
资源同时被另一个申请,也就是前一个进程占有后一个进程所申请的资源。

预防死锁:破坏四个条件中的一个或多个。

七、避免死锁P119
系统的状态:安全状态(存在一个安全序列)和不安全状态
银行家算法
八、检测并解除死锁
检测死锁:资源分配图完全简化法
解除死锁:剥夺资源与撤消进程
第四章
一、存储器介绍
可执行存储器:寄存器和主存储器,进程可以在很少的时钟周期内通过load或store 对其进行访问。

但对于辅存的访问,则需要通过I/O设备实现。

主存储器:用于保存进程运行时的程序和数据。

寄存器:主要保存处理机运行时的数据,加快存储器的访问速度,具有与处理机相同的速度。

高速缓冲存储器:介于寄存器和存储器之间,主要用于备份主存中较常用的数据,减少处理机对主存储器的访问次数,以此提高程序执行速度。

磁盘缓存:本身并不实际存在,而是利用主存中的部分存储空间暂时存放频繁使用的一部分磁盘数据和信息,减少访问磁盘的次数。

二、程序的装入与链接
1.对用户程序的处理步骤:把用户程序装入内存,然后转变成一个可执行文件。

(1)编译(用户源程序编译程序编译
目标模块)
(2)链接(目标模块库函数链接程序链接
装入模块)
(3)装入(装入模块装入程序
装入内存)
(4)运行
2.装入
(1)绝对装入方式(只适合单道程序环境,不需要重定位)
当计算机系统仅能运行单道程序时,完全可能知道程序驻留在内存中的位置,所以能将目标模块装入内存中事先指定的位置。

(2)可重定位装入方式(多道程序环境,需要重定位,且是静态重定位)
多道程序环境不可能事先知道程序驻留在内存中的位置,所以采用可重定位可重定位装入方式,根据内存中的具体情况将装入模块装入到内存中的适当位置。

只在进程装入时进行一次地址变换,是静态重定位。

采用此种方式会使装入模块中的所有逻辑地址与实际装入内存后的物理地址不同,需要重定位(即修改数据地址和指令)见书P133 图4-3
原数据地址修改,原来指令中的取数地址也要修改。

(3)动态运行时的装入方式(允许程序运行时在内存中移动位置,需要重定位)
P133 采用重定位寄存器,装入内存后的所有地址都是逻辑地址,将地址转换推迟到程序真正要执行时。

3.链接P134 图4-4
(1)静态链接方式(事先进行链接)
在程序运行前,将各目标模块及他们所需的库函数链接成一个完整的装配模块。

之后不
容易修改。

(2)装入时动态链接方式
在装入内存时,采用边装入边链接的方式,目标模块是分开存放的,易于修改或更新;容易将一个目标模块链接到几个应用模块上,实现多个应用程序对该模块的共享。

(3)运行时动态链接方式
很多情况下事先无法知道要用到哪些模块,只能将所有可能的模块装入内存,低效且占空间。

此种方式将对某些模块的链接推迟到程序执行时才进行,在执行过程中由OS去找未调用的模块调入内存,链接到调用者模块上。

4.什么是重定位?
由于一个作业装入到与其逻辑地址空间不一致的绝对地址空间,而引起的对有关地址部分的调整,即逻辑地址转换成绝对地址的过程称为重定位,也称为地址转换。

5.重定位有几种形式,如何实现?
静态重定位、动态重定位。

静态重定位是软件支持的;动态重定位是软件和硬件相互配合实现的。

PS:
6.分别与何种装入方式相对应?
静态重定位与可重定位装入方式对应;
动态重定位与动态运行时的装入方式对应。

7.哪种装入方式不需要进行重定位?
绝对装入方式不需要重定位。

二、动态分区分配算法
空闲分区表:在系统中设置一张空闲分区表,用于记录每个分区的情况。

每个空闲分区占一个表目,表目中包括分区号、分区大小、分区始址、分区状态数据项;
空闲分区链:为实现对空闲分区的分配和链接,在每个分区的起始部分设置一些用于控制分区分配的信息,以及用于链接各分区所用的前向指针,在分区尾部设置一后向指针。

内碎片:已经分配,但无法利用的空间。

外碎片:还未分配,但太小了,无法分配的空间。

1.基于顺序搜索的算法:(只适合于小系统)
(1)首次适应算法(要求空闲分区链以地址递增的次序链接,在分配内存时,从链首开始查找,直至找到一个大小能满足要求的空闲分区为止,然后按照作业大小,分划出一块内存分给请求者。

该算法倾向于优先利用中低址部分的空闲分区,易产生碎片。


(2)循环首次适应算法(从上次找到的空闲分区的下一个分区开始查找,直至找到一个满足要求的空闲分区,然后划分。

循环查找。

能使内存中的空闲分区分布的更均匀。

会缺乏大的分区。


(3)最佳适应算法(按容量大小将空闲分区形成一条空闲分区链。

每次把满足要求的最
小分区分给作业,孤立地看很好。

但剩余部分也是最小的,可能会不能再利用,易产生外碎片。

宏观上不一定是最好的。


(4)最坏适应算法(总是挑一个最大的进行划分,容易缺乏大的空闲分区。

但是划分后的剩余部分不至于太小,产生外碎片的可能性小,对中小作业有利,不一定是最坏的,查找效率高。


2.基于索引搜索的算法:(适合于大、中型系统)
(1)快速适应算法(又称分类搜索法,将空闲分区按照容量大小(按进程常用的空间大小进行划分,如2KB、4KB、8KB等)进行分类,每一类设立一个空闲分区链表,系统中就有多个空闲分区链表。

在内存中设立一个管理索引表,每个索引表项对应一种空闲分区类。

查找效率高,不对分区进行切割,不会产生碎片。

但分区归还算法复杂,系统开销大。

)(2)伙伴系统(无论已分配分区或空闲分区,大小均为2的K次幂。

将空闲分区按分区大小进行分类,每类设立一个空闲分区双向链表。

P141)
(3)哈希算法(利用哈希快速查找,以及空闲分区在可利用空闲分区表中的分布规律,建立哈希函数,构造以空闲分区大小为关键字的哈希表,该表的每一个表项记录了一个对应的空闲分区链表表头指针。


3.空闲分区的回收算法
补充:多道程序环境下的对换技术(不考)
为了解决两种问题:
1.内存中某些进程本身占用了大量空间,但其因等待某事件发生而阻塞或者所有进程
都被阻塞,迫使CPU停止等待的情况。

2.许多作业因内存不足,一直驻留在外存上,无法进入内存运行。

综上所述,以上两种情况都属于浪费系统资源,降低CPU效率的情况,为解决引入了对换。

对换:将暂不能运行的进程或作业暂时调到外存中,先找能运行的。

主要原因还是内存太小。

对换类型:(1)整体对换,中程调度。

(2)页面(分段)对换,以进程的一个页面或分段为单位进行的。

具有对换功能的OS中,通常把磁盘空间分为文件区和对换区。

文件区存放各类文件,对换区存放从内存换出的进程
三、基本分页存储管理(重点)P150
页:将用户程序的地址空间分为若干个固定大小的区域。

块:将内存空间分成块,和页的大小相等,可以将页放入块中。

1.逻辑地址结构
31 12 11 0 地址空间最多允许1M=页,每页大小4KB=
地址
页内偏移量地址页面大小
页号
页面大小
2.基本的地址变换机构(将逻辑地址转换成物理地址)
设置一个页表寄存器
页表:将页离散的放入块中,由一组专门的寄存器实现
(1)例:给定逻辑地址3500,页面大小为1K,块号为7的物理块中存着页号为3的页,求物理块内地址?
页号=[3500/1024]=3 页内偏移量=3500%1024=428
块大小=页大小=1K。

相关文档
最新文档