3. 实时性能 Linux 2.4通过就绪进程选择算法的设计区分实时进程和非实时进程,只要有实时进程可运行,非实时进程就不会获得运行机会。Linux又将实时进程分为SCHED_RR和SCHED_F
B. prev 在schedule中,当前进程(也就是可能被调度走的进程)用prev指针访问。 对于SCHED_RR的实时进程,仅当该进程时间片结束(counter==0)后才会切换到别的进程
Linux 2.4 进程调度分析 内容提要: ● 前言:技术的背景、特点和应用价值 ● 就绪进程选择算法 ● 相关数据结构 ● 调度器及其他核心应用的调度相关部分:具体实现时函数的调用关
3. smp系统初始化 init_task在完成关键数据结构初始化之后,在进行硬件的初始化之前,会调用smp_init()对SMP系统进行初始化。smp_init()调用smp_boot_cpus
六. 其他核心应用的调度相关部分 系统中很多技术都和调度器相关,这里仅就其中几个稍作展开,并且不涉及该技术的细节,仅就其中与调度器相关的部分进行讨论,假定读者对于该技术有初步的了解。 1. I
2. 调度器工作时机 调度器的启动通常有两种方式: A. 主动式 在核心应用中直接调用schedule()。这通常发生在因等待核心事件而需要将进程置于挂起(休眠)状态的时候--这时应该主动
四. 进程切换过程 从一个进程的上下文切换到另一个进程的上下文,因为其发生频率很高,所以通常都是调度器效率高低的关键。在Linux中,这一功能是以一段经典的汇编代码实现的,此处就着力描述这段代码。
3. current 核心经常需要获知当前在某CPU上运行的进程的task_struct,在Linux中用current指针指向这一描述符。current的实现采用了一个小技巧以获得高效的访问速度
进程调度依据 调度程序运行时,要在所有可运行状态的进程中选择最值得运行的进程投入运行。选择进程的依据是什么呢?在每个进程的task_struct结构中有以下四项:policy、priority
第十三课进程调度 kill命令 当需要中断一个前台进程的时候,通常是使用组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终