早期的计算机一次只能执行一个程序。这种程序完全控制系统,并且访问所有系统资源。相比之下,现代计算机系统允许加载多个程序到内存,以便并发执行。这就要求操作系统对各种程序提供更严的控制和更好的划分。这些需求导致了进程概念的产生,即进程为执行程序,是现代分时操作系统的工作单元。
操作系统越复杂,有望为用户做的也越多。虽然它主要关注的是执行用户程序,但是也要顾及各种系统任务(这些任务留在内核之外会更好)。因此,系统会由一组进程组成:操作系统进程执行系统代码,而用户进程执行用户代码。
通过 CPU 的多路复用,所有这些进程可以并发执行。通过在进程之间切换 CPU,操作系统能使计算机更为高效。
前面说,进程是执行的程序,这是一种非正式的说法。进程不只是程序代码(文本段或代码段),通常还包含以下内容:
进程的内存结构如图 1 所示。