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