进程调度代码分析

——关于LINUX源代码中进程调度部分的读书报告

在多进程的操作系统中,进程调度是一个全局性、关键性的问题,它对系统的总体设计、系统的的实现、功能设置以及各个方面的性能都有着决定性的影响。根据调度的结果所作的进程切换的速度,也是衡量一个操作系统性能的重要指标。进程调度机制的设计,还对系统的复杂性有着极大的影响,常常会由于实现的复杂程度而在功能与性能方面作出必要的权衡和让步。

一.进程调度的基本原理

一个好的系统的进程调度机制,应当考虑以下几个问题:

(1)公平:保证每个进程得到合理的CPU 时间。

(2)高效:使CPU 保持忙碌状态,即总是有进程在CPU 上运行。

(3)响应时间:使交互用户的响应时间尽可能短。

(4)周转时间:使批处理用户等待输出的时间尽可能短。

(5)吞吐量:使单位时间内处理的进程数量尽可能多。

显然,要同时满足这几个方面是不可能的,所以,形成一个操作系统就必须在这几个方面中做出权衡和必要的取舍,从而确定自己的调度算法。例如:UNIX采用动态优先数调度,5.3BSD采用舵机反馈队列调度,windows采用抢先多任务调度。

为了满足以上五个方面,设计一个进程调度机制时要考虑以下问题:

(1)调度的时机:在什么情况什么时候进行调度;

(2)调度的“政策”(policy):根据什么准则挑选下一个进入运行的进程;

(3)调度的方式:是抢占的,还是非抢占的。

对于一个进程,其状态转换关系图具体如下所示:

linux 内核round-robin scheduler代码,LINUX源代码阅读报告相关推荐

  1. 腾讯回应“QQ 冻结”;高德上线“家人地图”惹争议;Linux 内核讨论引入 Rust 代码 | 极客头条

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 一分钟 ...

  2. 腾讯回应“QQ 冻结”;高德上线“家人地图”惹争议;Linux 内核讨论引入 Rust 代码| 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...

  3. linux 内核 课程,Linux内核分析课程-全面剖析Linux内核技术 揭开Linux内核的面纱 Linux内核学习视频教 ......

    课程名称 Linux内核分析课程-全面剖析Linux内核技术 揭开Linux内核的面纱 Linux内核学习视频 课程目录 (1)\1, 计算机是如何工作的?:目录中文件数:0个 (2)\2, 操作系统 ...

  4. 移植linux内核-映像文件,移植Linux内核-映像文件

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://tigerwang202.blogbus.com/logs/43927976.html 首先从Blackfin uCli ...

  5. Linux内核编程(二)-----------Linux内核初探

    写在前面:本篇主要介绍Linux内核的开发模式.linux代码的组成.vmlinux  zImage  uImage的区别,以及编译下内核. 正文: 一.Linux内核的开发模式 1.git:是一个分 ...

  6. 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 )

    文章目录 一.下载 Linux 内核 1.下载最新版本 Linux 内核 2.下载指定版本 Linux 内核 二.Linux 内核版本号含义 一.下载 Linux 内核 1.下载最新版本 Linux ...

  7. linux内核分为四个子系统,linux操作系统的内核有哪几个子系统构成,简要说明各子系统的作用...

    Linux是一个一体化内核(monolithic kernel)系统."内核"指的是一个提供硬件抽象层.磁盘及文件系统控制.多任务等功能的系统软件.一个内核不是一套完整的操作系统. ...

  8. Linux 编译时查找错误字符,编译Linux内核时出现“fatal error: linux/netfilter/xt_dscp: No such file or directory”...

    编译Linux内核时出现"fatal error: linux/netfilter/xt_dscp: No such file or directory".下面开始查找原因. 第一 ...

  9. linux内核编译最详细,Linux内核编译详细教程,linux内核编译

    Linux内核编译详细教程,linux内核编译 尝试编译下Linux-kernel 4.14.14,使用Ubuntu 16.04 64位 系统. kernel-4.14.14 内核文件约96MB,解压 ...

  10. 升级 Ubuntu Linux 内核的几种不同方法 | Linux 中国

    转载自:升级 Ubuntu Linux 内核的几种不同方法 | Linux 中国 升级 Ubuntu Linux 内核的几种不同方法 | Linux 中国 译者/Ping Yang  Linux  2 ...

最新文章

  1. Facebook首席工程负责人胡鲁辉:数字化2.0的理念、架构与业务模型丨鲸犀峰会
  2. 【原创】大数据基础之Ambari(1)简介、编译安装、使用
  3. linux通过ftp自动上传文件到服务器,Linux系统通过FTP上传文件到云服务器
  4. redis Hash槽
  5. xampp php连接mysql数据库_关于PHP xampp连接数据库之后查询失败,数据库连接成功,表中也有数据...
  6. fiddler工具条、状态栏、请求信息栏各按钮的作用
  7. linux :Tar 命令参数详解
  8. tensorflow精进之路(二十三)——Object Detection API目标检测(上)(Fast R-CNN算法)
  9. paip.c++ 内存泄漏以及解决之道.
  10. 推荐几个前端模板下载站
  11. 支付宝小程序实现自定义头部导航栏
  12. 稳压二极管的原理和伏安特性
  13. app开发(Uniapp开发)之Sass学习
  14. 备份路由器配置文件到服务器,教你如何备份路由器配置文件
  15. (H5)canvas实现裁剪图片和马赛克功能,以及又拍云上传图片
  16. 3.1 机器学习模型
  17. Android Q 适配详细操作
  18. python中cpca库用法详解(从文本中提取省市区)
  19. 数据结构实验PTA 7-10 旅游规划 分数 25
  20. EDIUS中的视频怎么才能添加字幕?

热门文章

  1. python使用matplotlib可视化、使用matplotlib可视化scipy.misc图像、自定义使用RdYIBu色彩映射、将不同亮度映射到不同的色彩
  2. Coefficients: (1 not defined because of singularities)
  3. Pandas判断dataframe是否为空
  4. Python可视化matplotlib绘制三维可视化图形(Three-Dimensional)
  5. PCA图像数据降维及重构误差分析实战并使用TSNE进行异常数据可视化分析
  6. php js混淆加密工具,求混淆js加密算法解密
  7. 致命错误: zlib.h:没有那个文件或目录
  8. C语言字母和数字数量,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
  9. tf.keras.losses.Poisson 损失函数 示例
  10. tensorflow 教程 梯度下降法实现线性回归问题