周口市网站建设_网站建设公司_企业官网_seo优化
2026/1/17 19:11:13 网站建设 项目流程

一:概述

所有现代操作系统都能够同时运行多个进程——至少在用户看来是这样。如果系统只有一个处理器,那么在任意时刻实际上只能运行一个程序。在多处理器系统中,真正能够并行运行的进程数量取决于物理 CPU 的数量。

内核和处理器通过以极快的速度在不同正在运行的应用程序之间反复切换,制造出一种多任务并行执行的假象。由于切换间隔非常短,用户几乎察觉不到中间这些极其短暂的停顿,从而感觉计算机仿佛在同时处理多项任务。

这种系统管理方式会引出一系列内核必须解决的问题,其中最重要的包括以下几点:一是应用程序之间必须相互隔离,除非明确允许相互干扰。例如,应用程序 A 中的错误不应传播到应用程序 B。由于 Linux 是一个多用户系统,还必须确保程序不能读取或修改其他程序的内存内容——否则,访问其他用户的私有数据将变得极其容易。二是CPU 时间必须尽可能公平地在各个应用程序之间进行分配,同时还要考虑到某些程序比其他程序更为重要。

内核必须决定为每个进程分配多少时间,以及何时切换到下一个进程。这就引出了一个问题:究竟哪个进程应该成为“下一个”?此类决策与平台无关。 当内核从进程 A 切换到进程 B 时,它必须确保 B 的执行环境与上次撤出处理器资源时完全相同。例如,处理器寄存器的内容以及虚拟地址空间的结构必须保持一致。这两项任务都由内核的一个子系统——调度器(scheduler)负责。CPU 时间的分配方式由调度策略(scheduler policy)决定。

二:进程优先级

并非所有进程的重要性都是相同的。除了大多数读者熟悉的进程优先级之外,还有不同的关键性类别(criticality classes)以满足不同的需求。粗略地说,进程可以分为实时进程和非实时进程两类。

硬实时(hard real-time)进程受到严格的时间限制,在规定的时间内必须完成特定任务。举例来说,如果计算机处理的是飞机的飞行控制指令,那么这些指令必须尽快转发——在保证的时间范围内。例如,如果飞机正在进近着陆,飞行员想拉起机头,计算机如果晚了几秒才转发指令就毫无意义。这时,飞机很可能已经“头朝下”撞到地面。硬实时进程的关键特征是,它们必须在保证的时间范围内被处理。需要注意的是,这并不意味着时间范围必须特别短,而是系统必须保证在任何情况下都不会超过这个时间限制,即使是在不太可能出现的或恶劣的条件下。

Linux 不支持硬实时处理,至少在原生(vanilla)内核中不支持。不过,有一些经过修改的版本,如 RTLinux、Xenomai 或 RTAI 提供了这一功能。在这些方案中,Linux 内核作为一个独立的“进程”运行,处理不太重要的软件,而实时任务则在内核之外完成。只有在没有实时关键操作执行时,内核才会运行。目前主线Linux支持配置为实时内核(PREEMPT_RT)

由于 Linux 被优化用于吞吐量(throughput),并尽可能快速地处理常见情况,因此要实现严格的响应时间保证非常困难。然而,近年来在减少整体内核延迟(即从发出请求到请求被完成之间的时间)方面已经取得了不少进展。这些努力包括:可抢占内核(preemptible kernel)机制、实时互斥锁(real-time mutexes),以及全新完全公平调度器(completely fair scheduler),中断和内核内部优化等。

未完待续。。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询