软件设计师——操作系统基本原理
重点内容图示
重点内容说明
1进程的状态转化图
2前趋图
重点是先后约束关系,即你搅拌的同时是不能绞肉,绞肉、切葱末、切姜末是可以同时进行的
3进程的同步与互斥
互斥:如千军万马过独木桥,只能唯一资源(独木桥),相反即为共享资源
同步:速度有差异,在一定情况停下等待,相反即为异步
生产者、消费者问题
单缓冲区:互斥资源(市场只有生产者或消费者操作)
生产者投放(等消费者消费才能继续投放)和消费者消费(等生产者投发才能消费)即为同步关系
多缓存区:类似,不过缓冲资源多一点
4pv操作
基本概念
临界资源:诸进程间需要互斥方式对其共享的资源,如打印机、磁带机等
临界区:每个进程中访问临界资源的代码叫做临界区
信号量:一种特殊的变量
难点
P操作:信号量减一,判断是否小于0,是的话阻塞进程,放入进程队列,变为等待状态,不小于0,继续执行当前程序
V操作:信号量加一,判断是否小于等于0,是的话从等待进程队列唤醒一个进程执行,大于0,继续执行当前程序
P操作 阻塞(等待) V操作 唤醒
重点理解
例题
答案为A C
5PV操作与前趋图
例题
答案为 CAA
分析 信号量标出来 从左到右,从上到下 箭头起点V操作,箭头终点P操作
6死锁问题与银行家算法
概念
如果一个进程等待一件不可能发生的事情,则进程就死锁了,如果一个或多个进程产生死锁,就会造成系统死锁
例题
答案为 13
计算公式为 K* (N-1)+1
K为进程数,N为每个进程所需资源数
总结为 当所有进程都缺一个资源的同时,多一个资源即不会造成死锁
预防和避免
死锁的必要条件:四个
银行家算法(重点)
分配的原则:
例题
分析的一般步骤:
- 计算剩余可分配的资源数和任一进程执行所需进程数
- 注意进程执行完会释放内存
- 选项验证
- 可轻易得出 R1、R2、R3 剩余资源数分别为 2,1,0,P1所需进程分别为 5,3,1,很明显,p1不能最先执行,A排除,同理,P2、P4均能第一个执行;
- 尝试B,P2执行完,剩余资源数分别为 4,2,1,执行P4,没问题,然后释放,剩余资源数为5,4,1,执行P5,没得问题,释放,剩余资源数为 6,5,4,执行P1,也没有问题,最后一个就不需要验证了,其他选项也可以这样分析。
- 可轻易得出 R1、R2、R3 剩余资源数分别为 2,1,0,P1所需进程分别为 5,3,1,很明显,p1不能最先执行,A排除,同理,P2、P4均能第一个执行;
- 尝试B,P2执行完,剩余资源数分别为 4,2,1,执行P4,没问题,然后释放,剩余资源数为5,4,1,执行P5,没得问题,释放,剩余资源数为 6,5,4,执行P1,也没有问题,最后一个就不需要验证了,其他选项也可以这样分析。
7分区存储管理
最佳使用法会导致内存碎片,最差适应法会减少内存碎片
8页式存储
记住,没啥说的(重点)
例题
分析:要求解物理地址,即页号与页内地址组合,
页内地址,页面大小为4k,即2^12位,可以得出5A29H,即A29H对应位页内地址
页号查表易得,逻辑5对应的位6,所以第一题答案为D
第二空需要淘汰页面,根据访问位,易得出位B,未被访问才可淘汰
9段式存储
记住,没啥说的(重点)
10页面置换算法
注意这里面的重点 缺页 抖动
抖动:分配更多的内存页,缺页次数反而比更少的内存页更多
缺页:内存没有该页面即缺页
抖动示例(先进先出)
例题1
例题2
分析:没有使用快表等价于 查和读各一次访问内存,合计 12次 选B
指令一次调入,数字一次调入,合计 1+2+2 5次 选C
11索引文件结构
例题
分析:
首先是以及间接地址索引,所以逻辑号5对应的应该是索引结点90存放的第一个索引结点的物理块号,即为58
由题易得,1kb存放256个地址,逻辑号261对应的应该是索引结点91存放的第一个索引结点的物理块号,即为187
二级间接索引,没得说
12树型目录结构
13空余存储空间的管理
1表示占用,0表示空闲
例题
分析
14数据传输控制方式
15虚设备与spooling技术
基本原则:
开辟缓冲区,输入输出的缓存