HELLO WORLD--一起加油(🍺)!|

kingwzun

园龄:3年6个月粉丝:111关注:0

sdut 操作系统CATS s1-s6题解

s1- PV操作

image
题干注意点:

  1. 哪个进程优先级高
  2. 抢占式还是非抢占式
    非抢占式中V操作无效
    做题方法:
    给一个新做法,如果理解后,就不需要记忆了,后面有原始方法
    将信号量等价于进程锁
    将信号量的值等价于进程锁的数量(信号量为负数时,表示有正在等待系统分配给他锁的进程)
    则:
  • P操作:申请锁
    如果系统有锁,进行P操作,系统锁的数量会减少1
    如果系统没锁,进行P操作,进程则会等待(为了展示有进程正在等待获取锁,信号量依旧会减一)。
  • V操作:生产锁
    如果有线程等待获得锁,则V操作,会优先将锁分配给等待进程,
    如果没有等待进程,则V操作,将锁给操作系统

原始方法
流程图:

image

实现伪代码

//自我wait
P(semaphore *S){
S->value--;
if (S->value<0) block(S->list);
}
//signal他人
V(semaphore *S){
S->value++;
if (S->value<=0) wakeup(S->list);
}

s2 - 时间片轮转算法

rr=1时

image

做题方法:
重要的写出甘特图
(可以用甘特图的最后时间=所有服务时间之和, 验证甘特图是否正确)
甘特图的写法:
....略过吧,回来手写

周转时间(T) = 完成时间(F) - 到达时间(A)
周期(W) = 周转时间(T) / 服务时间(S)

rr=x(x>1)时

和rr=1不同的是:
每次使用x时间(如果该进程剩余的时间<x,则处理完该进程)。
注意:每次使用x时间时,甘特图的时间间隔也是x,不是1
做题方法:

注意点

  1. 表格中的Wr可以用分数表示,减少错误率。
  2. 最后的T和W一定保留2位小数
  3. 可以用甘特图的最后时间=所有服务时间之和, 验证甘特图是否正确

s3 - 银行家算法

image
注意点

  1. 循环扫描方法的方向时不是p0->p4
  2. 验证方法:如果计算正确最后一个Work+Allocation=全部资源总量
    每个变量的含义:
    上面的表:
    Max:每个进程需要的的全部的资源
    Allocation: 已经分配给每个进程的各种资源数
    Need: 还需要分配给每个进程的资源数
    Available: 系统还有的各种资源数目
    下面的表:
    Work=Available:表示系统还剩下的资源数
    Work+Allocation:表示执行完该进程后,系统还剩下的进程数
    做题方法:
    对于每个进程Need = Max-Allocation
    对手每种资源Available=Resource-sum(Allocation)
    其余的就是按照名字提示写吧。

s4 - 页面置换算法

CATS 默认值:
最上面的块,是最低地址物理块
最下面的块,是最高地址物理块

附加一个概念:

f=PF访RS×100%

clock

image

题目注意点:

  1. 是否采用clock算法
  2. 替换指针NF开始指向的物理块是什么
    截图的题就比较坑,开始指向最高地址的物理块
  3. 系统给进程分配多少个物理块,是否有页面已经装入,如果有他们的访问位是什么
  4. 是不是低物理地址优先
  5. 最后一个空,是填依次被置换的页面,还是最后一次页面及其访问位
    做题方法:
  6. 无论如何指针每次都只移动一个物理块
  7. 如果访问到了某页面x
    • 如果物理块里面有,则将该块访问位设置为1(之前是1,也设置为1)
    • 如果物理块里面没有
      如果指针指向的物理块访问位为1,则将访问位设置为0,指针下移
      如果指针指向的物理块访问位为0,则将页面x放入物理块且将该块访问位设置为1,指针下移
      如果指针指向的物理块为空,,则将页面x放入物理块且将该块访问位设置为1,指针下移

Optimal(最佳置换算法)

image
题目注意点:

  1. 是否采用Optimal算法
  2. 系统给进程分配多少个物理块,是否有页面已经装
  3. 是不是低物理地址优先

做题方法:
Optimal算法是指:每次淘汰未来最长时间内不访问的 / 以后永不使用的页面

  • 如果有多个永不使用的页面,因为地物理地址优先,优先淘汰上面的块。
    CATS 默认:最上面的块,是最低地址物理块

LRU(最近最久未使用置换算法)

image
题目注意点:

  1. 是否采用Optimal算法
  2. 系统给进程分配多少个物理块,是否有页面已经装
  3. 是不是低物理地址优先

做题方法:
给每个页面添加页面最后一次被访问的时间的字段T,因为优先淘汰最近最久没有使用的页面,也就是优先淘汰T最小的页面
注意:
如果有页面没有被访问过,则优先淘汰没有被访问过的页面。
如果有多个页面没有被访问过,因为地物理地址优先,所以优先淘汰位于上面的页面。

s5 - 磁盘扫描算法

注意点:
ASL结果,一定小数点两位,四舍五入

CSCAN

image

做题方法:
CSCAN是指:一直按一个方向扫描。
就是说:如果是从大到小扫描,如果扫描完最小的磁道后,下一个是扫描队列中最大的磁道。

  1. 将队列建平衡二叉树。
  2. 按照题目给的顺序写入就行。

技巧:
建议查磁道号总数量的后,再检查一下自己写的序列的总数是否等于总数,在查自己序列总数时,顺便检查下自己队列是否是排好序的。

s6 - 文件索引

image

记住公式吧

L0=×

0=××

0=×××

MaxL=L0+L1+L2

本文作者:kingwzun

本文链接:https://www.cnblogs.com/kingwz/p/16274949.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   kingwzun  阅读(376)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起