
进程是操作系统中资源分配和调度的核心单位,而
fork()函数是创建子进程的关键工具。本节将简要介绍进程的概念,并通过fork()探讨其实际应用。
一、进程概念
进程是计算机操作系统中的一个基本概念,指的是一个程序在计算机中的一次执行过程。它是操作系统中资源分配和调度的基本单位。进程和程序的主要区别在于:程序是静态的代码,而进程是程序在运行时的动态实例。
1.1 进程理解
- 课本概念:程序的一个执行实例,正在执行的程序等
- 内核观点:已经加载到内存中的程序,担当分配系统资源 (CPU、内存) 的实体
当我们运行程序时,需要数据和代码加载到内存中,内存会对进程中数据和代码进行处理。其中操作系统中不单单只存在一个进程,而是同时存在多个进程,操作系统需要对这些进程进行管理,那么就需要用到"先描述,再组织",进行更好地管理。
二、如何描述和管理进程
2.1 进程本质
我们将磁盘中可执行程序的数据和代码被加载到内存,就可以说明"进程是可执行程序中数据和代码"吗?这里有一系列问题:占据内存多少空间、被调用多少时间、当前进程状态如何?

结果很显然,单从内存只有可执行程序的代码和数据完全不足描述上述需要的信息。这说明了"操作系统将可执行程序加载到内存中,被加载到内存中的代码和数据,根本不是进程,只是进程对应的代码和数据"。
2.2 PCB 描述进程状态

操作系统为了管理已经被加载进来所有进程,需要创建用于描述进程的结构体对象PCB(进程控制块,Process Control Block),本质是对于进程属性进行描述。



























