zoukankan      html  css  js  c++  java
  • 操作系统-CPU调度

    概念

    控制、协调多个进程对CPU的竞争 

    即按一定的调度算法从就绪队列中选择一个进程,把CPU的使用权交给被选中的进程

    场景

    N个进程就绪,等待上M(M>=1)个CPU运行,需要决策哪个进程分配给哪个CPU运行

    解决

    WHAT:调度算法(按什么原则选下一个),WHEN:调度时机(何时选),HOW:调度过程(被选中的进程如何上CPU运行)

    具体

    调度时机:内核对中断/异常/系统调用处理后返回用户态时(就绪队列的改变引发重新调度)

      如进程正常终止(退出),进程由于错误终止(如abort异常),新进程创建,一个等待进程变就绪态(唤醒),一个进程由运行态变为就绪态

    或阻塞态(等待或中断)

    调度过程:进程切换,一个进程让出CPU,另一个占用CPU,包括对原进程状态的保存和新进程状态的恢复

      举例:进程A下CPU,进程B上CPU,整个过程包括保存A的进程的上下文,修改进程A的状态(更新PCB),进程A移至合适队列,将B的状态

    设置为运行态,从进程B的PCB中恢复上下文

    一个重要概念:上下文切换开销

    直接开销包括内核完成切换所用的CPU时间(保存和恢复寄存器,切换地址空间等)

    间接开销包括高速缓存,缓冲区缓存,TLB失效

    调度算法的衡量指标

    吞吐量--每单位时间完成的进程的数目

    周转时间--每个进程从提出请求到运行完成的时间

    响应时间--从提出请求到第一次回应的时间

    CPU利用率--CPU做有效工作的时间比列

    等待时间--每个进程在就绪队列中等待的时间

  • 相关阅读:
    407 Trapping Rain Water II 接雨水 II
    406 Queue Reconstruction by Height 根据身高重建队列
    405 Convert a Number to Hexadecimal 数字转换为十六进制数
    404 Sum of Left Leaves 左叶子之和
    403 Frog Jump 青蛙过河
    402 Remove K Digits 移掉K位数字
    401 Binary Watch 二进制手表
    400 Nth Digit 第N个数字
    398 Random Pick Index 随机数索引
    397 Integer Replacement 整数替换
  • 原文地址:https://www.cnblogs.com/yb38156/p/9748173.html
Copyright © 2011-2022 走看看