引入
早期的计算机系统只允许执行一个程序。这种程序对系统有完全的控制,能访问所有的系统资源。现代计算机系统允许多个程序调入内存并发执行。于是产生了进程的概念,即执行中的程序。进程是现代分时系统的工作单元。
概念
进程是执行中的程序,这是一种非正式的说法,进程不只是程序代码,程序代码是进程中的一部分,成为文本段(代码段)。进程还包括一下其他的部分:堆栈段、数据段等
进程有静态的部分,例如代码段,也有动态的部分,例如数据段、栈的信息等,所以可以从两个方面去了解进程概念。程序本身不是进程;程序只是被动实体,如存储在磁盘上包含一系列指令的文件内容(常被称为可执行文件),而进程是活动实体,它有一个程序计数器用来表示一个执行的命令和相关资源集合。
进程包括三个部分:1)操作系统为管理进程创建的数据结果,例如PCB(process control block);2)内存中关于进程的代码和数据;3)进程执行中的上下文。
进程的状态
进程状态在某种程度上是由当前活动锁定椅的,每个进程可能处于下列状态之一:
- 新的:进程正在被创建
- 运行:指令正在被执行
- 等待:进程等待某个事件的发生,如I/O完成或者受到信号
- 就绪:进程等待分配处理器
- 终止:进程完成执行
不同的系统和书本对这些名称的称呼可能不太一样,但是大体的意思差不多。进程状态图如下: