《Linux内核的设计与实现》读书笔记(四)---进程调度
2016-11-25 21:57
330 查看
进程调度
Linux进程调度原理
多任务
多任务操作系统指能同时并发地交互执行多个进程的操作系统。主要分为两类:非抢占式多任务
抢占式多任务
Linux提供了抢占式的多任务模式,有调度程序决定进程的运行和停止。
调度程序
调度程序主要的工作:决定进程的运行和停止
决定进程的运行时间
Linux内核在2.6.23后采用“完全公平调度算法”简称CFS。
Linux调度策略及算法
策略
策略就是决定调度程序在何时让什么进程运行。而进程可以被划分为I/O消耗型和处理器消耗型。I/O消耗型进程:经常处于可运行状态,因为运行时间短、响应时间快。
处理器消耗型进程:尽量降低调度频率,延长运行时间。
进程优先级
Linux采用两种不同的优先级范围,一种是nice值,一种是实时优先级。nice值:范围-20~+19,值越大优先级越低。
实时优先级:范围0~99,值越大优先级越高。
-任何实时进程的优先级都高于普通进程,所以抢占一般进程。
ps:一个进程不会同时拥有两种优先级。
时间片与CPU使用比
时间片是一个数值,表明进程在被抢占前所能持续运行的时间。时间片调度策略实现原理
1.确定每个进程占用多少时间 2.选择占用CPU时间最多的进程执行 3.时间片用完后,再次统计每个进程的占用时间,以此类推
CPU使用比是指分配给每个进程的CUP时间,时间的分配不是绝对的。
Linux的CFS调度算法才用的就是处理器使用比,而不是时间片。
CFS算法的调度策略
1.计算每个进程的vruntime,通过update_curr()函数更新进程的vruntime。 2.选择具有最小vruntime的进程投入运行。 3.进程运行完后,更新进程的vruntime,转入步骤2
实时调度策略
Linux提供两种实时调度策略:SCHED_FIFO和SCHED_RR。Linux提供的非实时调度策略:SCHED_NORMAL。
Linux调度的实现
进程调度与系统调用
相关文章推荐
- Linux内核设计与实现 读书笔记(4)进程的调度
- 《Linux内核的设计与实现》读书笔记(三)---进程管理
- Linux内核设计与实现——读书笔记2:进程管理
- Linux内核设计与实现(5)---进程调度
- linux内核设计与实现笔记 进程调度
- linux内核设计与实现笔记之第四章进程调度
- 【Linux内核设计与实现】进程调度
- Linux内核设计与实现之进程调度
- linux内核设计与实现(进程管理、进程调度读书笔记)
- Linux内核设计与实现 读书笔记(1)内核简介
- Linux设计与实现学习笔记之进程调度
- 读书笔记-Linux内核设计与实现-part 4
- 操作系统实验(1)-- 进程调度的设计与实现
- LINUX内核设计与实现之进程地址空间
- 多级循环队列-进程调度的设计与实现
- Linux内核设计与实现 学习笔记(5)进程地址空间
- Linux内核进程调度以及定时器实现机制
- Linux内核设计与实现 读书笔记
- linux内核设计与实现【第三版】摘记----第三章:进程管理
- 每日阅读5之linux内核设计与实现——linux内核调度之睡眠与唤醒