进程调度 - Sna1lGo

Sna1lGo 2021-08-21 原文


进程调度


概念:在合适的时候以一定策略选择一个就绪进程运行

 

原则:

  1.响应速度尽可能快

  2,进程处理时间尽可能短

  3,系统吞吐量尽可能大

  4.资源利用率尽可能高

  5.对所有进程要公平

  6.避免饥饿

  7.避免死锁

  //以上原则之间存在矛盾

 

进程调度目标:

  1.周转时间/平均周转周期:

    周转时间:进程提交给计算机到最后完成所花费的时间:

    t = tc-ts  //意义说明进程在系统中停留时间的长短

    平均周转时间:

    t = (t1+t2+t3+….tn)/n   

    意义:平均周转时间越短,意味着这些进程在系统内停留的时间越短,因此系统吞吐量就越大,资源利用率也就越高,

  2.带权周转时间/平均带权周转时间:

     

 

 

典型调度算法:

  1.先来先到服务:

    算法:按照作业进入系统的时间先来后到挑选作业,先进入系统的作业优先被运行

    特点:1.容易实现但是效率不高

       2.只考虑作业的等候时间,而没考虑运行时间的长短。因此一个晚来但是作业短的作业可能需要等待很长时间才能运行,不利于短作业。

  2.短作业优先调度算法:

    算法:参考运行时间,选取运行时间最短的作业投入运行。

    特点:易于实现,效率不高

       忽视了作业等待时间,容易出现资源饥饿现象。

  3.响应比高者优先调度算法:

    响应比定义:

      作业的相应时间和与运行时间的比值。

    响应比 = 响应时间/运行时间

        = (等待时间+运行时间)/运行时间

        = 1 + 等待时间/.运行时间

    算法:计算每个作业的响应比,选择响应比最高的作业优先投入运行

    如果作业等待时间相同,则运行时间短的先,

    如果运行时间相同,等待时间长的先

    如果运行世界长的可以随着等待时间增加而增加

  4.优先数调度算法

    算法: 

      根据进程优先数,把CPU分配给最高的进程

      进程优先数 = 静态优先数 + 动态优先数

    静态优先数:

      进程创建时确定,在整个进程运行期间不再改变

    动态优先数:

      动态优先数在进程运行期间可以改变

    静态优先数的确定:

      基于进程所需的资源多少

      基于进程运行时间的长短

      基于进程的类型(IO/CPU,前台/后台,核心/用户)

    动态优先数:

      当使用CPU超过一定时长时

      在进行I/O操作后

      当进程等待超过一定时长时

  5.循环轮转调度算法(Round-Robin)

    概念:把所有就绪进程按先进先出的原则排成队列。新来进程加到队列末尾。进程以时间片q为单位轮流使用CPU,刚刚运行一个时间片的进程排到队列末尾,等待下一轮运行。

    优点:

      公平性:每个就绪进程都有平等机会获得CPU

      交互性:每个进程等待(N-1)*q的时间就可以重新获得CPU

    时间片q的大小:

      q太大:交互性差

          甚至于退化成FCFS调度算法

      q太小:进程切换频繁,系统开销增加。

    改进:

      时间片的大小可变。

      组织多个就绪队列,

  6.可变时间片轮转调度法

  7.多重时间片循环调度法

 

posted on
2020-04-15 22:21 
Sna1lGo 
阅读(191
评论(0
编辑 
收藏 
举报

 

版权声明:本文为Sna1lGo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Sna1lGo/p/12708976.html

进程调度 - Sna1lGo的更多相关文章

  1. 警告:Nvidia 官方二进制驱动严重问题 – 岚之山

    警告:Nvidia 官方二进制驱动严重问题 昨日 Nvidia 官方闭源驱动爆出重大缺陷,可能导致显卡风扇停转 […]...

  2. 多种方法修改网卡MAC物理地址 – starspace

    多种方法修改网卡MAC物理地址 作者:李红     如今大家都是ADSL上网,当你查网费时就会发现,每次上网电 […]...

  3. Evermoney — 重新定义印象笔记编辑体验

    关于印象笔记 知识管理工具自己也算用过很多了,国内的有道,为知;国外的onenote。因为印象笔记的裁剪以及搜 […]...

  4. 操作系统:进程调度算法详解之FCFS和SPF篇 – 王峰炬

    操作系统:进程调度算法详解之FCFS和SPF篇 前言:   在学习操作系统的时候,总是可以听到一些与“调度”相 […]...

  5. MyBatis系列(八):MyBatis动态Sql之foreach标签的用法 – 申城异乡人

    MyBatis系列(八):MyBatis动态Sql之foreach标签的用法 2019-07-10 14:19 […]...

  6. Java集合框架图 – 分布式编程

    Java集合框架图 在使用java各种集合中,会对庞大的集合类有些应接不暇,没有统一的类图来更加直观的显示各个 […]...

  7. 【47】迁移学习(Transfer Learning) – 刘通1997

    【47】迁移学习(Transfer Learning) 迁移学习(Transfer Learning) 如果你 […]...

  8. css布局 – 两栏自适应布局的几种实现方法汇总

    两列布局的样式是我们在平时工作中非常常见的布局,同时也是面试中的高频题。掌握几种关键解法显得很有必要。 这种两 […]...

随机推荐

  1. 二分图匹配,匈牙利算法原理与实现

    文章首先于微信公众号:几何思维,关注第一时间获取更新信息 以下场景太过真实,但都是虚构,为了讲清楚理论的过程。 […]...

  2. 查看修改mysql编码方式 – jinglikeblue

    查看修改mysql编码方式 MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修 […]...

  3. 云上RDS架构

    概述 越来越多的企业选择上云,最基础的云服务就是IaaS(Infrastructure as a Servic […]...

  4. Pytest自动化测试-简易入门教程(01)

    我们今天主讲的内容,就是测试框架Pytest,讲到这个测试框架对于没有做过Web自动化的伙伴来说,会觉得这个东 […]...

  5. 牛客网之网易面试题

    输入描述: 每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,分别表示工作的数量N(N<=1 […]...

  6. Linux下9种优秀的代码比对工具推荐

    大家好,我是良许。 在我们编写代码的时候,我们经常需要知道两个文件之间,或者同一个文件不同版本之间有什么差异性 […]...

  7. Windows10访问共享文件夹:此用户无法登录,因为该账户当前已被禁用此用户无法登录,因为该账户当前已被禁用或者直接找不到相应的计算机解决办法

    当我访问同事电脑共享文件夹时,弹出如下提示框:(可以在命令提示符上ping通,就是死活不能访问)       […]...

  8. xenomai内核解析之双核系统调用(一)

    版权声明:本文为本文为博主原创文章,转载请注明出处。如有错误,欢迎指正。博客地址:https://www.cn […]...

展开目录

目录导航