一、 英文缩写词的英文或者中文全名
DMA-Direct Memory Access-直接内存存取
SMP-Symmetric Multi-Processor-对称多处理器
OS-Operating System-操作系统
PCB-进程控制块-Process Control Block
TCB-线程控制块-Thread Control Block
FCB-文件控制块-File Control Block
PSW-Program Status Word-程序状态字
ULT-User-Level Thread-用户级线程
KLT-Kernel-Level Thread-内核级线程
动态分区分配策略:
FF-First Fit-首次适配
NF-Next Fit-下次适配
BF-Best Fit-最佳适配
WF-Worst Fit-最差适配
VM-Virtual Memory-虚拟内存
MMU-Memory Management Unit-内存管理单元
PF-Page Fault-缺页中断(页错误)
TLB-Translation Lookaside Buffer-转换检测缓冲区(快表)
页面置换算法:
OPT-Optimal-最佳置换
LRU-Least Recently Used-最近最少使用
FIFO-First In First Out-先进先出
Clock时钟
进程调度算法:
FCFS-First Come First Serve-先来先服务
RR-Round Robin-轮转
SPN-Shortest Process Next-最短进程优先
SRT-Shortest Remaining Time-最短剩余时间优先
HRRN-Highest Response Ratio Next-最高响应比优先
MF-Multilevel Feedback-多级反馈
磁盘调度:
FIFO-First-In-First-Out-先进先出
LIFO-后进先出
SSTF-Shortest Service Time First-短服务时间优先算法
SCAN-扫描算法(电梯算法)
C-SCAN- 循环扫描算法
RAID-Redundant Array of Independent Disk-独立磁盘冗余阵列
FS-File System-文件系统
VFS-Virtual File System虚拟文件系统
FAT-File Allocation Table-文件分配表
二、 进程状态
三、 内存管理
固定分区:
-在系统初启时,内存已划分为若干个大小相等或 大小不等的分区,并将它们排成一个分区说明表。 分区建立后大小、边界、数量不再改变。
-为进程分配一个满足长度要求的最小空闲分区。
-分配回收容易,但限制了进程个数和最大长度, 易产生 (区内)内碎片,内存利用率低。
动态分区:
-从可用内存中划出进程所需容量的一块连续区域并分 配,其余部分作为一个新空闲区。
-运行完后回收,若与其它空闲区相邻则合并。
-易产生(区间)外碎片。
分配策略:
-首次适配(First Fit):
链表结构:空闲区按起始地址递增顺序排列。
分配时,从链首开始查找,从第一个满足要求的空闲区中划分出进程需要的大小并分配,其余部分作为一个新空闲区。
低地址端遗留许多碎片;高地址端有大空闲区
-下次适配(Next Fit):
链表结构:空闲区按起始地址递增顺序排列。
分配时,从上次扫描结束处继续查找,从第一个满足要求的空闲区中分配。
平均查找时间缩短,空间利用比FF均衡。
-最佳适配(Best Fit)
链表结构:空闲区按分区大小递增顺序排列。
分配时,从链首开始查找,第一个满足要求的空闲区就是满足要求的最小空闲区,划分之。
链首部碎片多,查找费时。回收合并时复杂
-最差适配(Worst Fit)
链表结构:空闲区按分区大小递减顺序排列。
分配时,从链首开始查找,第一个空闲区不能满足要求时分配失败,否则从第一个空闲区中切出需要的大小分配。
小碎片较少,但最大的空闲区也不会很大。
分页:
-逻辑地址的位数=页号的位数(等于逻辑地址的页数)+页内偏移的位数(等于页长)
-知逻辑地址,求物理地址
逻辑地址 ÷ 页长 = 页号 …… 页内偏移
根据页表和页号找到对应的页帧号
物理地址 = 帧号 × 帧长(帧长默认等于页长) + 页内偏移
页号不在页表内
超出页表,越界
-物理地址的页框位数 = 物理地址空间大小÷帧长 若= 2^m, 则有m位为页框位
-页表
页表项的数量等于逻辑地址的页数
页表项的位数等于物理地址的页框位数
-处理缺页中断:
首先判断内存中是否有空闲帧?如果没有则按照置换算法选择一个内存页淘汰,如果该页被修改过还需先写回磁盘,这样得到一个空闲帧。
然后按 照页表所指明的该页磁盘地址把此页调入空闲帧,修改页表,重新执行刚才那条指令。
分段
……
四、 磁盘调度
FIFO(先进先出)
按请求的接收顺序服务。
LIFO(后进先出)
先处理新提出的请求。
SSTF(短服务时间优先算法)
优先选择距当前磁头位置近的访问请求进行服务。
SCAN(扫描算法或电梯算法)
选择位于磁头移动方向前方且距磁头位置近的访问请求进行服务。 当前方没有访问请求时,立即改变磁头移动方向。
C-SCAN(循环扫描算法)
磁头从磁盘一端移到另一端,随着移动而不断处理请求。当磁头移到另一端时(到达请求队列的最大/小磁道即返回磁盘起始,无需移动到磁道最大/小边界),马上返回磁盘起始,返回时不处理请求。
五、 死锁
判断死锁:图中出现A占有a请求b、B占有b请求c、……、N占有n请求a的环
死锁检测和死锁恢复(不试图阻止死锁,而是当检测到死锁发生时,采取措施进行恢复。)
恢复方法:选择一个占有资源最少(或者优先级最低)的进程,判断终止该进程是否解除死锁(先不进行任何实际操作),否则选择占有资源第二少(或者优先级第二低)的进程判断……
若仅仅终止一个进程无法解除死锁,则选择占有资源最少(或者优先级最低)的俩个进程进行终止……
死锁预防(在程序运行之前预防)
通过破坏死锁产生的4个必要条件来预防死锁,由于资源互斥是资源使用的固有特性是无法改变的。
死锁避免(在程序运行时避免发生死锁)
银行家算法:
尝试将可用资源给予可用资源能满足其需求的一个进程,若不存在能被满足的进程,则系统处于不安全状态;
否则,完成这个进程,并释放该进程原本占有的资源加入可用资源,尝试找到下一个能被新的可用资源满足的进程,若不存在能被满足的进程,则系统处于不安全状态;
否则,继续上述循环。
若所有的进程都能被满足,则这个进程执行的顺序为一个安全序列。