zoukankan      html  css  js  c++  java
  • 3.5 操作系统习题

    可剥夺方式优先级的进程调度方案也就是说一个进程的CPU资源是可以被剥夺的.例如一个进程P3它正在使用CPU资源,但现在有一个优先级比它更高的进程P1来了,P1也需要CPU资源,这个时候系统就会将CPUD的资源从P3手上剥夺回来然后分配给P1.

    其实这种情况在我们以前讲到进程状态的变换的时候就提到了,也就是一个进程从运行态到了就绪态,是因为它的CPU资源被系统剥夺了,所以它就从运行状态到了就绪状态.

    所有进程可以并行使用I/O设备.以前有些考题它的I/O设备是独享设备,不能被所有进程并行使用,不是共享设备.I/O设备是否可以共享这与解题息息相关,非常重要.

    CPU的利用率=CPU的使用时间/完成所有进程所花时间

    CPU的使用时间是比较好计算的,因为同一时刻,只有一个CPU,所以CPU同一时刻只能为一个进程所使用.

    CPU的总使用时间=10ms+10ms+30ms+40ms=90ms.

    设备的使用时间不能以简单的这种加来计算了.因为所有进程可以并行使用I/O设备.也就是说R1(30ms)和R1(20ms)它有可能有重叠的部分,重叠的部分我们就不能够重复计算它的时间.

    同样进程组的全部完成时间也不能够从这个表直观地体现出来.


    解题方法:画一个设备和CPU的一个使用时间的一个表格.设备占用时间的一个进度表:

     P3前40ms要使用CPU,但是我们要注意的一点就是P3的优先级是最低的.也就是说它现在要使用CPU,系统不一定给CPU给它使用.什么情况下可以给CPU它使用呢?就是P1和P2都不使用CPU的时候,P3就可以使用CPU了.

    比如P1前30ms都不要使用CPU,P2前20ms不要使用CPU,20-30ms之间它要使用CPU.所以P3前20ms,就是P1和P2都没有使用CPU的时候,P3能够使用CPU.到第20ms过后,P2要使用CPU了,所以P3必须要把它的CPU资源出让给P2.

    第30ms-60ms,P3处于就绪状态,第30-40ms,P2处于就绪状态,因为它们都是在等CPU资源.

    所以P1、P2、P3的进程组运行完毕需要100ms.

    只要会画出这个时间进度表,那么解题就没问题了.


    例题2:

    讲银行家算法的时候举了一个比较复杂的例子:

    这个例子比上一个更简单,因为这个例子只牵涉到了一类资源,而我们讲课的时候讲到了三类资源.是否真正理解了银行家算法.

    如果没说它是互斥的还是共享的资源,那么它就是互斥的资源.也就是说这个资源是不能够共享的.

  • 相关阅读:
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    code=exited,status=1/failure;failed to start LSB:Bring up/down networking
    Eclipse安装AmaterasUML插件问题
    Navicat如何导出Excel格式表结构
    powerdesigner生成mysql带注释的ER图
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/7237417.html
Copyright © 2011-2022 走看看