下面所述以Linux 0.1.1源码为例(Linux初期版本源码1w多行,推荐阅读源码,或看相关书籍 Linux内核(v0.1.2)注释

相关部件:

Linux OS

CPU:有自己的频率,通常很高(如笔者当前机器的CPU频率为1.3GHZ,即其寄存器的操作延迟为0.8ns左右),因此可以在1秒内做非常多的事。

可编程定时器/计数器Timer:有自己的频率,Linux源码中定为100,即 10ms 触发一次。OS内的很多时间计数以此为单位,如OS滴答数的单位、进程调度的时间片的单位都是Timer的周期。

背景:

进程是OS资源分配的基本单位、线程是CPU调度的基本单位。但在Linux内核中实际上没有线程概念,我们所说的线程在Linux内核中是轻量级进程LWP,其数据就结构表示与进程一样,从这角度看,内核中就是进程(或称任务)调度。

struct task_struct {
    long state; 
    long counter;
    long priority;
    struct tss_struct tss;
};
Linux中任务的数据结构表示

相关文章: