linux 进程调度ppt,第章 Linux进程调度.ppt

第章 Linux进程调度

* * SCHED_FIFO 与 SCHED_RR 的区别是: 当进程的调度策略为前者时,当前实时进程将一直占用 CPU 直至自动退出,除非有更紧迫的、 优先级更高的实时进程需要运行时,它才会被抢占 CPU;当进程的调度策略 为后者时,它与其它实时进程以实时轮流算法去共同使用 CPU,用完时间片放到运行队列尾部。 FIFI:运行时间较短 RR:运行时间较长 Sched——YIELD:不是调度策略,表示进程让出CPU * Linux是一个抢占式的多任务操作系统,由Linux调度程序决定何时抢占,然后选择哪个进程。 * FIFI:运行时间较短 RR:运行时间较长 * * 在某个时刻,运行队列中的每一个进程都有一个counter数值,当运行队列中的进程的counter都变成0后,表明一轮已经结束,每一个进程的counter 根据各自的nice 重新赋值,然后开始新的一轮的执行过程。占有cpu的进程每一次时钟中断时,counter的数值减1。(Linux2.4) * 调度策略为非SCHED_FIFO的每个进程都有一个运行的时间配额counter 有cpu的进程每一次时钟中断时,counter的数值减1。(Linux2.4) 在某个时刻,运行队列中的每一个进程都有一个counter数值,当运行队列中的进程的counter都变成0后,表明一轮已经结束,每一个进程的counter 根据各自的nice 重新赋值,然后开始新的一轮的执行过程。占有cpu的进程每一次时钟中断时,counter的数值减1。(Linux2.4) * 调度策略为非SCHED_FIFO的每个进程都有一个运行的时间配额counter 有cpu的进程每一次时钟中断时,counter的数值减1。(Linux2.4) 在某个时刻,运行队列中的每一个进程都有一个counter数值,当运行队列中的进程的counter都变成0后,表明一轮已经结束,每一个进程的counter 根据各自的nice 重新赋值,然后开始新的一轮的执行过程。占有cpu的进程每一次时钟中断时,counter的数值减1。(Linux2.4) * 进程首次运行时为进程优先级的数值,它随时间变化递减.它的值的含义表示进程处于运行状态时所剩余的时钟滴答数,每次时钟中断到来时,这个值就减1。当它为0时,就把need_resched域置1。 priority:进程的“静态优先级”,它的值就是counter的初值。在Linux2.4版本中取消了这个变量,但是它所代表的默认值20还作为常数继续使用。即进程的静态优先数是20。只有sys_nice( )、sys_setpriority( )系统调用能改变进程静态优先级; * * * * 其中进程的切换是利用switch_to()宏来实现的,它是一个硬件平台相关的代码段,过程很复杂 对于实时进程,其权重为1000+rt_priority;否则,权重为counter。 对于当前进程,可以得到比其它进程稍高的权重,为counter+1。 这样处理是为了在某个进程与当前进程权重相同时可选择当前进程继续执行,以减少进程切换的开销。 * 如果进入调度后,当前普通进程的时间片没有用完,而且仍然位于可运行队列中时,当前进程的权值采用公式(4.3)计算,除了当前进程之外的所有普通进程仍采用公式(4.2)计算权值。 goodness=counter+priority+1 (4.3) 这样,适当增大当前进程的权值,以增加继续使用处理机的可能,可以避免过分频繁的进程切换。 新的普通进程进入可运行队列后,插入到队列尾部,将引起调度,在都使用相同静态优先级的情况下,新进程的权值很大,因此,如果没有实时进程和其他一直未执行过的就绪进程,新建进程投入执行的可能性相当大。可见,Linux系统所采用的这种调度算法优先保证交互性,系统的响应时间比较短。 * 整个调度过程大概可以分为五个部分。首先检测中断,如果有中断运行时,调度过程到此为止,直接退出,如果没有中断运行,关中断,在调度的过程中将不再允许中断。其次处理系统的内核例程。然后对当前进程做相关处理:如果当前进程是时间片用完的进程按照轮转法调度,系统重新赋予时间片并把它移到队列的尾部;如果进程因为等待某个事件而转入等待状态引起调度,调度过程中发现事件已经发生,进程仍然转入就绪状态;如果进程处于其他非可运行态的话,就要从可运行队列中删除。这些都是为开始调度而进行的准备工作。 * * * * Linux并不为这三种调度策略的进程分别设置一个运行队列,而是通过权重的不同计算以及其它的一些队列操作,在一个运行队列中实现这三种不同的调度。 发生进程调度时,调度程序要在运行队列中选择一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值