调度算法FCFS、SJF和优先权调度的介绍和例题
调度算法
一、先来先服务FCFS (First Come First Serve)
1.思想:
选择最先进入后备/就绪队列的作业/进程,入主存/分配CPU
2.优缺点
优点:对所有作业/进程公平,算法简单稳定
缺点:不够灵活,对紧急进程的优先处理权限不够,在相同时限下处理任务数量可能更少
二、短作业优先SJF (Shortest Job First)
1.思想:
可分为抢占式和非抢占式(执行时间越短,优先级越高)
抢占式优先权,若队列后续作业/进程的优先级更高,则它抢占CPU资源,之前运行的作业/进程暂停,开始执行优先级更高的作业/进程,总结就是当前在CPU中的作业/进程总是执行时间最短,能够最快完成的
非抢占式优先权,若当前CPU中已经有正在执行的作业/进程,则不会打断其执行过程,当后备队列中有多个进程时,下一个会先执行优先级高的作业/进程,入主存/分配CPU,总结就是下一个执行的作业/进程总是在后备队列中执行时间最短的
2.优缺点
优点:灵活性高,相同时限下能处理更多的任务
缺点:不够稳定,算法更复杂
PS:优先级调度算法与此算法类似,只不过额外指明了作业/进程的优先级以确定执行先后顺序,在此不再赘述
三、举例
周转时间 = 完成时刻 - 进入时刻
等待时间 = 完成时刻 - (进入时刻 + 执行时间)
1.FCFS
调度顺序:P1 -> P2 -> P3 -> P4
画个Gantt图助于理解
下方为不同进程进入队列次序及时间,上方为CPU中进程执行顺序表
平均周转时间:Ta = (8 + 11 + 19 + 23) / 4 = 15.25s
平均等待时间:Tw = (0 + 7 + 10 + 18) / 4 = 8.75s
2.抢占式优先权调度
调度顺序:P1 -> P2 -> P4 -> P2 -> P3 -> P1
平均周转时间:Ta = (26 + 9 + 17 + 5) / 4 = 14.25s
平均等待时间:Tw = (18 + 5 + 8 + 0) / 4 = 7.75s
3.非抢占式SJF
调度顺序:P1 -> P2 -> P4 -> P3
平均周转时间:Ta = (8 + 11 + 24 + 14) / 4 = 14.25s
平均等待时间:Tw = (0 + 7 + 15 + 9) / 4 = 7.75s
调度算法FCFS、SJF和优先权调度的介绍和例题的更多相关文章
- k8s调度器介绍(调度框架版本)
从一个pod的创建开始 由kubectl解析创建pod的yaml,发送创建pod请求到APIServer. APIServer首先做权限认证,然后检查信息并把数据存储到ETCD里,创建deployme ...
- FCFS,SJF,HRN
1.编写并调试一个单道处理系统的作业等待模拟程序. 作业等待算法:分别采用先来先服务(FCFS),最短作业优先(SJF).响应比高者优先(HRN)的调度算法. 对每种调度算法都要求打印每个作业开始运行 ...
- 短作业优先调度算法(SJF)
假设有n项作业位于就绪队列中,这些作业的提交时间用数组requestTimes按照提交时间的先后顺序存储,对应的作业服务时间(持续时间)用数组durations存储.采用SJF算法,计算n项作业的平均 ...
- Go调度器介绍和容易忽视的问题
本文记录了本人对Golang调度器的理解和跟踪调度器的方法,特别是一个容易忽略的goroutine执行顺序问题,看了很多篇Golang调度器的文章都没提到这个点,分享出来一起学习,欢迎交流指正. 什么 ...
- C语言模拟实现先来先服务(FCFS)和短作业优先(SJF)调度算法
说明 该并非实现真正的处理机调度,只是通过算法模拟这两种调度算法的过程. 运行过程如下: 输入进程个数 输入各个进程的到达事件 输入各个进程的要求服务事件 选择一种调度算法 程序给出调度结果:各进程的 ...
- Linux 常见的进程调度算法
1.在介绍进程调度之前,先对进程的状态的概念应该有所了解,下面是关于进程状态的一些基本概念:进程的状态分为三种,分别为: 1).运行态:该状态表明进程在实际占用CPU 2).就绪态: 该状态下进程可以 ...
- 操作系统常用调度算法(转载https://www.cnblogs.com/kxdblog/p/4798401.html)
操作系统常用调度算法 在操作系统中存在多种调度算法,其中有的调度算法适用于作业调度,有的调度算法适用于进程调度,有的调度算法两者都适用.下面介绍几种常用的调度算法. 先来先服务(FCFS)调度算法 ...
- 操作系统学习笔记(五)--CPU调度
由于第四章线程的介绍没有上传视频,故之后看书来补. 最近开始学习操作系统原理这门课程,特将学习笔记整理成技术博客的形式发表,希望能给大家的操作系统学习带来帮助.同时盼望大家能对文章评论,大家一起多多交 ...
- 0422 Step2-FCFS调度
一.目的和要求 1. 实验目的 (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 2.实验要求 用高级语言编写一个或多个作业调度的模拟程序. 单道批处理系统的作业调度程序.作业一投入运行, ...
随机推荐
- HDU - 3729 I'm Telling the Truth(二分匹配)
题意:有n个人,每个人给出自己的名次区间,问最多有多少个人没撒谎,如果有多解,输出字典序最大的解. 分析: 1.因为字典序最大,所以从后往前分析. 2.假设后面的人没说谎,并将此作为已知条件,然后从后 ...
- 从ofo牵手理财平台看,用户隐私数据的使用有底线吗?
智慧生活的到来既是社会变迁的拐点,又不可避免地带来一种挥之不去的焦虑.这种焦虑的由来,是因个人隐私数据在智慧生活下变成一种"黑暗财富".随着相关数据挖掘.收集.分析技术的成熟,人们 ...
- raspberry pi-php-exec
遇到的问题是在树莓派上搭建的web服务器,想通过网页操控树莓派的gpio,网页是通过php实现的,通过php的exec函数调用写好的程序实现对gpio的操作,但是赖何没有效果,分析也知道是权限问题,最 ...
- sass的安装和基础语法
安装 下载ruby安装包[官网非常慢ruby官网] ruby-2.3.3-x64-mingw32.7z 下载sass sass-3.7.4.gem 方法一: ruby压缩包,解压即可,在bin目录下, ...
- servlet 之 HttpServlet抽象类详解
Servlet的框架是由两个Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口 ...
- Day 13:File类的常用方法
路径问题: 绝对路径: 该文件在硬盘上 的完整路径.绝对路径一般都是以盘符开头的. 相对路径: 相对路径就是资源文件相对于当前程序所在的路径. . 当前路径 .. 上一级路径 注意: 如果程 ...
- ERROR in Cannot find module 'node-sass'
windows下,通过淘宝的npm镜像安装 npm install node-sass --registry=https://registry.npm.taobao.org (之前安装好过,一段时间没 ...
- MacOS通过ssh连接基于Virtualbox的Ubuntu虚拟机
以前总是用Windows软件putty进行ssh连接,今天尝试使用macos. 实验环境:主机:macos 10.15.3 客户机:Ubuntu 18.04 默认情况下,Ubuntu没有安装SSH,需 ...
- UVA - 11093 Just Finish it up(环形跑道)(模拟)
题意:环形跑道上有n(n <= 100000)个加油站,编号为1~n.第i个加油站可以加油pi加仑.从加油站i开到下一站需要qi加仑汽油.你可以选择一个加油站作为起点,起始油箱为空(但可以立即加 ...
- JS ~ Promise.reject()
概述: Promise.reject(reason)方法返回一个带有拒绝原因reason参数的Promise对象. 语法 Promise.reject(reason); reason : 表示Pro ...