概述

这个问题又是面试常问问题,当时听到感觉太宽泛了,有点大,心里知道但是说不全,这里做一下总结

【1】进程调度的作用

【2】调度德策略

1、 进程调度的作用

,进程调度就是对进程进行调度,即负责选择下一个要运行的进程.通过合理的调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的效果.最终要完成的目标就是为了最大限度的利用处理器时间.即,只要有可以执行的进程,那么就总会有进程正在执行.当进程数大于处理器个数时,某一时刻总会有一些进程进程不能执行.这些进程等待运行.在这些等待运行的进程中选择一个合适的来执行,是调度程序所需完成的基本工作.

2、调度策略

先给一张直观图

【1】考虑到进程类型时:I/O消耗型进程 pk 处理器消耗型进程.

I/O消耗型进程:指进程大部分时间用来提交I/O请求或者是等待I/O请求.处理器消耗型进程:与I/O消耗型相反,此类进程把时间大多用在执行代码上.此时调度策略通常要在两个矛盾的目标中寻找平衡:进程响应时间短(优先I/O消耗型进程)和最大系统利用率(优先处理器消耗型进程).linux为了保证交互式应用,所以对进程的响应做了优化,即更倾向于优先调度I/O消耗型进程.

【2】考虑到进程优先级时

调度算法中最基本的一类就是基于优先级的调度.调度程序总是选择时间片未用尽而且优先级最高的进程运行.

linux实现了一种基于动态优先级的调度方法.即:一开始,先设置基本的优先级,然后它允许调度程序根据需要加,减优先级.

eg:如果一个进程在I/O等待上消耗的时间多于运行时间,则明显属于I/O消耗型进程,那么根据1中的考虑,应该动态提高其优先级.

linux提供了两组独立的优先级范围:

1)nice值:范围从-20到+19.默认值是0,值越小,优先级越高.nice值也用来决定分配给进程的时间片的长短.

2)实时优先级:范围为0到99.注意,任何实时进程的优先级都高于普通的进程.

【3】考虑到进程时间片时

时间片是一个数值,它表明进程在被抢占前所能持续运行的时间.调度策略必须规定一个默认的时间片.时间片过长,则会影响系统的交互性.时间片过短,则会明显增大因进程频繁切换所耗费的时间.调度程度提供较长的默认时间片给交互式程序.此外,linux调度程序还能根据进程的优先级动态调整分配给它的时间片,从而保证了优先级高的进程,执行的频率高,执行时间长.当一个进程的时间片耗尽时,则认为进程到期了,此时不能在运行.除非所有进程都耗尽了他们的时间片,此时系统会给所有进程重新

最新文章

  1. java util包概述
  2. 更新mac自带的python
  3. Handler 接收Parcelable ArrayList时返回空的错误
  4. 深度优化LNMP之Nginx [2]
  5. 在使用Kettle的集群排序中 Carte的设定——(基于Windows)
  6. jdk\willy\集群安装
  7. Swift - 判端网络连接状态,连接类型(3G还是Wifi)
  8. ZipHelper 压缩和解压帮助类
  9. Navicat11全系列激活(注册机)
  10. asp.net修行入门讨论
  11. 阿里云linux centos 一键部署web环境--图文详解
  12. 关于Python在Linux、Mac和Windows上的安装方法总结
  13. 05-Git
  14. jsp文件放在webcontent子目录下提交表单给servlet报404错误解决办法
  15. linux 扩展文件系统
  16. 什么是LDAP?
  17. Java高级特性 第9节 Socket机制
  18. MGR实现分析 - 成员管理与故障恢复实现
  19. oracle select in超过1000条报错解决方法
  20. vue路由跳转报错解决

热门文章

  1. sololearn的c++学习记录_4m11d
  2. 设计模式一日一练:中介者模式(Mediator)
  3. webpack 命令行 传入自定义变量
  4. 让你的代码量减少3倍!使用kotlin开发Android(三) 缩短五倍的Java Bean
  5. 用Python递归解决阿拉伯数字转为中文财务数字格式的问题(2)--打开思路的一种方法
  6. Android简易实战教程--第三十话《撕衣美女》
  7. Android应用打破65K方法数限制
  8. Android开发学习之路--RxAndroid之lambda
  9. 4.QT中进程操作,线程操作
  10. Android Device Administration 设备管理器——实现一键锁屏