1.cpu调度
FCFS(按顺序),SJF(最小时间优先),SRJF(可抢占的最小时间优先)——不适合交互式
SJF一般化:优先权调度。改进:增加老化技术HRRN算法
适合交互式的调度:RR(按时间片轮流使用,但总是切换)
多级队列调度
实时调度:分为抢占式和非抢占式算法(还有软实时硬实时)
EDF最早截止时间优先算法(可用于抢占式或非抢占式)
LLF最低松弛度优先算法(松弛度=截止时间-当前时间-需要运行的时间)——主要应用于抢占式
练习:由于先计算后IO,因此IO占时间多的进程应该优先调度,因为可以快速释放cpu资源给下一个进程,这样IO系统和cpu就可以同步进行。反之则不行。
2.死锁
充分条件:资源分配图不可完全简化
必要条件:互斥使用,不可抢占,占有资源才能申请,存在环路
处理方法:
预防(破坏必要条件):无法破坏互斥;一次性申请全部资源——破除请求和保持;按顺序申请资源——破除环路。缺点很多,很少使用
避免(拒绝会造成死锁的资源请求):银行家算法 找到安全序列,避免环路形成
检测+恢复(死锁出现时,剥夺一些进程的资源):银行家算法
忽略:不做任何处理;操作系统最常用
练习:不安全状态不一定死锁;安全状态一定不死锁
3.内存分配
分区,分段,分页,段页结合
4.虚拟内存
FIFO页面置换——Belady现象(页面多缺页次数反而升高)
MIN页面置换:选最远将使用的页淘汰——最优,缺页数最小,但需要知道将来发生的事
LRU页面置换:选最长一段时间没使用的淘汰
——准确实现:时间戳(选具有最小时间戳的淘汰)代价大,很少用;页码栈(选栈底的淘汰)同上
——近似实现:Clock算法:使用则置1,缺页则全置0
LFU:置换访问次数最少的页面
全局置换
局部置换
抖动:由于系统内进程过多,总缺页,cpu利用率降低,进程更多,缺页率更大(防止的根本手段:分配足够多的帧)
工作集模型:计算一个局部的帧数——使得分配的帧能覆盖一个局部,防止缺页发生
5.磁盘管理
磁盘访问时间=队列时间+控制器时间+寻道时间(磁头移动到磁道上)+旋转延迟时间(扇区移动到磁头下面)+传输时间(数据写入或读出磁盘)
磁盘的物理读写操作(内核态)以扇区为单位,而输入输出操作的信息传送以块(通常由多个扇区组成)为单位。
位示图
空闲链表
成组链接(大量数据)
FCFS调度:按顺序
SSTF调度:最短时间,但存在饥饿问题
SCAN(电梯算法):SSTF+中途不回折
C-SCAN:SCAN+直接移到另一端
NStepSCAN和FSCAN
6.文件管理
无结构文件(流式文件)字符流构成,基于读写指针和字符存取
有结构文件(记录式文件)
顺序文件
索引文件
索引顺序文件