每天看三页《深入Linux内核架构》——第十天

P28-30

1.所有的现代操作系统都能够同时运行若干进程。多处理器系统中,能够真正并行运行的进程数,取决于物理CPU的数目。一个进程可能由若干线程组成,这些线程共享同样的数据和资源。

2.在多任务处理方面,内核需要解决的问题:

(1).应在应用程序间尽可能公平地分配CPU时间,更重要的任务分配更多的CPU时间。

(2).除非明确地要求,否则应用程序不能彼此干扰。(存储保护)

(3).必须保证进程重新恢复运行时,其执行环境与上一次撤销其处理器资源时完全相同。例如,处理器寄存器的内容与虚拟地址空间的结构,与此前完全相同。

(4).确定谁是下一个进程。该决策是平台无关的。

(3)(4)由称为调度器的内核子系统完成。CPU时间的分配是调度器策略,与用于在各个进程间切换的进程切换机制无关。

3. 进程份为实时进程和非实时进程。(1)硬实时进程:必须在指定时限内完成。Linux不支持但一些修改版本,如:RTLinux、Xenomai、RATI支持。在这些修改方案中,Linux内核作为独立的“进程”运行,来处理次重要软件。实时的工作在内核外部完成。只有当没有实时的关键操作执行时,内核才运行。(2)软实时进程:硬实时进程的一种弱化形式,尽管仍需快速得到结果,但稍晚一会儿也可以。优先于所有其他普通进程。(3)普通进程,有优先级。例,交互式应用优先级高,冗长的编译和计算优先级低。

4.抢占式多任务处理(通过时间片分配CPU时间)。

5.Linux支持不同的调度类别,在进程间完全公平的调度和实时调度。

6.有重要进程变为就绪状态可以运行时,可以选择抢占当前的进程。

7.进程并不总是可以立即运行,有时必须等待来自外部信号源、不受其控制的事件。

8.进程可能有如下状态:运行、等待、睡眠(在等待外部事件,调度器无法在下一次任务切换时选择该进程)、终止。所有进程保存在一个进程表中,睡眠会特别标记。

你可能感兴趣的:(linux)