一 基本概念
1 队列中的记录通常是进程的进程控制块。
2 CPU调度决策可在如下四种环境下发生
a 当一个进程从运行状态切换到等待状态 例如,I/O请求或调用wait以等待一个子进程的终止
b 党一个进程从运行状态切换到就需状态 例如,当出现中断
c 当一个进程从等待状态切换到就需状态 例如,I/O完成
d 当一个进程终止
当调度只能发生在第一和第四种种情况时,称调度方案是非抢占的,否则调度方案是可抢占的。
采用非抢占调度,一旦CPU被分配给一个进程,那么该进程会一直使用CPU直到进程终止或切换到等待状态时释放CPU
3 分派程序
功能包括:
切换上下文
切换到用户模式
跳转到用户程序的合适位置以重新启动这个程序
二 调度准则
CPU使用率: 40%到90%
吞吐量:一个时间单元内所完成进程的数量。
周转时间:从进程提交到进程完成的时间间隔称为周转时间。周转时间是所有时间段之和,包括等待进入内存、在就绪队列中等待
,在cpu上执行和I/O执行
等待时间:CPU调度算法并不影响进程运行和执行I/O的时间量。它只影响进程在就需队列中等待所花费的时间。
响应时间:从提交请求到产生第一响应的时间。是开始响应所需要的时间,而不是输出该响应所需要的时间。
CPU使用率和吞吐量最大化,周转时间、等待时间和相应时间最小化
三 CPU调度算法
1 先到先服务调度
FCFS(first-come,first-served)
当一个进程进入到就需队列,其pcb就被链接到队列的尾部,当CPU空闲时,CPU被分配给位于队列头的进程。接着,该运行进程从队
列中被删除。
FCFS策略的平均等待时间相当长
FCFS调度算法是非抢占式的。
2 最短作业优先调度
SJF(shortest-job-first)
SJF算法的真正困难时如何知道下一个CPU请求的长度。SJF调度经常用于长期调度。
3 优先权调度
每个进程都有一个优先权与其关联,具有最高优先权的进程会被分配到CPU。具有相同优先权的进程按FCFS顺序调度。
优先权可以通过内部或外部方式来定义。
优先权调度可以使可抢占的或者非抢占的。
优先权调度算法的一个主要问题是无穷阻塞。解决办法是老化,老化是一种技术,以逐渐增加在系统中等待很长时间的进程的优先
权。
4 轮转法调度
轮转法(RR)调度算法是专门为分时系统设计的。定义一个小时间单元,称为时间量或时间片。时间片通常为10ms到100ms。就绪队
列作为循环队列处理。CPU调度程序循环就需队列,为每个进程分配不超过一个时间片间隔的CPU。
如果上下文切换时间约为时间片的10%,那么约10%的CPU时间会浪费在上下文切换上。
5 多级队列调度
(multilevel queue-scheduling algorithm)
不同队列可用于前台和后台进程,前台队列可能使用RR算法调度,而后台队列可能使用FCFS算法调度。
6 多级反馈队列调度
对于多级队列调度算法,通常进程进入系统时,被永久地分配到一个队列,进程并不在队列之间移动。
四 多处理器调度
堆成多处理器
非对称多处理器
五 实时调度
实时计算分为两种类型:硬实时,软实时
硬实时:系统需要在保证的时间内完成关键任务。通常,在提交进程时,同时有一条语句告诉系统用来完成或执行I/O所需要的时间
软实时:要求关键进程要比其他较弱进程拥有更高的优先权。
实现软实时要求自习设计调度程序和操作系统的有关方面:
第一,系统必须有优先权调度,且实时进程必须有最高的优先权。实时进程的优先权不随时间而下降,尽管非实时进程的优先权可
以。
第二,分配延迟必须小
分派程序停止一个进程而启动另一个进程执行所需要花费的时间成为分派延迟
六 linux
linux提供了两种独立进程调度算法。一种是分时算法,用于在多个进程之间进行公平可抢占调度
一种是为实时任务设计的,
linux只允许在用户模式下运行的进程被抢占
第一种调度类型是用于分时进程的,对于传统的分时进程,linux使用了优先权的、基于信用度的算法。每个进程都有一定数量的调
度信用度,党要选择一个新任务运行时,具有最多信用的进程会被选择。每次出现定时器中断时,当前运行进程会失去一个信用,
党其信用为0时,它会被暂停且另一个进程会被选择。
linux使用两种实时调度类型:先到先处理和轮转。
时间片轮转(RR)调度对于分时系统更为适合。
FCFS算法是非抢占的,RR算法是可抢占的。SJF和优先级算法可以使可抢占的也可以使非抢占的。
多级队列算法允许多个不同算法用于各种类型的进程,最为常用的是前台交互队列(RR)和后台批处理队列(FCFS)。多级反馈队
列允许进程在队列之间迁移。
solaris 2和windows2000都采用可抢占的、基于优先级的调度算法,包括支持实时线程,来调度线程
linux进程调度程序也使用基于优先级的算法,并提供实时支持。

操作系统概念学习笔记三 cpu调度算法的更多相关文章

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

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

  2. 《30天自制操作系统》笔记(06)——CPU的32位模式

    <30天自制操作系统>笔记(06)——CPU的32位模式 进度回顾 上一篇中实现了启用鼠标.键盘的功能.屏幕上会显示出用户按键.点击鼠标的情况.这是通过设置硬件的中断函数实现的,可以说硬件 ...

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

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

  4. 操作系统学习笔记4 | CPU管理 && 多进程图像

    操作系统的核心功能就是管理计算机硬件,而CPU就是计算机中最核心的硬件.而通过学习笔记3的简史回顾,操作系统通过多进程图像实现对CPU的管理.所以多进程图像是操作系统的核心图像. 参考资料: 课程:哈 ...

  5. 操作系统学习笔记(三) windows内存管理

    //系统物理页面是由 (Page Frame Number Database )简称PFN数据库来进行管理,实际上是一个数组,每个物理页面都对应一个PFN项. 进程的地址空间是通过VAD(Virtua ...

  6. 操作系统学习(三)-- CPU调度

    操作系统之进程与线程 L14 CPU调度策略 如何设计调度算法? 调度关键在:折中和综合 IO约束型的任务一般是前台任务,和用户交互:CPU约束型关注周转时间 进程切换过程需要系统内耗,切换时间长则系 ...

  7. 操作系统学习笔记----进程/线程模型----Coursera课程笔记

    操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进 ...

  8. 清华大学ucore操作系统课笔记

    操作系统 清华大学ucore操作系统课笔记 全文思维导图 1. 操作系统概述 1.1 什么是操作系统? 操作系统的定义 没有公认的精确定义 一个控制程序 一个系统软件 控制程序执行过程,防止错误和计算 ...

  9. 操作系统学习笔记5 | 用户级线程 && 内核级线程

    在上一部分中,我们了解到操作系统实现多进程图像需要组织.切换.考虑进程之间的影响,组织就是用PCB的队列实现,用到了一些简单的数据结构知识.而本部分重点就是进程之间的切换. 参考资料: 课程:哈工大操 ...

随机推荐

  1. oracle创建计划任务

    特别提示: oracle是执行完任务,才按照interval去计算下次执行时间!!! 为精确每个5分钟执行一个任务,必须自己计算时间. 如:trunc_minute(sysdate)+/ create ...

  2. XML DOM(Document Object Model)

    1.XML DOM 是用于获取.更改.添加或删除 XML 元素的标准.2.节点(XML 文档中的每个成分都是一个节点):        整个文档是一个文档节点:        每个XML元素是一个元素 ...

  3. SQL join关键字

    如果一张表有很多个字段可能填入起来十分的困难复杂,不如把它拆分成两个表,然后查看的时候合并起来. 比如我要记录学生的姓名,班级,成绩,父母的电话号码,那么我们可以创建一个表1 储存学生的姓名班级成绩, ...

  4. Android之 内容提供器(1)——使用内容提供器访问其它程序共享的数据

    (下面内容是阅读郭霖大神的<第一行代码>总结的) 1 概述 内容提供器是Android实现跨程序共享数据的标准方式. 内容提供器的的使用方法有两种, 一是使用已有的内容提供器对其他程序的数 ...

  5. Learn to Create Everything In a Fragment Shader(译)

    学习在片元着色器中创建一切 介绍 这篇博客翻译自Shadertoy: learn to create everything in a fragment shader 大纲 本课程将介绍使用Shader ...

  6. 洗牌问题 FZU - 1062 (传说中的思路题,hhh)

    设2n张牌分别标记为1, 2, -, n, n+1, -, 2n,初始时这2n张牌按其标号从小到大排列.经一次洗牌后,原来的排列顺序变成n+1, 1, n+2, 2, -, 2n, n.即前n张牌被放 ...

  7. 邝斌带你飞之数论专题--Maximum GCD UVA - 11827

    Given the N integers, you have to find the maximum GCD (greatest common divisor) of every possible p ...

  8. Vue 2.0学习(六)内置指令

    基本指令 1.v-cloak v-cloak不需要表达式,它会在Vue实例结束编译时从绑定的HTML元素上移除,经常和CSS的display:none配合使用. <div id="ap ...

  9. ( VIJOS )VOJ 1049 送给圣诞夜的礼品 矩阵快速幂

    https://vijos.org/p/1049   非常普通的矩阵快速幂... 但是我 第一次写忘了矩阵不能交换律... 第一二次提交RE直到看到题解才发现这道题不能用递归快速幂... 第三次提交成 ...

  10. Pollard-rho算法:模板

    #include<algorithm> #include<cstdio> #include<cstdlib> #define N 5500 using namesp ...