读深入理解Linux内核 (第7章 进程调度)
2016-09-30 21:06
507 查看
调度策略
Linux里面,进程优先级是动态的。固然一开始有一个初始优先级,如果该进程长时间没有得到时间片,那么它的优先级会不断提高。类似,运行很长时间的进程,优先级会减低。调度算法
schedule()函数实现调度。它在运行队列中找到一个进程,然后切换到其上运行。schedule()主要在以下情况下被调用:1. 直接调用
进程为了等待某个资源,或休眠而直接调用schedule()函数
2. 间接调用(LazyInvocation)
每次进程从内核态切换回用户态(从例外Exception返回),会检查进程是否有被设置TIF_NEED_RESCHED标志,如果有设置,则调用schedule()函数换出。
那么,进程何时被设置TIF_NEED_RESCHED,比如
2.1 定时器中断会检查当前进程已使用的时间,如果用光了,则设置该标志,以便返回用户态时被换出。
2.2 当一个进程被换醒,而且它的优先级比当前进程的优先级高,那么当前进程会被设置该标志。
2.3 通过系统调用
相关文章推荐
- Linux内核进程调度schedule深入理解
- 深入理解Linux内核-进程调度
- 读书笔记--深入理解Linux内核-第七章 进程调度
- Linux内核进程调度schedule深入理解
- 深入理解Linux内核 chap 7 进程调度
- 深入理解Linux内核-第七章 进程调度
- 深入理解Linux内核-第七章 进程调度 http://blog.csdn.net/sailor_8318/article/details/2460177
- 读深入理解Linux内核 (第三章 进程)
- 深入理解linux内核之(二)进程
- 深入理解Linux内核(3)---进程
- 深入理解linux内核---进程(下)
- 读深入理解Linux内核 (第9章 进程地址空间, 第一部分 ---- 概念)
- 深入理解Linux内核-进程
- 深入理解Linux内核个人小结3--进程
- 深入理解Linux内核-进程地址空间
- 读深入理解Linux内核 (第9章 进程地址空间, 第二部分 ---- 内存区域)
- 深入理解LINUX 内核 之 进程学习
- 深入理解linux内核---进程(上)
- 深入理解Linux内核个人小结9---进程地址空间
- 深入理解Linux内核---进程