文章目录
第一节:操作系统概述
操作系统所具备的功能:
操作系统具备的管理职能以及细化知识点:
第二节:进程管理
1. 进程的状态
<1> 三态模型
在多道程序系统中,进程在CPU上交替运行,状态也在不断地发生变化,因此进程一般具有三种基本状态:运行、就绪和阻塞。
- 运行:当一个进程在CPU上运行时,则称该进程处于运行状态。
- 就绪:一个进程获得了除CPU外的一切所需资源,一旦得到CPU资源即可运行,则称此进程处于就绪状态。
- 阻塞:阻塞也称等待或睡眠状态,一个进程因正在等待某一事件发生而暂时停止运行,这时即使把CPU资源分给该进程也无法运行,故称该进程处于阻塞状态。
<2> 五态模型
事实上,对于一个实际的系统,进程的状态及其转换更复杂。例如五态模型。
- 活跃就绪:活跃就绪是指进程处于,在主存内并且可被调度的状态。
- 静止就绪:静止就绪是指就绪进程被对换到辅存时的状态,它是不能被直接调度的状态。
- 活跃阻塞:活跃阻塞是指进程在主存,一旦等待的事件产生便进入活跃就绪状态。
- 静止阻塞:静止阻塞是指阻塞进程对换到辅存时的状态,一旦等待的事件产生便进入静止就绪状态。
- 挂起状态:由于进程的不断创建,系统资源特别是主存资源已经不能满足进程运行的要求。这时,就必须将某些进程挂起,放到磁盘对换区,暂时不参加调度,以平衡系统负载。或者是系统出现故障,或者是用户调试程序,也可能需要将进程挂起检查问题。
2. 前趋图
前趋图是为了描述一个程序的各部分间的依赖关系,或者是一个大的计算的各个子任务间的因果关系的图示。
3. 进程的同步与互斥
<1> 互斥
进程的互斥是指系统中多个进程因争用临界资源(一次只能供一个进程使用的资源)而互斥执行。
<2> 同步
在计算机系统中,多个进程可以并发执行,每个进程都以各自独立的、不可预知的速度向前推进,但是需要在某些确定点上协调相互合作进程间的工作。
4. PV操作
<1> 相关概念
-
临界资源:有些资源一次只能供一个进程使用,称为临界资源。如,打印机、磁带机等。
-
临界区:是进程中对临界资源实施操作的那段程序。
-
信号量:信号量是一种特殊的整型变量,根据控制对象的不同被赋予不同的值。
-
P操作与V操作:
<2> 例题
例题一:
例题二:
答:A、C
5. PV操作与前趋图
解题技巧:
遇到上述这种图,根据箭头走向得出答案。箭头起点是V操作,终点是P操作。
例:
(1)C、(2)A、(3)A
6. 死锁问题
进程管理是操作系统的核心,但如果设计不当,就会出现死锁问题。
死锁:
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
<1> 例题
例题:
解题技巧:
有k个进程,每个进程需要n个资源。如果不可能发生死锁,则系统至少有K * (n-1)+1个资源。
<2> 死锁的预防和避免
产生死锁的四个必要条件:
- 互斥:可以同时使用资源,则不存在死锁问题
- 保持和等待:指这个进程会保持自己的资源,等待其他进程释放更多的资源给自己
- 不剥夺:系统不会将某个进程的资源剥夺掉,然后分给其他进程
- 环路等待:A等待B释放资源,B等待C释放资源,C又等待A释放资源
解决死锁问题有两种方法:死锁的预防、死锁的避免。
死锁的预防:
通过打破死锁产生的四个必要条件进行预防。
死锁的避免:
- 有序的资源分配(银行家算法)
<3> 银行家算法
银行家算法(实质为分配资源的原则):
- 当一个进程对资源的最大需求量不超过系统中的资源数时,可以接纳该进程
- 进程可以分期请求资源,但请求的总数不能超过最大需求量
- 当系统现有的资源不能满足进程尚需要资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间内得到资源
例题:
解题技巧:通过选项验证。
第三节:存储管理
1. 分区存储
2. 页式存储
做法:
将用户程序分成等分大小的页。例如将下图中的用户程序等分为4k一块的用户区域,每一个4k程序称为一个页,把内存当中的存储区也分成4k一块。如果要调入用户程序到内存中运行,不再是将整个程序一次性调入内存,而是需要运行哪些程序块,就将哪些页调入内存。
这样的做法需要一张页表,用来记录用户程序的页和内存中的块的对应关系。
优点:
内存利用率很高,内存碎片少,分配及管理简单。
缺点:
增加了系统开销(需要查找页表),可能产生抖动现象。
逻辑地址和物理地址之间的转换:
高级程序语言使用逻辑地址;运行状态、内存中使用物理地址。
逻辑地址=页号+页内地址 物理地址=页帧号(块号)+页内地址
例题:
解题过程:
-
要求物理地址,先要把逻辑地址中的页号和页内地址分开
因为4K=212,故一个页的页内地址为12位,高于12位的部分为页号。故5A29H中,A29H为页内地址,5为页号。
-
物理地址=页帧号(块号)+页内地址
物理地址为6A29H。
-
淘汰页号,只能淘汰在内存中的页面,故从页号为0、1、2、5中淘汰页面。被访问过的页面不能被淘汰,只能淘汰未访问的页面,故淘汰1号页面。
答案:D、B
3. 段式存储
段式存储,是指把一个程序分成若干个段进行存储(例如每个函数分为一段),每个段都是一个逻辑实体,它的产生是与程序的模块化直接有关的。
段表:
基址:该段在内存的起始地址。
优点:
多道内存共享内存,各段程序修改互不影响。
缺点:
内存利用率低,内存碎片浪费大。
4. 段页式存储
结合了段式和页式存储,先分段再分页。
优点:
空间浪费小、存储共享容易、存储保护容易、能动态链接
缺点:
由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。
快表:
快表是一块小容量的相联存储器,由高速缓存器组成。速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。
5. 页面置换算法
<1> 最优算法:
在整个事情发生之后(已经知道访问的页面顺序),根据页面序列,算出什么时间淘汰哪个页面就可以取得最高的效率性能。在不同的应用场景中,最优算法各不相同。在实际应用中,往往不能事先知道页面序列。最优算法往往需要跟其他的算法方案对比。
<2> 随机算法:
随机淘汰一个页面,性能不稳定。
<3> 先进先出算法(FIFO):
淘汰最先进入内存的页面。有可能产生“抖动”。
抖动:分配了更多资源给一个进程,却使得进程的效率更低(造成缺页次数更多)。指如果分配给进程的存储块数量小于进程所需要的最小值,进程的运行将很频繁地产生缺页中断,这种频率非常高的页面置换现象称为抖动。
<4> 最近最少使用算法(LRU):
刚刚被访问的页面不会被淘汰,即在保证最近使用的页面不被中断的情况下,将最少使用的页面淘汰。不会产生抖动,给进程分配的资源越多,进程表现的性能更好。
6. 例题
解题思路:
没有使用快表说明,每读一次内存块,需要现在内存中查表,然后再读取内存块。所以每访问一次内存块需要访问两次内存,一共6个内存块,故需要访问12次内存。
默认swap指令,无论占用多少内存块,都会一次性调入内存,故指令只会产生一次缺页。操作数一半在前一页,一半在后一页,则会产生两次缺页。故一共产生5次缺页中断。
答案:B、C
第四节:文件管理
1. 索引文件结构
一般的索引文件结构有13个索引结点(0~12)。
提出索引文件结构是为了扩展文件的存储量。
索引文件结构规定:
-
结点0~9对应直接索引,即索引结点的地址直接指向物理盘块,物理盘块存着索引文件的内容。
假设一个物理盘块可以存储4K内容的文件,则前十个索引结点指向的物理盘块一共可以存储40K文件。
-
结点10指向的物理盘块不再直接存储索引文件的内容,而是存储指向不同物理盘块的地址(一级间接索引)。
假设每个地址占4B,则结点10指向的物理盘块可以存储1024个地址,每个地址又对应一个物理盘块,故一级间接索引可以存储的容量为1024*4K的索引文件。
-
结点11为二级间接索引。
-
结点12为三级间接索引。
注意:间接次数越多,访问的效率越低。
例题:
解题思路:逻辑块好按顺序排列,故5号对应物理块号为58;一块磁盘数据块1KB,每个地址项大小为4字节,故一个磁盘数据块可以存放256个地址,故261号对应物理块号为187。
答案:C、D
2. 文件和树型目录结构
3. 空闲存储空间的管理
在磁盘中会有大量的空间,我们需要把空闲的空间管理起来,以便在某一个文件申请相应的空间的时候,能够有依据地分配相应地空间。
-
空闲区表法
我们可以用一个表来记录哪些地方是空闲的,以便把空闲空间管理起来。
-
空闲链表法
将空闲区链接起来,生成链表。在需要分配内存时,在链表中划出相应的空间。
-
位示图法
将存储空间分成很多的物理块,用位示图法可以直观表达空闲物理块和非空闲物理块。
例题:
解题思路:
字长为32bit,4195号物理块为第132(4196/32=131.125)个字。
131*32=4192,故4191号物理块是第131个字的最后一位,4192号是第132个字中的第0位置,4195是第3位置。占用物理块,应将状态置为1。
答案:D、B
- 成组链接法
第五节:设备管理
1. 数据传输控制方式
数据传输控制方式是指内存和外设之间的数据传输控制问题,解决方式包括:程序控制方式;程序中断方式;DMA方式;通道;输入输出处理机。
-
程序控制方式
程序控制方式又被称为程序查询方式,这种方式是最低级的也是CPU使用介入的一种方式。CPU通过执行程序查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。根据这种状态,CPU有针对性地为外设的输入输出服务。
-
程序中断方式
大部分与程序控制方式相同,但相较于程序控制方式,由于增加了中断方式,主动性更强,即:如果外设完成了数据的传输等操作,外设会发出中断指令,效率比程序控制方式更高。
-
DMA方式
DMA方式也称直接存储器存取方式。这种方式,会有专门的DMA控制器,只要是外设和内存之间的数据交换过程,就由这个控制器进行管控了,CPU只需要在开头的时候做一些介入,如初始化等操作等,但整个过程只有DMA监视器来监管。数据交换完成之后再由CPU接管,做后续的工作。
2. 虚设备与SPOOLING技术
SPOOLing技术是低速输入输出设备与主机交换的一种技术,通常也称为“假脱机真联机”,他的核心思想是以联机的方式得到脱机的效果。低速设备经通道和外设在主机内存的缓冲存储器与高速设备相联,该高速设备通常是辅存。为了存放从低速设备上输入的信息,或者存放将要输出到低速设备上的信息(来自内存),在辅存分别开辟一固定区域,叫“输出井”(对输出),或者“输入井”(对输入)。简单来说就是在内存中形成缓冲区,在高级设备形成输出井和输入井,传递的时候,从低速设备传入缓冲区,再传到高速设备的输入井,再从高速设备的输出井,传到缓冲区,再传到低速设备。
举例:
四个人远程连接一台打印机,而这台打印机在同一段时间内只能让一个用户使用,若一个用户正在使用该打印机,另一名用户试图使用该打印机时就会提示该打印机被占用。为了消除用户的“联机”等待时间,采用了SPOOLING技术:给打印机创建一个缓存区,每一个用户在打印时都会进入缓存区,而从缓存区到真正打印则需要挨个排队,即打印机在打印时不再排斥其他用户的打印操作,而是将其缓存起来,在将当前操作完成后立即进行第二个操作,这样做不仅使得用户的操作界面变得更为友好,也极大的提高了打印机的打印效率。
第六节:微内核操作系统
微内核操作系统,顾名思义就是把内核尽可能做到最小的操作系统。
微内核系统更加可靠、安全和稳定。操作系统作为核心的系统软件,如果操作系统出现故障,就会影响到整个系统的运行。如果把操作系统的内核做得小一些,就会降低核心系统出现故障的概率。只有微内核出现问题,才会影响到整个系统,而微内核以外的系统出现故障,只需要重启微内核以外的系统,而不用重启整个系统。
参考视频:https://www.bilibili.com/video/BV1rW411j7e7?p=23
参考文章:百度百科相关文章