进程概述
进程的定义
程序:
程序是存放在存储介质上的一个可执行文件
进程:
进程是程序的执行实例, 包括程序计数器、 寄存器和变量的当前值
程序是静态的, 进程是动态的
程序是一些指令的有序集合, 而进程是程序执行的过程
进程的状态是变化的, 其包括进程的创建、 调度和消亡
在 linux 系统中, 进程是管理事务的基本单元
进程拥有自己独立的处理环境和系统资源(处理器、 存储器、I/O 设备、 数据、 程序)
使用fork 或 vfork 创建进程,在进程中exec 函数加载程序代码,并运行
进程是操作系统分配资源的基本单元
进程的状态及转换
进程整个生命周期 可简单划分为三种状态:
就绪态:
进程已具备执行的一切条件, 正在等待分配 CPU 的处理时间
执行态:
该进程正在占用 CPU 运行
等待态:
进程因不具备某些执行条件,而暂时无法继续执行的状态
进程三种状态的转换关系:
进程控制块
OS 是根据 PCB ,对并发执行的进程进行 控制和管理
系统在创建一个进程的时,会开辟一段内存空间存放与此进程相关 的 PCB 数据结构
PCB 是操作系统中最重要的记录型数据结构
PCB 中记录用于 描述进程进展情况及 控制进程运行所需的全部信息
PCB 是进程存在的唯一标志, 在 Linux 中 PCB 存放在 task_struct 结构体中
调度数据:
进程的状态、 标志、 优先级、 调度策略等
时间数据:
创建该进程的时间、 在用户态的运行时间、 在内核态的运行时间等
文件系统数据:
umask 掩码、 文件描述符表等
内存数据、 进程上下文、 进程标识(进程号)