概念

控制、协调多个进程对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做有效工作的时间比列

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

操作系统-CPU调度的更多相关文章

  1. 操作系统CPU调度知识点

    1.进程基本概念:进程是程序的一次运行. 是系统进程资源分配和调度的基本单位. 2.进程三态:运行状态.就绪状态.堵塞状态.三态转换规则,就绪状态的进程因为调度进程运行状态,运行状态因为时间片用完而进 ...

  2. 操作系统学习笔记(五)--CPU调度

    由于第四章线程的介绍没有上传视频,故之后看书来补. 最近开始学习操作系统原理这门课程,特将学习笔记整理成技术博客的形式发表,希望能给大家的操作系统学习带来帮助.同时盼望大家能对文章评论,大家一起多多交 ...

  3. 操作系统概念学习笔记 10 CPU调度

    操作系统概念学习笔记 10 CPU调度 多道程序操作系统的基础.通过在进程之间切换CPU.操作系统能够提高计算机的吞吐率. 对于单处理器系统.每次仅仅同意一个进程执行:不论什么其它进程必须等待,直到C ...

  4. 操作系统学习笔记:CPU调度

    CPU调度的目的在于提高CPU利用率,不让CPU闲着.CPU是宝贵的资源,如果有一个进程,本来在CPU中运行,忽然因为要使用IO资源,于是转而请求IO,这边CPU挂起,造成就绪队列中的其他进程等待,这 ...

  5. 操作系统(五)CPU调度

    CPU调度是多道程序操作系统的基础.

  6. 【转】CPU调度

    转自:http://blog.csdn.net/xiazdong/article/details/6280345 CPU调度   用于多道程序 以下先讨论对于单CPU的调度问题. 回顾多道程序,同时把 ...

  7. 计算机操作系统处理机调度读后感—–关于进程概念的剖析。从RING3到RING0(32位操作系统)

    计算机操作系统处理机调度读后感: 笔者在看操作系统西安电子科技大学那本书的时候,初次感觉本科教的不会太难,所以没有认真的看,但是随后这本书讲的刷新了我的世界观.这本书居然是ring0级别的,这时不禁吐 ...

  8. s5-1 CPU调度

    基本概念 通过多道程序设计得到 CPU 的最高利用率 (CPU-- I/O 脉冲周期 - - 进程的执行包括进程在 CPU 上执行和等待 I/O ) 进程的执行以 CPU 脉冲开始,其后跟着 I/O ...

  9. [OS] CPU调度

    调度准则 为了比较CPU调度算法,分析员提供了许多准则,用于比较的特征对确定最佳算法有很大影响.这些准则包括: ·CPU使用率:需要使CPU尽可能忙. ·吞吐量:一个时间单元内完成进程的数量. ·周转 ...

随机推荐

  1. JDBC_事务说明

    JDBC控制事务:1.事务:一个包含多个步骤的业务操作,如果这个业务操作被事务管理则多个步骤同时成功或同时失败2.操作: 1.开启事务 2.提交事务 3.回滚事务3.使用Connection对象来管理 ...

  2. 2019-8-31-C#-通过编程的方法在桌面创建回收站快捷方式

    title author date CreateTime categories C# 通过编程的方法在桌面创建回收站快捷方式 lindexi 2019-08-31 16:55:58 +0800 201 ...

  3. redis 体系结构

    程序strings   key-value 类型 ,value不仅是String,也可以是数字.使用strings 类型可以完全实现目前 Memcache 的功能,并且效率更高,还可以享受redis的 ...

  4. Python 输入字符串找(String)下标 没有返回-1

    str = "abcdefg123456"a = input("请输入一个字母或数字:")num = 0result = -1while num < le ...

  5. exit与return的区别

    ===========================PHP的解释=========================================================== return ...

  6. VIM 代码自动补全, YouCompleteMe安装及配置

    效果 下载 使用Vundle安装 YCM 1. 安装Vundle window用户安装vundle参考这里:Windows下 vundle的安装和使用 2.

  7. Mac 上的 redis

    Mac下添加redis的环境变量: echo 'export PATH="/usr/local/opt/redis@3.2/bin:$PATH"' >> ~/.bash ...

  8. vue+el-menu+vue-router实现动态导航条

    导航栏组件template <template> <div class="sidebar"> <el-menu unique-opened :defa ...

  9. linux xargs命令一(与find ls等命令组合)(转)

    -p 操作具有可交互性,每次执行comand都交互式提示用户选择 -i -i 选项告诉 xargs 可以使用{}代替传递过来的参数, 建议使用-I,其符合POSIX标准 -I 格式: xargs  - ...

  10. Django杂篇(1)

    目录 Django杂篇(1) bulk_create Pagination 创建多对多表关系的常用方法 form校验组件的应用 渲染页面 展示错误信息 校验数据 常用字段 Django杂篇(1) 这里 ...