zoukankan      html  css  js  c++  java
  • 进程调度

    1、进程调度的任务是控制协调进程对CPU的竞争即按一定的调度算法从就绪队列中选中一个进程,把CPU的使用权交给被选中的进程

    2、确定算法的原则

      2.1、具有公平性

      2.2、资源利用率高

      2.3、在交互式系统情况下要追求响应时间(越短越好)

      2.4、在批处理系统情况下要追求系统吞吐量

    3、各种进程调度算法

      3.1、先进先出调度算法(FIFO)  

      按照进程就绪的先后次序来调度进程  

      优点:实现简单  

      缺点:没考虑进程的优先级

      3.2、基于优先数的调度(HPF)  

      优先选择就绪队列中优先级最高的进程投入运行,优先级根据优先数来决定

    4、确定优先数的方法

      4.1、静态优先数法  

      在进程创建时指定优先数,在进程运行时优先数不变

      4.2、动态优先数法  

      在进程创建时创立一个优先数,但在其生命周期内优先数可以动态变化。

    5、两种占用CPU的方式

      5.1、可剥夺式(可抢占式)  

      当有比正在运行的进程优先级更高的进程就绪时,系统可强行剥夺正在运行进程的CPU,提供给具有更高优先级的进程使用

      5.2、不可剥夺式(不可抢占式)  

      某一进程被调度运行后,除非由于它自身的原因不能运行,否则一直运行下去

    6、时间片轮转程序调度算法(RR)  

      把CPU划分成若干时间片,并且按顺序赋给就绪队列中的每一个进程,进程轮流占有CPU,当时间片用完时,即使进程未执行完毕,系统也剥夺该进程的CPU,将该进程排在就绪队列末尾。

    7、时间片选择问题:固定时间片,可变时间片

    8、与时间片大小有关的因素: 系统响应时间,就绪进程个数,CPU能力

    9、多队列反馈调度算法  

      将就绪队列分为N级,每个就绪队列分配给不同的时间片,队列级别越高,时间越长,级别越小,时间片越小,最后一级采用时间片轮转,其他队列采用先进先出;系统从第一级调度,当第一级为空时,系统转向第二个队列,...,当运行进程用完一个时间片,放弃CPU时,进入下一级队列;等待进程被唤醒时,进入原来的就绪队列;当进程第一次就绪时,进入第一级队列

    10、进程调度的时机

      10.1、当一个进程运行完毕,或由于某种错误而终止运行

      10.2、当一个进程在运行中处于等待状态(等待I/O)

      10.3、分时系统中时间片到

      10.4、当有一个优先级更高的进程就绪(可抢占式)

      10.5、在进程通信中,执行中的进程执行了某种原语操作(P操作,阻塞原语,唤醒原语

  • 相关阅读:
    Linux上VNC 启动和关闭
    oracle sql查询日期
    jmeter压力测试(多用户登录、选择商品、选择支付方式、下单)
    Java 8 新特性对比
    根据网络地址把图片保存到本地
    cron
    查看windows笔记本电池使用状况
    IIS7.5上的REST服务的Put操作发生HTTP Error 405.0
    .net core发布自定义配置web.config
    ASP.NET Core 3.1 发布时swagger xml缺失问题
  • 原文地址:https://www.cnblogs.com/zjzsky/p/3540282.html
Copyright © 2011-2022 走看看