操作系统原理期末考试复习大纲.docx
《操作系统原理期末考试复习大纲.docx》由会员分享,可在线阅读,更多相关《操作系统原理期末考试复习大纲.docx(28页珍藏版)》请在冰豆网上搜索。
![操作系统原理期末考试复习大纲.docx](https://file1.bdocx.com/fileroot1/2023-1/2/59513a77-2541-49cb-b9c7-d2d24b6d7e6a/59513a77-2541-49cb-b9c7-d2d24b6d7e6a1.gif)
操作系统原理期末考试复习大纲
操作系统原理期末考试复习大纲
牢记操作系统的宗旨两根红线:
面向系统——提高资源利用率
面向用户——提供良好的用户界面,方便用户
第1章绪论
操作系统定义及其功能;
操作系统的定义:
(本质)是一个大型的软件系统;
(对内)负责计算机的全部软件、硬件资源的管理,控制和协调并发活动,实现信息的存储
和保护;
(对外)为用户使用计算机系统提供方便的用户界面;
(结果)使计算机系统实现高效率和高自动化。
面向系统资源,操作系统必须尽可能提高资源利用率;
面向用户,操作系统必须提供方便易用的用户界面。
操作系统的功能:
从资源管理及面向用户的角度:
处理机管理(最重要功能)
作业调度
进程(或线程)调度
进程控制
进程间通信
存储管理
内存的组织分配
内存回收
内存保护
内存扩充(虚拟)
内存映射
设备管理
设备分配(动态分配)
一个通用设备驱动程序的接口——设备独立性(或无关性)
用于特定硬件设备的驱动程序(含设备中断处理)
缓冲区管理
文件管理
文件的操作和使用
文件树状目录管理
文件的物理结构及存储空间管理
文件的共享和保护
提供良好的用户界面
操作命令界面
键盘命令
图形界面
批处理界面
系统调用界面
多道程序设计技术;
多道程序设计技术是在计算机内存中同时存放几
道相互独立的程序,它们在操作系统管理程序的控制
下相互穿插地运行。
多道特征:
多道——同时有多个程序都在系统的某个硬件(CPU或外
设)上执行或等待执行。
宏观上并行(通常称为:
并发)——站在用户的角度看,
所有的程序都在运行之中。
微观上串行——站在硬件设备的角度看,每次只运行一道
程序。
比如CPU和输入输出设备,任何时刻最多
只被一个程序占有。
批处理操作系统、实时操作系统与分时操作系统的主要特点与区别;(操作系统分类)
是否所有操作系统都将提高资源利用率放在第一位?
操作系统按功能可以分为以下几种类型:
批处理系统
由操作系统按作业控制语言给定的控制流程进行作业选择,并将选中的若干作
业调入内存以多道方式投入运行。
批处理系统的优点是系统吞吐量大,资源利用率高。
批处理系统不具有交互性,这是其缺点。
分时操作系统
分时操作系统采用“时间片”、动态优先数等方式使CPU轮流为多个用户终端或多个任务服务。
分时系统的主要特点是:
1.多路调制性2.独占性3.交互性
实时操作系统
实时控制系统响应速度快,可靠性要求高
实时信息处理系统更强调系统的安全性和可靠性
不具备分时系统的强交互性。
实时系统的主要特点是:
1.对响应时间的实时要求(可高可低)。
2.系统可靠性和安全性放在第一位,系统效率放在次要地位,交互性差或根本
没有交互性。
3.系统整体性强。
很多实时系统同时又是分布式系统,具有分布式系统整体
性强的优点。
网络操作系统
分布式操作系统
操作系统的主要特征;
并发性、共享性、不确定性(异步性)、虚拟性
第3章用户界面
操作系统用户界面的两种类型
操作命令界面
系统调用界面
(任何操作系统都必须提供系统调用界面。
)
用途:
系统调用界面是为应用程序提供的系统服务界面,用于用户源程序中需要请求系
统服务的地方;
形式:
以语句或函数的形式提供给用户;
必要性:
所有操作系统都必须提供系统调用。
两者关系:
操作命令界面是在系统调用界面的支持下开发完成的。
系统调用是实现操作系统功能和应用程序功能的支撑平台。
在设计操作系统时很大一部分任务是设计操作系统所有的系统调用函数。
系统调用与子程序调用的区别
第4章进程及进程管理
进程的基本概念
多道程序并发执行的特点及所产生的问题
导致“与时间有关的错误”的原因:
与诸程序的执行速度有关;
由于多个程序都共享了同一个变量或者互相需要协调同步;
对于变量的共享或者互相协作的过程没有进行有效地控制。
程序并发执行的特点
(1) 失去了程序的封闭性和可再现性
(2) 程序与任务不再一一对应
(3) 程序并发执行中存在相互制约的关系
进程的定义
由进程控制块与程序组合,形成了一个新的实体
进程,是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是操作系
统进行调度和资源分配的基本单位。
(进程是程序在并发环境中的执行过程)
进程描述了程序动态执行的过程,当程序投入运行时创建进程,当程序终止时进程消
亡,进程具有生命周期。
进程的类型
系统进程:
它们是执行操作系统核心代码的进程,起着资源管理和控制的作用。
用户进程:
执行用户程序的进程。
系统进程与用户进程的区别:
系统进程被分配一个初始的资源集合,这些资源可以被它独占,也能以最高优先权
使用;用户进程需要通过请求系统服务的手段竞争使用系统资源。
系统进程可以做显式的、直接的I/O操作;用户进程不能直接做I/O操作。
系统进程运行时CPU处于系统态(核态或管态);用户进程运行时CPU处于用户态(目
态)。
进程与程序的区别
进程中包含了需要执行的程序,程序是进程的一个组成部分。
进程与程序的关系主要体现在以下几点:
进程是一个动态概念,而程序是一个静态概念
进程具有并行特性,而程序没有。
进程与程序之间存在多对多的联系(无一一对应关系)。
进程映像及其组成,PCB的概念
进程映像指进程实体的组成,它主要包括两个部分:
程序和进程控制块。
进程控制块(PCB)的定义:
实质:
定义的一个数据结构
作用:
控制和管理进程在执行过程中的动态信息,是进程存在的唯一标识,以此来
感知进程的存在!
进程与PCB的关系:
每个进程有唯一的PCB
OS依据PCB管理进程
利用PCB来管理进程的动态、并发
PCB是进程存在的唯一标志,进程存在则PCB存在,进程撤消则PCB消亡
操作系统中的PCB一般应包含如下内容:
进程标识
处理器状态信息及现场保护区
进程控制信息
进程的可能状态及其变迁条件
(1:
使用或执行该操作的时机?
?
2:
执行该操作原语时操作系统完成的具体工作?
?
3:
Linux操作系统中实现的方法?
?
)
进程控制
进程创建
1.进程创建的时机
在系统生成需要进程承担资源分配及管理工作——系统进程;
用户作业的执行需创建子进程,或作业中完成某项具体的任务时——用户进程。
2:
进程创建时操作系统完成的工作
分配进程标识及空白PCB,并在系统进程表中增加一个表目。
为进程分配内存空间(程序、数据、用户栈等),复制父进程内存空间的内容到该进程
内存空间中。
初始化PCB。
置该进程的状态为就绪,插入就绪队列。
生成其它相关的数据结构。
3.Linux操作系统中用户进程的创建过程:
当用户在键盘上键入一个用户可执行文件名时,操作系统就为该文件创建一个相应的用
户进程并投入运行。
Linux提供的创建子进程的系统调用为fork()。
进程撤销
1.进程撤销的时机
当一个进程已经完成所需完成的工作时,可以调用进程撤销原语自我撤销,进程终止,
最后消亡。
2:
进程撤销时,操作系统完成的任务:
释放进程所占资源;
将该进程从系统进程表中删除,释放该进程的PCB。
CPU被释放,进行进程调度。
Linux中提供的撤销进程系统调用为exit():
进程睡眠
1.进程阻塞的时机
当一个进程因为某种执行条件暂不满足或者等待某个事件的发生时。
以下皆是引起进程阻塞的事件:
进程请求I/O;
进程请求系统资源时需要排队或暂时得不到满足;
进程请求的同步或互斥信号没有满足或等待的同步消息没有到来;
进程请求延时。
2:
进程睡眠原语执行后,操作系统需完成的工作:
⑴.将当前需要睡眠的进程运行现场保护到其PCB中;
⑵.置进程的状态为阻塞态;
⑶.将该进程插入引起睡眠的chan的等待队列(假设引起睡眠的原因为chan,);
⑷.CPU空闲,进行进程调度,以调度另一个进程投入运行。
sleep(n)
进程唤醒
1:
进程唤醒的时机
当进程等待的事件发生时。
该唤醒由完成事件的进程执行进程唤醒原语来完成。
2:
执行唤醒原语,操作系统完成的工作:
检查该事件的等待队列上是否有等待进程;
如果有等待进程,则将它们从该等待队列中移出,修改其状态为就绪态,插入就绪队列;
转进程调度或继续执行。
3:
Linux下进程的唤醒
存在于内核态下,包含在操作系统同步机制中(第四章内容)。
未给用户提供任何直接
的系统调用。
临界资源与临界区
两个概念:
临界资源与临界区。
1.临界资源
临界资源指的是一次只允许一个进程使用的独占资源。
诸进程对它的访问必须互斥。
(包括可能的系统资源及用户资源)
2.临界区
临界区是指包含了访问临界资源的那段程序。
临界区作为特殊的程序段进行如下处理:
1)进程在进入临界区之前必须先申请,
2)当且仅当临界区中涉及的临界资源没有其它进程使用时才能进入临界区;
3)在出临界区后立即释放临界资源。
进程同步与互斥
互斥必要条件:
⑴.诸进程共享同一个临界资源;
⑵.共享的方式是先来者先使用的异步方式。
操作系统提供的互斥机制必须满足以下要求:
(临界区问题的解答必须满足的要求)
1.实现互斥:
即任意时刻最多只能有一个进程进入临界区,执行临界区的进程不能受到其它进程的干扰。
2.有空让进:
当临界资源空闲时,应该允许申请进入临界区的进程进入临界区。
3.有限等待:
对要求进入临界区的进程,应在有限时间内进入,以免陷入“死等“;进入临界区的进程不能被无限期地延迟或死锁
同步问题:
当各进程的执行具有一定先后顺序的限制时,称为同步问题。
同步与互斥的比较:
互斥与同步问题
互斥
同步
PV操作
用来申请或释放信号量的操作,由系统提供的系统调用完成:
P操作表示申请资源;
V操作表示释放资源。
P、V操作用原语实现,不允许中断。
实现互斥:
1.上锁原语和开锁原语实现进程互斥
2.用信号灯实现进程互斥
实现同步:
用P、V操作实现进程同步的算法可以简单归纳如下:
⑴.设置信号量
分析每个进程的执行条件和释放条件,针对每个执行条件设置一个信号量,其初值根据初始情况确定;
⑵.对每个进程的处理:
在请求条件处执行P(执行条件信号量);
在释放条件处执行V(释放条件信号量)。
解决同步问题与互斥问题的区别:
互斥问题中各进程涉及共同的临界资源,因此每个进程中涉及同一个临界资源的临界区中所执行的P、V操作的信号量是相同的;
同步问题中每个进程由于执行条件和释放条件的不同因而其P、V操作涉及的信号量不同。
例如:
设有4个进程,其执行的先后流图如下图所示。
用P、V操作实现其同步。
同步分析:
Linux进程
Linux进程间通信(Inte-ProcessCommunication,IPC)可分为控制信息的通信(低级通
信)和大批数据信息的通信(高级通信)。
Linux进程家族树
线程
线程及其特征:
线程是调度执行的基本单位;线程不是资源分配的基本单位;
线程从属于某个进程,是该进程的某个执行路线。
因此,也将进程称为重型进程,线程
称为轻型进程。
线程是进程中的一个相对独立的可执行单元。
一个进程中至少包含一个线程。
由于同一进程内的线程之间涉及资源共享,所以需要同步机制来实现进程内多线程之间
的通信。
与进程类似,线程还可以创建其它线程,线程也有生命周期,也有状态的变化。
在一个进程内使用多线程的优点主要在于创建线程的工作量要比创建进程的工作量小不涉及资源分配,不同线程之间的切换比进程之间的切换要快。
第5章资源分配与调度
两种资源分配方式
静态分配:
在作业级实施缺点:
效率太低
当一个作业运行前,将它要求的所有资源一次性分配给该作业,直到该作业完成时释放
其占用的所有资源,分配给作业的资源伴随作业的整个运行过程。
动态分配:
在进程级实施优点:
系统资源的利用率提高
缺点:
有可能造成死锁
当一个进程要求使用某个(类)资源时,向系统提出资源的请求,系统响应进程的请求
将某种资源分配给进程,进程使用完毕后立即释放该资源
死锁
定义、起因、产生死锁的必要条件、不产生死锁的最小资源数
死锁:
系统中所有的并发进程彼此互相等待对方所拥有的资源,且它们在得到对方资源
之前不会释放自己所拥有的资源,从而造成互相死等,却永远等不到的一种任一
进程都不能继续运行的系统状态。
产生死锁的根本原因:
系统资源不足
死锁是资源竞争和资源分配不合理两个因素同时作用所产生的可能结果
不产生死锁的最小资源数
设系统所拥有的资源总数为M,共享该资源的进程数为P,每个进程所需使用该资
源的最大需求为N,则M≥P*(N-1)+1时无论如何分配都不会产生死锁。
产生死锁的四个必要条件:
1、互斥条件:
并发进程所请求的资源是互斥使用的独占资源,即一次只能被一个进
程使用的资源,具有排它性。
2、不可剥夺条件(非抢占):
进程所占有的资源在没有使用完之前不能被其它进程强
行占用,只能由占有该资源的进程自己释放。
3、占有并等待(部分分配):
进程对于自己所需要的资源每次只请求一部分,操作系
统允许部分资源的分配。
4、环路条件(循环等待):
系统中各并发进程对于资源的占有和请求形成环路,即请
求箭头方向和占有箭头方向形成环路
解决死锁的策略
预防采用静态资源分配方法(执行前保证)
在作业调度时为选中的作业分配它所需要的所有资源,当资源一旦分配给该作业后,在
其整个运行期间这些资源为它独占。
缺陷:
1.用户进程必须事先列出所有需要的资源,以便系统一次性分配;
2.系统一次性分配给进程的资源在很多时间内是处于空闲状态的;
3.用户进程必须得到所有资源才能运行,减低了并发度,增加了等待时间。
避免采用有控资源分配方法(执行中保证)
1、有序资源分配法
系统中所有资源都给定一个唯一的编号,所有分配请求必须以上升的次序进行。
当遵
守上升次序的规则时,若资源可用,则予以分配;否则,请求者等待。
2、银行家算法
操作系统在动态分配过程中对每一次的分配都要采取某种策略去判断一下当前的分配
有没有导致死锁的可能性,没有则实施分配,有则拒绝分配,从而动态地避免死锁的产生。
检测与忽略
死锁的检测与恢复是指系统设置专门机构,在死锁发生时该机构能够及时检测出死锁
发生的位置和原因,并能够通过外力破坏死锁产生的一个必要条件,从而使并发进程
能够从死锁状态中恢复出来。
死锁排除的方法:
1、从陷于死锁的进程中逐个强迫放弃所占用的资源,直至死锁消失。
2、逐个撤消陷于死锁的进程,直到死锁不存在;
3、撤消陷于死锁的全部进程;
银行家算法
安全序列
安全序列——在该序列中所有的进程都可以因为之前进程的完成所释放的资源使得它
们一个接一个的完成。
表示为,其中Pi,Pj…Pm代表系统中的进程
安全状态
安全状态——如果系统中的所有进程至少能找到一个安全序列,则称系统当前处于安全
状态。
该算法需要检查申请者对资源的最大需求量,1:
如果系统现存的各类资源可以满足申请者
的请求,则按当前申请量进行分配;2:
如果各类资源不满足申请者的请求,则不进行分配。
当申请者获得资源后,就可很快完成其计算,然后释放它占用的资源,从而保证了系统中
的所有进程都能完成,所以可避免死锁的发生。
第6章处理机调度
处理机调度的目标:
CPU使用率高、响应时间快、周转时间短、等待时间小、系统吞吐量大
处理机的多级调度
批处理系统
作业级调度
作业调度(又称宏观调度):
对存放在辅存设备上的大量作业,以一定的策略进行挑
选,分配主存等必要的资源,建立作业对应的进程,使其投入运行。
进程级调度
进程调度(又称微观调度):
对进入主存的所有进程,确定哪个进程在什么时候获得
处理机,使用多长时间。
作业调度
作业状态:
提交、后备、执行、完成
提交状态:
用户将程序提交给系统,等待输入。
后备状态:
系统响应用户请求,将作业输入到磁盘上,等待作业调度。
执行状态:
该作业被调度进入内存,并创建相应的进程,插入进程就绪队列。
完成状态:
作业执行结束,并释放其占用的所有系统资源。
作业控制块JCB
作业控制块JCB,它是存放作业控制和管理信息的数据结构,是作业存在的唯一标识,
是操作系统调度的依据。
作业调度的性能评价-平均周转时间、平均带权周转时间
周转时间=完成时间-提交时间=等待时间+执行时间
平均周转时间T=周转时间总和÷作业数
带权周转=周转时间÷执行时间
平均带权周转时间W=带权周转总和÷作业数
作业调度算法(FCFS、SJF、HRRN、优先数、RR等)
先来先服务FCFS:
按作业提交的先后次序进行调度
短作业优先SJF:
选择运行时间最小的作业进行调度
响应比高优先HRRN:
响应比=等待时间/运行时间
优先调度
时间片轮转RR
最短剩余时间优先SRT
多级反馈队列FB
进程调度
进程调度的两种方式
非剥夺式调度:
进程自动放弃CPU
可剥夺式调度:
系统强迫进程放弃CPU
进程调度算法
FCFS
循环轮转调度(RR)
最短进程优先
最短剩余时间优先
多级反馈队列调度
第7章主存管理
内存管理概述
计算机系统存储结构
三级存储结构:
高速缓存、内存和外存
主存管理的功能
1、地址映射
物理地址:
把内存分成若干个大小相等的存储单元,每个单元给一个编号,这个编号称为内
存地址(物理地址、绝对地址、实地址),存储单元占8位,称作字节(byte)。
逻辑地址:
用户编程序时所用的地址(程序地址、相对地址、虚地址),基本单位
可与内存的基本单位相同,也可以不相同。
程序地址空间(逻辑地址空间、虚地址空间):
用户的程序地址的集合称为逻辑地
址空间,它的编址总是从0开始的,可以是一维线性空间,也可以是多维空间。
地址映射(地址重定位、地址转换)
将程序地址空间中使用的逻辑地址变换成内存中的物理地址的过程。
地址映射的功能就是要建立虚实地址的对应关系
静态地址映射:
作业装入时进行重定位(软件实现)
优点:
实现简单,不要硬件的支持。
缺点:
要求连续存放;
程序装入后,不能移动;
必须事先确定需要的存储量;
程序和数据难以共享,造成内存空间浪费。
动态地址映射:
程序动态执行时进行重定位(硬件完成)
动态地址映射是在程序执行时由系统硬件逐条指令地完成从逻辑地址到物理地
址的转换的。
动态地址重定位机构由基地址寄存器BR和逻辑地址(虚地址)寄存器VR组成。
内存物理地址MA与逻辑地址的转换关系为:
MA=(BR)+(VR)
2、主存分配
3、虚拟存储
虚拟内存:
是操作系统采用虚拟技术,在不改变物理内存实际大小的情况下提供的
逻辑上被扩充了的内存。
这种物理上不具备而逻辑上具备的内存就是虚拟内存。
(支持虚拟存储的理论)局部性理论:
1、时间局部性:
一条指令执行后可能会再次执行;
2、空间局部性:
访问了某个存储单元则附近的单元也可能会访问。
∴指令执行时,总是只涉及程序的一个局部。
实现虚拟存储的方法
⑴.请求调入策略请求分页、请求分段。
⑵.交换技术⑶.采用覆盖技术
4、存储保护
常用的存储保护方法有3种:
上下界寄存器或基址加限长寄存器;存储保护键法;界限寄存器+核心态/用户态。
基址+限长寄存器保护法
基址寄存器=下界寄存器(首地址)
限长寄存器:
存放程序长度
基址+限长=上界寄存器(末地址)
∴判别式:
基址寄存器≤物理地址<基址+限长寄存器
分区内存管理
1、类型
固定分区、动态分区
二、动态分区存储管理技术
1、地址映射
物理地址=基址寄存器+逻辑地址
2、分区的分配机构
描述主存资源:
内存信息块
描述分区:
分区描述器
管理空闲区:
空闲区表、空闲区队列(空闲区链)
3、分区的分配与放置策略
放置策略:
首次适应:
空闲区按起始地址递增的顺序排列,将作业放到最先找到的空闲分区。
最佳适应:
空闲区按由小到大的顺序排列,将作业放到满足要求的最小的空闲分区。
最坏适应:
空闲区按由大到小的顺序排列,将作业放到满足要求的最大的空闲分区。
3、碎片问题
解决办法:
拼接技术——移动已分配区,使空闲区连续(大搬家)。
问题:
1、要耗费CPU时间2、要等待3、可能拼接所花费系统开销大于所得到的效益。
拼接时机:
非拼接不可时(总的空闲可以分配但无连续区可分配时)再拼接。
分页内存管理
1、分页管理的基本原理
程序地址空间分成大小相等的页面,称为页、虚拟页等;
内存也分成与页面大小相等的块,被称为块、内存块、页块、页祯、内存页面等
程序装入内存时,针对每一页分配一个内存块。
一个作业的若干连续的页,可以分配到
内存中若干不连续的块中。
页表是页式存储管理的数据结构,它包括用户程序空间的页面与内存块的对应关系、页
面的存储保护和存取控制方面的信息,是OS进行分页管理的依据。
最重要的两项:
页号、内存块号
块起始地址=页长度×块号
块内位移=页内位移
物理地址=块起始地址+页内位移W
根据逻辑地址求物理地址的解题步骤:
1)将逻辑地址线性分割求出页号P和页内位移W:
2)根据叶号查页表得块号B;
3)物理地址=块号B×页大小+页内位移W
逻辑地址以十进制数给出:
页号P=逻辑地址%页大小
页内位移W=逻辑地址mod页大小
2、静态分页管理
静态分页管理于作业开始执行前将其全部页装入内存
数据结构有3张表:
页表、请求表、存储页面表
3、动态分页管理
动态分页管理方法的理论基础:
局部性理论
局部性理论由两个部分组成:
1)时间局部性2)空间局部性
中断位:
0表示该页在内存,1表示该页不在内存(需要缺页中断)
辅存地址:
该页在辅存的位置
引用位:
0表示最近没有被访问,1表示最近被访问过
修改位:
0表示该页调入内存后没有修改,1表示页调入内存后修改过
分页管理的优缺点
分页管理的优点:
有效地解决了“碎片”问题,提高了内存的利用率。
动态请求分页管理提供了虚拟内存,有利于提高内存的利用率和进程的并发度。
分页管理的缺点:
不能保证一页中的数据在逻辑上的完整性,不方便共享实现和存取权限的控制。
要求系统提供相应的硬件支持,增加了系统成本。
需要查询页表,增加了系统的时间开销。