基本思想

SJF算法是以作业的长度来计算优先级,作业越短,其优先级越高。作业的长短是作业所要求的运行时间来衡量的。

算法性能评价

面向用户

周转时间

从作业被提交给系统开始,到作业完成为止的这段时间间隔(作业在后备队列上等待时间、进程在就绪队列上等待时间、进程在cpu上执行时间、进程阻塞时间)

 1. 周转时间=完成时间-到达时间2. 平均周转时间:周转时间/进程数 3. 带权周转时间:周转时间/服务时间4. 平均带权周转时间:带权周转时间/进程数
响应时间

从用户通过键盘提交一个请求开始,到系统首次产生响应为止的时间,包括键盘输入时间、信息处理时间和信息回送时间。

截止时间

某任务必须开始执行的时间(开始截止时间)和执行完成时间(完成截止时间)

以例题来了解


系统有如下进程,计算平均周转时间和平均带权周转时间

非抢占式调度

非抢占式调度(Non-preemptiveMode)进程一旦获得处理机,只有在该进程任务完成或因某事件而阻塞时,才让出处理机,决不允许某进程抢占已经分配出去的处理机。

方法
  1. 找出最先到达的进程(该进程的完成时间=到达时间+服务时间);

  2. 根据上一进程的完成时间,找到在这个完成时间内所有到达的进程,并找到这些进程中服务时间最短的那个,然后计算它的完成时间(该进程的完成时间=上一进程的完成时间+该进程服务时间);

  3. 重复2直至完成所有进程的计算。

过程(A-B-D-C)


甘特图

平均周转时间:(1+100+99+200)/4=100
平均带权周转时间:(1+1+99+2)/4 =25.75

抢占式调度

抢占式调度(PreemptiveMode)允许调度程序根据某种原则,暂停某个占用处理机的进程,抢占已经分配出去的处理机。抢占的原则有优先权原则、短作业优先原则和时间片原则。

方法
  1. 找出最先到达的进程(该进程的完成时间=到达时间+服务时间)

  2. 根据上一进程的完成时间,找到在这个完成时间内所有到达的进程,并找到这些进程中服务时间最短的那个,在进程运行中,有新到达的进程时,会比较两者的服务时间(该进程剩余的服务时间与新进程的服务时间进行比较,若小则继续运行,若大则暂停进程,新进程运行。

  3. 重复2直至完成所有进程的计算。

过程

甘特图(A-B-D-C)

平均周转时间:(1+101+1+200)/4=75.75
平均带权周转时间:(1+1+99+2)/4 =1.25

结论

SJF特点是降低了系统平均周转时间。
但对长作业不利,长作业有可能长时间得不到调度。

进程调度算法-短作业优先调度算法(SJF)相关推荐

  1. 软件测试——进程调度(短作业优先调度算法+先来先服务算法)测试

    源代码 被测代码 Schedule package net.mooctest;import java.util.ArrayList; import java.util.List;public clas ...

  2. 先来先服务和短作业优先调度算法

    先来先服务调度算法:系统按照作业到达的先后次序来进行调度,或者说它优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长短,从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,为它 ...

  3. 操作系统短作业优先(SJF)调度算法

    一,算法代码 #include<stdio.h>struct sjf { //定义进程的结构体 char name[10];//进程名 float arrivetime;//到达时间 fl ...

  4. 设有 4道作业,它们的提交时间及执行时间如下,试计算在单道程序环境下,采用先来先服务调度算法和短作业优先调度算法时的平均周转时间和平均带权周转时间,并指出它们的调度顺序。

    处理机调度算法 题目: 设有 4道作业,它们的提交时间及执行时间如下: 试计算在单道程序环境下,采用先来先服务调度算法和短作业优先调度算法时的平均周转时间和平均带权周转时间,并指出它们的调度顺序. 先 ...

  5. C#进程调度的模拟实现:模拟先来先服务调度算法、短作业优先调度算法和优先级调度算法(考虑非抢占式和抢占式),进行算法评价,输出调度结果和算法评价指标。

    没什么水平,希望能帮到你 环境:visual studio 2019 附带工程资源:C#进程调度的模拟实现附带资源-C#文档类资源-CSDN下载 先来先服务的调度算法:是一种非抢占式的算法,先来先服务 ...

  6. 短作业优先算法c语言实现,OS短作业优先调度算法C语言

    OS短作业优先调度算法C语言 采用短作业优先调度算法调度程序 学 号: 姓 名: 专 业: 指导老师: 日 期: 目录 一.实验题目3 二.课程设计的目的3 三.设计内容3 四.设计要求3 五.主要数 ...

  7. 操作系统第一次实验-短作业优先调度算法

    一.实验目的: 目的:了解并掌握作业调度的功能,熟悉并掌握各种作业调度算法. 任务:模拟实现先来先服务或者短作业优先调度算法. 二.实验内容: 模拟实现SJF调度. 设置作业体:作业名,作业的到达时间 ...

  8. 作业调度算法--短作业优先 操作系统_处理器管理_编程题

    操作系统_处理器管理_编程题 作业调度算法–短作业优先 输入N个作业,输入每个的作业名字,到达的时间,服务的时间,根据短作业优先算法,计算出每个作业的完成的时间,周转的时间,带权周转的时间(其中保留2 ...

  9. 操作系统短作业优先(SJF)算法

    短作业优先(SJF)算法 SJF概念 以运行作业的时间长短来决定计算的优先级,作业运行时间越短,优先级越高. SJF算法展示(java) 首先我们先来创建一个Process类来模拟作业 package ...

最新文章

  1. javascript精要(2)-<script>标签加载时机与位置
  2. SpringBoot 中添加jsp支持遇到的问题
  3. js程序中美元符号$是什么
  4. Ribbon 客户端负载均衡
  5. 程序员如何用编程套路追到女朋友的?
  6. AWT_Swing_图标按钮(Java)
  7. 人脸对齐(十五)--PIFA with a Single CNN
  8. 中华文字改革第一人——仓颉
  9. c语言iec 103协议程序,IEC103通信流程详解.doc
  10. PDF文件打开密码解密
  11. python3下载m3u8转mp4_Python3爬虫通过m3u8文件下载ts视频 Python爬虫
  12. 开封 计算机职称培训,2017河南职称计算机考试报名:开封职称计算机报名入口...
  13. 文件误删除怎么恢复?实用恢复方法不能错过
  14. 随手写了一段C++访问LDAP, 并且获取sid的代码
  15. jquery json string conver to object
  16. 非对称加密RSA文本和Excel文件加密练习
  17. c# websocket 心跳重连_初探和实现websocket心跳重连(npm: websocket-heartbeat-js) - 子慕大诗人 - 博客园...
  18. 陳三甲网络笔记:赚钱越来越难了,请摆正赚钱姿势!
  19. 华为上机题-二师弟的星际加法
  20. 关于百度网盘提取码验证失败问题的猜想

热门文章

  1. MATLAB Signal Rrocessing(13)视频和音频
  2. EasyConfig配置中心,一种很轻量很好用的配置方式
  3. 在 PowerShell 中使用 SQL Server (1)
  4. 丁磊开始做微商 斥100亿招募网易考拉微店主
  5. Photoshop设计精讲精练读书笔记
  6. Twenty-ninth
  7. 第六章 正则,BeautifulSoup,xpath
  8. vgg16_reducedfc.pth
  9. Northwind and pubs Sample Databases for SQL Server 2000
  10. 专访阿里云王伟民:一站式全链路,阿里云向云原生数据库2.0跃迁