前言-为什么需要进程?
进程这个概念是在多道程序设计中引入的,在此之前的是批处理程序,所以进程主要是用来解决程序不能并发执行从而导致 CPU 利用率低下这个问题的。
进程管理,就是在程序之上抽象出了进程的概念,然后通过进程状态、上下文切换、中断、调度等等手段,最终实现使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述。
进程
Process,一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。
一个进程包含以下信息:
- 代码
- 数据
- 状态寄存器,如 CPU 的状态,PC 指针等
- 通用寄存器,如堆栈指针寄存器等
- 进程占用系统资源,打开文件,已分配的内存信息等
进程的特点
- 动态性:可动态地创建、结束进程。
- 并发性:进程可以被独立地调度并占用处理机运行。
- 独立性:不同进程的工作不相互影响。
- 制约性:因访问共享数据/资源或进程间同步而产生制约。
进程与程序的联系
- 程序是产生进程的基础;进程是程序功能的体现.
- 程序的每次运行构成不同的进程。
- 通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。
进程与程序的区别
- 进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。
- 进程是暂时的,程序是永久的:进程是一个状态变化的过程,程序可长久保存。
- 组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。
进程表
进程表存储在内核空间中,包含进程 ID 和进程控制块信息,以下是典型的进程表中的一些字段(都在 PCB 中):
操作系统在进程表中维护指向每个进程 PCB 的指针, 以便它可以快速访问 PCB。
PCB
在操作系统中,是用 PCB(Process Control Block,进程控制块)数据结构来描述进程的基本情况以及运行变化的过程。PCB 是进程存在的唯一标识,这意味着一个进程的存在,必然会有一个 PCB,如果进程消失了,那么 PCB 也会随之消失。
PCB 具体包含以下三类信息:
进程标识信息:
- 进程标识符:标识各个进程,每个进程都有一个并且唯一的标识符。
- 用户标识符:进程归属的用户,用户标识符主要为共享和保护服务。
进程控制信息:
- 调度和状态信息,用于操作系统调度进程并占用处理机使用。
- 进程间通信