软件设计师:操作系统知识
操作系统层次
进程管理
顺序执行
真题标记
并发执行
例题
进程三态模型
- 运行:CPU+资源
- 就绪:有资源无CPU
- 阻塞(等待):无资源无CPU(等待某一事件发生)
同步与互斥
信号量机制与PV操作
S>0 可用资源数 S<0 阻塞队列里进程数
- P:申请一个资源 S=S-1
- V:释放一个资源 S=S+1
PV操作实现进程间同步和互斥
互斥信号量初值 S=1
单缓冲区信号量初值 S1=1 S2=0
多缓冲区信号量初值 S=1 S1=n S2=0
死锁
-
只要满足
m >= n*(k-1)+1
那就不会发生死锁 -
m为资源数量,n为进程数量,k为每个进程需要的资源数量
进程获得足够资源运行后,便可以释放资源给其它进程使用
进程资源图
箭头指向P是分配资源,指向R是申请资源
P运行完成后会释放资源,若释放资源后均能运行,则可以化简,不存在死锁
例题
死锁的处理
死锁避免算法:银行家算法
线程
线程可与同属一个进程的其它线程共享进程所拥有的全部资源,无法共享其它线程的资源(进程共享、线程不共享)
局部性原理
谁最近被访问了或者修改了那它就大概率还会被访问或修改,所以不能被淘汰,优先淘汰的是最近没有被访问或者修改的
不在内存的不能被淘汰,优先跳汰在内存且最近没被修改/访问的
存储管理
分页存储管理
其物理地址是3C20H(页号转换为物理块号)
段页式存储管理
段号是31-24+1=8,页号(最大允许)是23-12+1=12,页内地址是11-0+1=12,也就分别是28,212,212
缓冲区
单缓冲区
记公式:(T+M)*n+C
双缓冲区
记公式:T*n+M+C
磁盘调度算法
先来先服务
按顺序访问
最短寻道时间优先
每次查找最近的地址来访问
扫描算法或电梯调度算法
离哪头近就朝哪头访问,全访问完后朝另一头访问
循环扫描算法或单向扫描算法
沿磁头移动方向访问到头,再返回到磁头,重新访问
旋转调度算法
单个读取时间 = 旋转周期/物理块(扇区)数量
X=处理完位置到下一个记录起始位置所需时间
-
顺序处理:(单个读取时间+单个处理时间+X)*(物理块数量-1) + (单个读取时间+单个处理时间)
-
优化处理(磁头在哪就处理哪个扇区):(单个读取时间+单个处理时间)*物理块数量
例题
顺序处理:(3+3+24)*(9-1)+(3+3)=246ms
优化处理:(3+3)*9=54ms
文件管理
多级索引结构
例题
有512/3=170
个索引块
一级索引:170*512
二级索引:170*170*512
有1024/4=256
个索引块
5+256*2+256*256=66053
有11024/3=341
个索引块
二级索引:341*341*1KB
有1024/4=256
个索引块
文件目录
目录结构
主要考察绝对路径和相对路径