linux进程调度
2011-07-22 17:28
260 查看
调度---从就绪的进程选出最适合的一个来执行。
知识点-----
1---调度策略
2---调度时机
3---调度步骤
调度策略--------
SCHED_NORMAL(SCHED_OTHER):普通的分时进程
SCHED_FIFO---先入先出的实时进程
SCHED_RR---时间片轮转的实时进程
SCHED_BATCH----批处理进程
SCHED_IDLE----只有在系统空闲时才能够被调度执行的进程。
一个进程会选择以上的一种来调度,而不是说整个系统都是采用的某种调度。
调度类------它的引入增强了内核调度程序的可扩展性,这些类(调度程序模块)封装了调度策略,并将调度策略模块化。
CFS调度类---在kernel/sched_fair.c中实现用于以下调度策略---
SCHED_NORMAL SCHED_BATCH SCHED_IDLE
实时调度类---在kernel/sched_rt.c中实现用于SCHED_RR SCHED_FIFO策略。
调度类
struct sched_class
{
...........................
struct task_struct *(*pick_next_task) (struct rq *rq)
...............................
}
pick_next_task------选择下一个要运行的进程。
调度时机----调度什么时候发生?即schedule()函数什么时候被调用。
调度发生的方式----
1--主动式
在内核中直接调用schedule()。当进程需要等待资源而暂时停止运行时,会把状态置于挂起(睡眠),并主动请求调度,让出cpu。
主动放弃cpu例子:
1---current->state=TASK_INTERRUPTIBLE
2---schedule()
2被动式(抢占)
用户抢占----2.4----2.6
内核抢占---2.6
用户抢占发生在-------
从系统调用返回用户空间。
从中断处理程序返回用户空间。
内核即将返回用户空间的时候,如果need_resched标志被设置,会导致schedule()被调用,此时就会发生用户抢占。
知识点-----
1---调度策略
2---调度时机
3---调度步骤
调度策略--------
SCHED_NORMAL(SCHED_OTHER):普通的分时进程
SCHED_FIFO---先入先出的实时进程
SCHED_RR---时间片轮转的实时进程
SCHED_BATCH----批处理进程
SCHED_IDLE----只有在系统空闲时才能够被调度执行的进程。
一个进程会选择以上的一种来调度,而不是说整个系统都是采用的某种调度。
调度类------它的引入增强了内核调度程序的可扩展性,这些类(调度程序模块)封装了调度策略,并将调度策略模块化。
CFS调度类---在kernel/sched_fair.c中实现用于以下调度策略---
SCHED_NORMAL SCHED_BATCH SCHED_IDLE
实时调度类---在kernel/sched_rt.c中实现用于SCHED_RR SCHED_FIFO策略。
调度类
struct sched_class
{
...........................
struct task_struct *(*pick_next_task) (struct rq *rq)
...............................
}
pick_next_task------选择下一个要运行的进程。
调度时机----调度什么时候发生?即schedule()函数什么时候被调用。
调度发生的方式----
1--主动式
在内核中直接调用schedule()。当进程需要等待资源而暂时停止运行时,会把状态置于挂起(睡眠),并主动请求调度,让出cpu。
主动放弃cpu例子:
1---current->state=TASK_INTERRUPTIBLE
2---schedule()
2被动式(抢占)
用户抢占----2.4----2.6
内核抢占---2.6
用户抢占发生在-------
从系统调用返回用户空间。
从中断处理程序返回用户空间。
内核即将返回用户空间的时候,如果need_resched标志被设置,会导致schedule()被调用,此时就会发生用户抢占。
相关文章推荐
- [Linux内核设计与实现]Linux进程调度
- linux进程调度
- Linux进程调度(3):进程切换分析
- Linux进程调度和切换过程分析
- Linux进程调度
- Linux进程调度(1):CFS调度器的设计框架
- linux进程调度策略(SCHED_OTHER,SCHED_FIFO,SCHED_RR)
- linux进程调度
- Linux进程调度(1):CFS调度器的设计框架
- linux进程调度
- 内核驱动之Linux进程调度
- 浅谈linux进程调度
- linux进程调度 - 进程调度初始化与运行队列
- linux进程调度浅析
- linux进程调度 - cpu进程负载均衡
- linux进程调度
- linux进程调度(zz)
- RH442-6 Linux进程调度
- linux进程调度和切换过程
- Linux进程调度CFS算法实现分析