文章目录

  • 总结
  • 概念
    • 系统性能指标
    • 与执行任务相关的时间
  • 批处理系统进程调度算法
  • 交互式(分时)系统进程调度算法
  • 实时系统进程调度算法
  • 参考

总结

  1. 操作系统分为三种批处理系统、交互式(分时)系统、实时系统
  2. 所有系统都需要考虑的是公平、策略强制执行、平衡
  3. 批处理系统需要考虑的是吞吐量、周转时间、CPU利用率
  4. 分时系统需要满足的是响应时间、均衡性
  5. 实时系统需要满足的是满足截止时间,可预测性

概念

系统性能指标

  1. 公平:给每个进程公平的CPU份额
  2. 策略强制执行:保证规定的策略被执行
  3. 平衡:保证系统的所有部分都忙碌
  4. 吞吐量:一定时间段完成的作业数
  5. 周转时间:从提交任务到任务完成的时间,包括分为服务时间和等待时间
  6. CPU利用率:反映CPU忙碌程度的量
  7. 响应时间:从发起请求到接收到响应的时间。类似的有往返时间RTT(Round-Trip Time),往返时间是数据完全发送完(完成最后一个比特推送到数据链路上)到收到确认信号的时间,RTT时延包括发生(传输)时延、传播时延、排队时延、处理时延)。处理时延包括在路由器和交换机上面的时延和应用程序的处理时延
  8. 均衡性:满足用户的期望
  9. 满足截止时间:实时系统有时任务不在截止时间之内完成任务就会出现很大问题,如胰岛素自动注射系统,如果不在截止时间内完成任务,可能会出现生命危险
  10. 可预测性:在多媒体系统需要稳定的传输速率,否则视频一卡一卡的

与执行任务相关的时间

  1. 到达时间:任务到达时刻(时间点)
  2. 服务时间:任务总共执行时间(时间段)
  3. 等待时间:从任务到达后到开始服务之间的时间段
  4. 开始时间:任务开始执行时刻(时间点)
  5. 完成时间:任务完成时刻(时间点)
  6. 周转时间:任务从到达到完成之间时间(时间段)
  7. 带权周转时间:周转时间/服务时间

批处理系统进程调度算法

  1. 先来先服务FCFS(First-Come First-Served):先来先服务是非抢占式的,进程按照请求CPU的时间顺序排队使用CPU,即使有些任务运行时间非常长,也不会中断该任务,优点是公平,CPU利用率高,不用发生太多进程切换,缺点是效率低,当出现IO密集型和CPU密集型两个任务时,如果使用分时算法可以在IO密集型作业等待时执行CPU密集型作业,在IO密集型作业准备好后执行以下IO密集型作业
  2. 最短作业优先SJF(Shortest Job First):非抢占式的,当执行长任务即使来了个短任务也会把长任务执行完
  3. 最短剩余时间优先(Shortest Remaining Time Next):抢占式的,总是选择最短剩余时间的任务执行,这样当执行一个长任务来了一个短任务,短任务会直接抢占执行
  4. 最高响应比优先算法HRN(Highest Response Ratio Next):响应比 = 等待时间 + 服务时间 / 服务时间,则当小任务和大任务一起到达时,小任务响应比较高先执行,如果大任务等待过久,也可以获得比较高的响应比,也可以执行,不会存在饥饿的情况

交互式(分时)系统进程调度算法

  1. 轮转调度RR(round robin):每个进程被分配一个时间片,在这个时间片内该进程可以使用CPU,当然如果等待IO也可以提前释放CPU
  2. 优先级调度:不同进程可能执行的不同重要程度的任务,优先级高的进程会先运行,当优先级高的进程使用完一个时间片后,优先级会降低,一种简单的算法是分配一个比较大的时间片T=50ms,如果一个进程需要使用的时间为t=1ms,则其优先级为50,如果一个进行需要使用时间t=25ms,则其优先级为2,即T/t
  3. 多级队列:将队列分级,每个队列的时间片大小不同,一开始任务都在第一级,用完时间片后如果任务还没完成,则调入优先级低一级的队列,优先级低一级的队列所分的时间片是高一级的两倍,但是只有优先级高的队列空了才会执行低优先级队列中的任务
  4. 最短进程优先:可以保证响应时间短,但是可能长进程饥饿
  5. 保证调度:保证用户进程使用CPU的比率
  6. 彩票调度(lottery scheduling):使用随机算法,当抽奖抽中的进程可以使用时间片
  7. 公平分享调度:不再按进程数量区分,而是按用户分时间片,如果一个用户有很多进程,它也不会额外占用很多CPU时间

实时系统进程调度算法

实时系统一般都引入截止时间,作为优先级调度的依据

  1. 最早截止期优先EDF(Earliest Deadline First)
  2. SCAN-EDF是先按照最早截止期优先,相同截止时间按照SCAN扫描算法,扫描算法是最常用电梯算法,规定一个方向,只有方向上的请求都满足的,或者到头了才调转方向
  3. FD-SCAN(Feasible Deadline SCAN)算法,首先从请求队列中找出时限最早,从当前位置开始移动又可以满足其时限要求的请求,作为下一次SCAN的方向,如果从当前位置移动过去还是不能满足要求,就放弃该任务

参考

《 现代操作系统 》

操作系统进程调度算法相关推荐

  1. Java操作系统进程调度算法——时间片轮转(RR)算法

    Java操作系统进程调度算法--时间片轮转(RR)算法 文章目录 Java操作系统进程调度算法--时间片轮转(RR)算法 前言 一.算法思想 二.数据结构 1.定义PCB进程控制块 2.实现思路 三. ...

  2. Java操作系统进程调度算法——优先级调度(HPF)算法

    Java操作系统进程调度算法--优先级调度(HPF)算法 文章目录 Java操作系统进程调度算法--优先级调度(HPF)算法 前言 一.算法思想 二.数据结构 1.定义(PCB)进程控制块 2.实现思 ...

  3. 操作系统进程调度算法,进程调度实验

    操作系统进程调度算法 1 题目描述 1.1 实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解. 1.2 实验内容 编写并调试一个模拟的进程调度程序,采用简单时间片 ...

  4. Java操作系统进程调度算法——先来先服务(FCFS)算法

    Java操作系统进程调度算法--先来先服务(FCFS)算法 Java操作系统进程调度算法--先来先服务(FCFS)算法 文章目录 Java操作系统进程调度算法--先来先服务(FCFS)算法 前言 一. ...

  5. 操作系统学习(一):浅析操作系统进程调度算法

    目录 0.前置知识 0.1 调度性能指标 0.2 上下文切换 1.进程调度算法简单介绍 1.1 先进先出(FIFO) 1.2 最短任务优先(SJF) 1.3 最短完成时间优先(STCF) 1.4 轮转 ...

  6. 操作系统进程调度算法(先来先服务,短作业优先算法(SJF))linux下(附源码)

    先来先服务算法(FCFS) FCFS是最简单的调度算法,既可以用作作业调度,也可以用作进程调度 这种算法优先考虑系统中等待时间最长的作业(进程),而不管作业所需执行时间长短, 做法是从后备队列中选择几 ...

  7. OS / 几个常用的操作系统进程调度算法

    在操作系统中存在多种调度算法,其中有的调度算法适用于作业调度,有的调度算法适用于进程调度,有的调度算法两者都适用.下面介绍几种常用的调度算法. 一.先来先服务(FCFS)调度算法 FCFS 调度算法是 ...

  8. 操作系统进程调度算法——吸烟者问题

    问题描述: 假设一个系统有三个吸烟者进程和一个供应者进程,每个吸烟者都需要得到三个资源才能完成吸烟操作并且他们每人都持有这三种资源中的一种,供应者一次只能提供三种资源中两种的组合,并且要等到接收到吸烟 ...

  9. 操作系统进程调度算法(FCFS、SJF、高响应比)

    进程调度算法(FCFS.SJF.高响应比) 一.算法描述 1.先来先服务(FCFS)调度算法 (1)FCFS是最简单的调度算法,该算法可用于作业调度,也可用于进程调度. (2)算法规则:系统按照作业到 ...

  10. 几个常用的操作系统进程调度算法

    一.先来先服务和短作业(进程)优先调度算法 1.先来先服务调度算法 先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度.当在作业调度中采用该算法时,每次调度 ...

最新文章

  1. 2012年上海市高等学校计算机等级考试试卷,2012年上海市高等学校计算机等级考试A试卷...
  2. 判断单链表是否存在环
  3. python-matplotlib
  4. GCC编译选项 -OX[转]
  5. 每日一课(12/75)操作数的寻址方式
  6. 两天来的Java IO Tips
  7. 中兴面试(含面试题)
  8. 时钟周期、机器周期、指令周期的概念及三者之间的关系;定时器及计数器
  9. z-blogPHP在西部数码虚拟主机上遇到WTS-WAF错误拦截情况,协商好久他们还是妥协了...
  10. 梨都飞雪 2021-05-21
  11. 限时免费领取育碧75元游戏《纪元Anno1404:历史版》
  12. 银河麒麟 Kylin_s10_sp3安装Oracle11g(FS)(亲测有效)
  13. Shell脚本三种循环
  14. 2016-2017-1 《信息安全系统设计基础》课程总结
  15. windows CE 4.2、5.0、6.0下载地址
  16. LB10S-ASEMI贴片整流桥LB10S
  17. 追赶时代浪潮的“脸商”,刷脸支付市场前景广阔
  18. [图文教程] 禁止 Windows 10 自动下载和更新驱动程序(转)
  19. 在哪里找java工作_去哪里找java工作比较好找?
  20. 全国青少年编程等级考试scratch四级真题2022年12月(含题库答题软件账号)

热门文章

  1. 安医有计算机专业吗,他从安徽医科大保研到南京航空航天大学!给学弟学妹分享保研经历...
  2. 百度Java面试题及答案(2022最新版)
  3. 对象不支持“attachEvent”属性或方法的解决办法
  4. 图片标注工具Labelme的安装及使用方法
  5. Java实验报告(七)|IO编程
  6. VC2010升级到VC2015遇到问题及解决办法
  7. Ubuntu系统周立功CAN驱动安装及常见问题
  8. 流程图绘图工具 Gliffy 使用简介
  9. 【剑指Offer学习】【所有面试题汇总】
  10. 剑指Offer系列刷题笔记汇总