批处理系统中的调度算法:

*需要考虑的因素:
1. 吞吐量
2. cpu利用率
3. 周转时间
4. 公平性*

1.先来先服务: FCFS:

  • 优点:实现简单
  • 缺点:可能造成周转时间长

2.最短作业优先 SJF(非抢占式)

  • 优点:平均周转时间最短
  • 缺点:不公平,短任务多时,长任务一直得不到执行,产生starvation。

3. 最短剩余时间优先 SRTN :Shortest Remainning Time Next

SJF的抢占式版本

4. 最短相应比优先 HRRN:highest response ratio next

  • 是一个综合考虑的算法
  • 调度时,先计算每个进程的响应比,之后总是选择响应比高的执行。

响应比R = 1+(等待时间/处理时间)

交互式系统中的调度算法

考虑主要因素:

  • 响应时间
  • 公平性

1.RR-round Robin (时间片轮转):

  • 目标:为改善短任务的平均响应时间
  • 主要思想:
    1.周期性切换
    2.每个进程分配一段时间片
    3.利用时钟中断进行进程切换

  • 如何选择合适长度的时间片:

    -时间片太长:
    1.如何每个进程的处理时间都小与时间片的长度,就会退化为FCFS
    2.延长短进程的响应时间

    -时间片太短:
    1.频繁的cpu切换浪费cpu

  • 优点:
    1.公平
    2.有利于交互式计算,响应时间短

  • 缺点
    1.由于进程切换,RR算法开销较大
    2.对于各个进程处理时间大致相同的情况不利,造成更大的平均处理时间。

mutilevel feedback (多级反馈队列)

  • unix BSD5.3 版本使用的调度算法
  • 是一个综合的调度算法

基本思想:

    • 设置多个就绪,第一级队列优先级最高
    • 优先级高,时间片越短,优先级越低,时间片越长。
    • 第一级队列为空时,开始调度第二级队列,以此类推
    • 各级队列使用RR算法调度
    • 当一个新创建进程就绪后,进入第一级队列
    • 进程用完时间片,放弃cup,就进入下一级队列
    • 由于阻塞而放弃cpu的进程,进入相应的等待队列,一旦等待的事件发生,就回到原来的就绪队列
    • 多级反馈队列对i/o型进程更友好

CPU调度算法的更多相关文章

  1. 进程状态转换、CPU调度算法

    进程的状态转换 进程在运行中不断地改变其运行状态.通常,一个运行进程必须具有以下三种基本状态. 进程状态 执行态run:进程正在使用CPU 等待态wait:进程正在等待I/O完成,不在使用也不能使用C ...

  2. 操作系统概念学习笔记三 cpu调度算法

    一 基本概念 1 队列中的记录通常是进程的进程控制块. 2 CPU调度决策可在如下四种环境下发生 a 当一个进程从运行状态切换到等待状态 例如,I/O请求或调用wait以等待一个子进程的终止 b 党一 ...

  3. s5-2 Cpu调度算法

    调度程序采用什么算法选择一个进程(作业)? 如何评价调度算法的性能? 调度准则 CPU利用率 – 使CPU尽可能的忙碌 吞吐量 – 单位时间内运行完的进程数 周转时间 – 进程从提交到运行结束的全部时 ...

  4. 【转】CPU调度

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

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

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

  6. 操作系统中的几种调度算法(JAVA版)

    import java.text.DecimalFormat; import java.util.Arrays; import java.util.Scanner; /* * 作者:Chensx102 ...

  7. s5-1 CPU调度

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

  8. Linux性能优化之CPU优化(一)

    前言 何为性能优化?个人认为,性能优化是为了提高应用程序或系统能力为目的.那么如何才能实现对应用程序的性能调优呢?这里很设计到很多的内容,包括Linux内核.CPU架构以及Linux内核对资源的分配以 ...

  9. 线程池线程数与(CPU密集型任务和I/O密集型任务)的关系

    近期看了一些JVM和并发编程的专栏,结合自身理解,来做一个关于(线程池线程数与(CPU密集型任务和I/O密集型任务)的关系)的总结: 1.任务类型举例: 1.1: CPU密集型: 例如,一般我们系统的 ...

随机推荐

  1. 《Java性能权威指南》笔记----JIT编译器

    概览 编译型语言(C++,Fortran等):运行程序前,需要用编译器将代码静态编译成CPU可执行的汇编码.汇编码针对特定的CPU. 优点:只需编译一次,且有足够的程序信息来优化汇编码.执行速度快: ...

  2. ckeditor自己用的配置文件config.js

    原文发布时间为:2011-01-17 -- 来源于本人的百度文章 [由搬家工具导入] CKEDITOR.editorConfig = function(config) {    // Define c ...

  3. 理解oo:继承、多态、重写、重载、接口、抽象类

    1. 继承: 从多个子类中抽象出实例变量以及方法,形成更抽象的父类,避免在子类中的代码重复,维护起来更加方便.检查是否可以使用继承技术的方法是:IS A 对于类A继承自类B,类C继承自类A,那么类C和 ...

  4. Educational Codeforces Round 37 A B C D E F

    A. water the garden Code #include <bits/stdc++.h> #define maxn 210 using namespace std; typede ...

  5. LeetCode OJ-- Valid Sudoku

    https://oj.leetcode.com/problems/valid-sudoku/ 给出数独的一部分来,验证给出的这一部分是否为 valid 行上无重复的,且是从 ‘1’ 到‘9’ 列上无重 ...

  6. 【原创】打开Excel时提示"您尝试打开的文件**.xls的格式与文件扩展名指定的格式不一致"

    问题描述:     系统安装了WPS时,Analyzer导出excel时候,会提示"您尝试打开的文件**.xls的格式与文件扩展名指定的格式不一致",这是Excel的安全问题,   ...

  7. Cryptography I 学习笔记 --- 抗碰撞

    1. 生日攻击,如果hash函数可以产生n bit的结果,那么生日攻击的时间复杂度在O(nn/2)这个量级.以比特币使用的SHA256为例,其hash结果为256bit,那么如果想完成一次生日攻击,那 ...

  8. 用python登录WeChat(微信) 实现自动回复(非常详细)

    如要转载 麻烦备注好原文出处!!! 最近实现了一些微信的简单玩法 我们可以通过网页版的微信微信网页版,扫码登录后去抓包爬取信息,还可以post去发送信息. >>安装itchat这个库    ...

  9. Decrease (Judge ver.)

    题目描述 We have a sequence of length N consisting of non-negative integers. Consider performing the fol ...

  10. TIOBE排行榜

    作者:码思客链接:https://zhuanlan.zhihu.com/p/37513668来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1 JAVA 毫无疑问的业界 ...