进程调度 - 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. 测试当前访问百度的IP地址(代理IP) – 哎呀!土豆

    测试当前访问百度的IP地址(代理IP) import requestsfrom lxml import etr […]...

  2. 太阳能光伏产业还能走多远 – 咨询的天空

    太阳能光伏产业还能走多远 千军万马“追太阳”          昔日做经编,10年销售额仅有2亿元;如今“追太 […]...

  3. 如何修改CEdit&CB中文本的字体大小及颜色 – LateStop

    如何修改CEdit&CB中文本的字体大小及颜色 首先说明运行环境:win7+ vs2003     一 […]...

  4. linux kernel的cmdline參数解析原理分析 – tlnshuju

    linux kernel的cmdline參数解析原理分析 2017-05-14 10:39  tlnshuju […]...

  5. SPI协议详解 – 者旨於陽

    SPI协议详解 SPI(Serial Peripheral Interface)总线是一种高速、串行、全双工通 […]...

  6. hadoop——高可用集群搭建的原理与方法 – 阿飞飞飞

    hadoop——高可用集群搭建的原理与方法 一、首先谈一谈zookeeper的选举机制 注:高可用集群中有两台 […]...

  7. 一、微信小游戏开发 — 初次在微信开发者工具里跑Egret小游戏项目

    尝试下Egret的小游戏开发,学习,学习,干IT,不学习,就得落后啊。。。   相关教程: Egret微信小游 […]...

  8. 清除ie首页被篡改的方法 – 名号M

    前两天ie的首页被该成了4j4j.cn,打开首页就会重定向到go2000.com并且修改ie的首页不起作用,这 […]...

随机推荐

  1. Python 图像处理 OpenCV (7):图像平滑(滤波)处理

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV […]...

  2. python 中open函数用读写方式的用法 – wang霏霏

    python 中open函数用读写方式的用法 关于open的操作: open(路径+文件名,读写模式) 一般读 […]...

  3. [ 转载 ] Okhttp的用法

    Android中OkHttp的使用     LuckyXiang 简书作者 02018-01-18 19:04 […]...

  4. 微软的操作系统中让 32 位支持大于 4GB 的内存。

    先给一个参考文献:The RAM reported by the System Properties dial […]...

  5. Intellij IDEA的安装教程 – zg_heng

    Intellij IDEA的安装教程 一、下载安装 1、打开官网:http://www.jetbrains.c […]...

  6. 高德地图API 之行政区+范围+平移+经纬度+鼠标样式

    获取当前地图的行政区 getCity() <!DOCTYPE html> <html lan […]...

  7. 怎样从一名程序员过度到项目经理(整理自csdn论坛) 选择自 whoopee 的 Blog

    1.从程序员到PM,是一条脱变的路,事实上程序员走的路最终不应该是项目经理。首先有一点需要明白的就是,一定规模 […]...

  8. JAVA开发构建Gradle项目安装使用教程

    一、简介:   Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工 […]...

展开目录

目录导航