进程调度:在操作系统中调度是指一种资源分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法。操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源的有限性,必须按照一定的原则选择进程(请求)来占用资源。这就是调度。目的是控制资源使用者的数量,选取资源使用者许可占用资源或占用资源。

1 先来先服务(队列)

先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。
缺点:比较有利于长作业,而不利于短作业。 有利于CPU繁忙的作业,而不利于I/O繁忙的作业。

2 最短优先(优先队列)

最短优先调度算法是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程优先(SPF)调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。

缺点:长作业的运行得不到保证。

3 轮转法(RoundRobin)

将系统中所有的就绪进程按照FCFS原则,排成一个队列。每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms。在一个时间片结束时,发生时钟中断。调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前的队首进程。 进程可以未使用完一个时间片,就出让CPU(如阻塞)。

4 多级反馈队列算法

设置多个就绪队列,分别赋予不同的优先级,如逐级降低,队列1的优先级最高。每个队列执行时间片的长度也不同,规定优先级越低则时间片越长,如逐级加倍。2 新进程进入内存后,先投入队列1的末尾,按FCFS算法调度;若按队列1一个时间片未能执行完,则降低投入到队列2的末尾,同样按FCFS算法调度;如此下去,降低到最后的队列,则按"时间片轮转"算法调度直到完成。仅当较高优先级的队列为空,才调度较低优先级的队列中的进程执行。如果进程执行时有新进程进入较高优先级的队列,则抢先执行新进程,并把被抢先的进程投入原队列的末尾。


进程调度的性能评价:

进程调度虽然是在系统内部的低级调度,但进程调度的优劣直接影响作业调度的性能。那么,怎样评价进程调度的优劣呢?反映作业调度优劣的周转时间和平均周转时间只在某种程度上反映了进程调度的性能,例如,其执行时间部分中实际上包含有进程等待(包括就绪状态时的等待)时间,而进程等待时间的多少是要依靠进程调度策略和等待事件何时发生等来决定的。因此,进程调度性能的商量是操作系统设计的一个重要指标。我们说进程调度性能的衡量方法可分为定形和定量两种。在定形衡量方面,首先是调度的可靠住。包括一次进程调度是否可能引起数据结构的破坏等。这要求我们对调度时机的选择和保存CPU现场十分谨慎。另外,简洁性也是衡量进程调度的一个重要指标,由于调度程序的执行涉及到多个进程和必须进行上下文切换,如果调度程序过于繁琐和复杂,将会耗去较大的系统开销。这在用户进程调用系统调用较多的情况下,将会造成响应时间大幅度增加。进程调度的定量评价包括CPU的利用率评价、进程在就绪队列中的等待时间与执行时间之比等。实际上由于进程进入就绪队列的随机模型很难确定,而且进程上下文切换等也将影响进程的执行效率,LL而对进程调度进行解析是很困难的。一般情况下,大多利用模拟或测试系统响应时间的方法来评价进程调度的性能。

linux--几种常见的进程调度算法相关推荐

  1. 操作系统中常见的进程调度算法

    一.调度与调度算法 调度:操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源的有限性,必须按照一定的原则选择进程(请求)来占用资源.这就是调度.目的是控制资源 ...

  2. linux几种常见的Shell:sh、bash、csh、tcsh、ash

    Linux 是一个开源的操作系统,由分布在世界各地的多个组织机构或个人共同开发完成,每个组织结构或个人负责一部分功能,最后组合在一起,就构成了今天的 Linux.例如: Linux 内核最初由芬兰黑客 ...

  3. linux几种常见的文件内容查找和替换命令

    1.vi命令下的查找和替换 1.1 vi下的查找 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配 ...

  4. 进程调度算法-时间片轮转、最高优先级和多级反馈队列调度算法

    文章目录 前言 一.时间片轮转 二.最高优先级 三.多级反馈队列 总结 前言 从上一篇文章中已经介绍了几种常见的单核CPU进程调度算法,本篇文章顺着上一篇文章的节奏,继续讲解几种剩余常见的进程调度算法 ...

  5. 基于C++实现的进程调度算法

    资源下载地址:https://download.csdn.net/download/sheziqiong/85650672 一.问题描述与分析 1.1 设计构想 程序能够完成以下操作:选择调度算法;查 ...

  6. 操作系统的进程调度算法

    一.进程调度算法 本专栏前面文章操作系统之进程状态及其切换方式介绍了进程的五种状态,进程调度算法主要解决进程从就绪状态进入运行状态的调度策略,本文主要介绍六大进程调度策略. 二.先来先服务算法(FCF ...

  7. Linux系统进程类型有哪些?进程状态有哪几种?常见的进程有哪些?

    一.linux系统进程类型有 :交互进程 :批处理进程 :监控进程(守护进程): 交互进程:由一个shell启动的进程.交互进程既可以在前台运行,也可以在后台运行. 批处理进程:这种进程和终端没有联系 ...

  8. linux进程--进程调度算法(十三)

    1.先来先服务(FCFS)调度算法(非抢占) 先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度.当在作业调度中采用该算法时,每次调度都是从后备作业队列中选 ...

  9. linux下进程调度算法实验,Linux下进程调度算法的模拟实现.doc

    Linux下进程调度算法的模拟实现 枣 庄 学 院 信息科学与工程学院课程设计任务书 题目: Linux下进程调度算法的模拟实现 学 生1: 学 生2: 学 生3: 专 业: 计算机应用技术 课 程: ...

最新文章

  1. 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解
  2. TF之TFOD-API:基于tensorflow框架利用TFOD-API脚本文件将YoloV3训练好的.ckpt模型文件转换为推理时采用的.pb文件
  3. 3.API的调用过程(保存现场)
  4. 转 最小凸包算法(Convex Hull)(1)-Graham扫描法 -计算几何-算法导论
  5. Qt3D学习之键盘交互
  6. Spring框架配置文件 application.xml 示例
  7. autowired 静态方法使用_静态方法中调用Spring注入过程解析
  8. mybatis进阶(动态sql、关系映射、延迟加载、缓存)
  9. matlab做高斯滤波,matlab高斯滤波自定义函数怎么做
  10. 基于LabWindows/CVI学生管理系统的实现
  11. MFC与DX11结合
  12. 【绝对详细!不好使你顺着网线敲我!】Django3.1在Ubuntu16.04上的部署
  13. 永善县黄华镇大永高速通车了
  14. MATLAB | 那些你不得不知道的MATLAB小技巧(四)
  15. ftp服务器可以创建文件夹吗,ftp服务器如何创建文件夹
  16. python根据时间序列画折线图_Python cufflinks 绘制折线图,时间序列,子图:简单,很快,很酷,还会动,从此 seaborn 是路人...
  17. 抖音是怎么动摇美国国本的?
  18. python查找公共前缀_Python练习【3】【罗马数字转换/查找公共前缀】
  19. C#学习第六天 基础语法练习游戏--飞行棋
  20. PS中可选颜色的计算方法(绝对量)

热门文章

  1. vs.net2003无法打开.NET的Web应用服务
  2. 51Nod.1766.树上最远点对(树的直径 RMQ 线段树/ST表)
  3. idea 创建多模块依赖Maven项目
  4. Web Magic 总体架构
  5. 转]从一个男人关注的事情上 可以看出他的修养和抱负
  6. asp.net mvc使用的心得和问题的解决方法(陆续更新ing)
  7. c++ 分页展示_分合相宜 Excel透视报表生成分页和汇总报表
  8. vi编辑器服务器维护,vi编辑器有哪几种工作模式及如何转换_网站服务器运行维护,vi编辑器,工作模式...
  9. 力扣35. 搜索插入位置
  10. Win32 路径操作API