操作系统八股文
文章目录
进程的几种状态
就绪: 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。
执行: 当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。
阻塞: 正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。
调度算法
-
时间片轮转
-
- 可抢占式,时间片内进程未运行完,就剥夺处理机使用权
- 优点: 公平,响应快,适用于分时操作系统
- 时间片太大或者太小会有什么影响
-
-
优先级调度
-
- 优先级调度,选择优先级高的调度
- 分为抢占式和非抢占式2种
- 队列:
- 静态优先级和动态优先级: 动态的话会动态调整,静态的优先级不会发生变化
-
-
高响应比优先:
- 公式: $响应比=响应时间/要求服务时间=(等待时间+ 要求服务时间)/要求服务时间$
-
多级反馈队列
-
综合 时间片和 优先级调度算法
-
抢占式算法:
-
设置多个级别队列,优先时间从高到第,时间片从小到大
- 优先级越高,速度越快,时间片分配的越小
-
页面置换算法
-
最佳置换算法 OPT(optimal)
- 淘汰那些永久不使用的页面【我怎么知道哪些不再使用了呢? 没法实现】
-
猜测那些 页面以后不再使用,淘汰那些猜测的:
-
FIFO , 先进先出,最先用的,我认为 后面不再用了,就丢掉
-
LRU, 最近最久没用使用的,我认为不再使用,就淘汰 【性能好,开销大】
- 用过的页面,我就调整到队列头部
- 最近没用过的,从队列尾部删除
-
clock NRU 时钟置换算法
- 放入循环队列
- 循环扫描
-
LFU ,最近最少使用,基于访问次数来判断,淘汰访问次数最小的
-
内存管理
分页
分段 分页原理
段页式存储管理:
-
分段管理: 方便逻辑模块的共享保护
1. 段太长分配很大的连续空间不方便
-
不方便逻辑模块实现的共享和保护
-
地址公式:
1. 分段系统公式: $address = (段号,段内地址)$ 2. 段页式管理公式: $address = (段号,页号,页内偏移量)$
-
段表和页表:
1. 一个进程对应一个段表 2. 一个段表 对应多个 页表 3. 如果访问页表地址不合理的话,就会出现越界中断 1. 使用段页式 会访问3次 1. 第一次访问段表 2. 第二次访问页表 3. 第3次访问数据
文件
-
文件的逻辑结构
-
顺序文件
- 链式存储
- 顺序存储,可以进行随机访问 参考
-
索引文件
-
顺序索引文件
-
文件的存储方式
-
连续分配,支持下标随机访问【类似数组】
-
链接分配【类比链表】,不需要连续的空间,不容易产生文件碎片
- 显式链接
- 隐式链接
软硬链接原理
在内存管理中:
1. 进程的逻辑地址空间被分为 一个个的$页面$
2. 文件的逻辑地址空间被分为一个个的文件块, 逻辑地址表示为 ($逻辑块号,块内地址$) 形式
设备分配的安全性
- spooling 技术
- 分配设备的算法
IO设备
文章作者 LYR
上次更新 2021-08-17