【UNIX】内核对进程的调度机制
来源:互联网 发布:敏感端口 编辑:程序博客网 时间:2024/06/13 02:55
(调度器)
对于一般进程,CPU的使用时间都是系统平均分配给每一个进程的,因此这种公平分享都从进程的角度出发的。
1) 调度时机:什么情况下,什么时候进行调度
2) 调度的策略:根据什么准则选取下一个进程
3) 调度方式:是“可剥夺”还是“不可剥夺”,当正在运行的进程并不自愿放弃对从CPU 的使用权时,是否强制性的暂时剥夺其使用权,停止其运行而给其他进程一个机会,若 果是可剥夺,是否在任何情况下都可剥夺?
调度时机:
首先,自愿的调度(主动调度)随时都可以进行,在内核里,一个进程可以通过schedule启动一次调度,也就是由当前进程自愿调用schedule暂时放弃运行的情景
除此之外,调度可以是非自愿的,及强制的发生在每次系统调用的前夕,以及每次从中断或者异常处理返回到用户空间的前夕(进程状态切换才会引起的调度)
CPU在内核空间运行时无需考虑前置调度的可能性,但是在内核空间发生中断和异常当然是可能的,但这种中断或者异常不会引起调度。
不管一个CPU是否在内核中发生调度还是多处理器,为所有多进程访问的变量和数据结构,保护起来这是必须的。(使用自旋锁和信号量的机制保护)
“从系统空间返回到用户空间”只是发生调度的必要条件,而非充分条件。也就是说这个条件发生了,也不一定调度,具体是否发生调度还有判断当前进程的task_struct结构体制中need_resched是否为非零,非零才会调用schedule()函数,发生调度
Need_resched成员是内核设置的,因为用户进程访问不到进程的task_strcut。所以除了当前进程通过系统调用自愿让出运行以及在系统调用因某种原因受阻以外,主要是当前唤醒一个进程,以及时钟中断发生,内核会对need_resched成员进行设置(非零),从而发生调度
调度方式
调度发生在回到用户空间的前夕
调度策略
- 【UNIX】内核对进程的调度机制
- linux内核进程调度机制
- 内核源码分析之进程调度机制
- 【UNIX】内核对内核空间内存的管理以及对用户进程的堆内存分布
- linux内核的调度机制
- linux内核的调度机制
- unix 进程调度命令
- (原创)linux内核进程调度以及定时器实现机制
- linux内核进程调度以及定时器实现机制(转载)
- 【转】Linux内核进程调度以及定时器实现机制
- (转载)linux内核进程调度以及定时器实现机制
- Linux内核进程调度以及定时器实现机制(转)
- Linux内核进程调度以及定时器实现机制
- Linux内核进程调度以及定时器实现机制
- NT 内核的进程调度分析笔记
- Linux内核2.6的进程调度
- Linux内核2.6的进程调度
- 内核的进程管理与调度
- ECshop2.7.3彻底去版权(Powered by ECShop)
- 指针与取地址符&
- [leetcode] 126 Word Ladder ii bfs dfs
- 32位汇编语言学习笔记(35)--显示ASCII表
- ios 手机验证码随机出现六位数的方法(二)
- 【UNIX】内核对进程的调度机制
- struts2 jsp 中 用<s:url>赋值多个参数 用<a>时传第二个参数就多出了amp; 而用<s:a >则不会 求解! 求解! 求解!
- 新浪微博数据挖掘食谱之十四: 用户篇 (分析用户的粉丝和朋友)
- 将心比心,你的人生道路才会更宽广
- 【UNIX】内核对内核空间内存的管理以及对用户进程的堆内存分布
- NSDate比较
- IOS 开发学习一 基础知识
- POJ 3295-Tautology(构造法+栈)
- Sublime Text 3 快捷键汇总