一. 进程的基本信息
1.1 进程的概念、组成及信息
1.1.1 概念
进程的概念与程序相对,程序是静态的而进程是动态的,一个程序执行多次会有多个不同的进程
1.1.2 组成
PCB(程序控制块):
是一种保存下列信息的数据结构,进程创建时操作系统分配,进程结束会进行回收
进程描述信息:
PID:唯一的、不重复的进程 ID
UID:进程所属用户的 ID
资源分配清单:分配给该进程的资源信息,包括使用文件和 I/O 设备等
进程控制和管理信息:
CPU、磁盘等使用情况统计
进程当前状态:就绪态、创建态、阻塞态…
处理机相关信息:各种寄存器的值(用于实现进程切换)
程序段:程序代码(指令序列)
数据段:运行过程中产生的各种数据
1.1.3 特征
动态性:是程序的一次执行过程,是动态地产生和变化消亡的
并发性:内存中可以有多个进程实体,可以并发执行
独立性:进程是独立运行、独立获取资源、独立接受调度的 基本单位
异步性:进程按照各自独立的速度执行推进,由操作系统提供 进程同步机制 来解决问题
结构性:每个进程都会有一个 PCB,结构上看,进程由 PCB、程序段和数据段 组成
※ 程序的运行机制
从编写好的代码开始,经过编译器的处理转换为可执行文件,启动可执行文件后操作系统会创建进程并自动为该进程创建 PCB,分配唯一的 PID 等信息,并将程序编译后得到的指令放入程序段,依照指令去 CPU 取出并执行,而数据段则保存着进程执行过程中得到的程序。
1.2 进程的状态与切换
1.2.1 进程的状态
进程的状态有以下五种:
创建态:在运行可执行文件后,操作系统会尝试创建一个新的进程,此时进程处于创建态,在这个阶段操作系统会为该进程分配资源、初始化 PCB
就绪态:进程创建完成后,进程处于就绪态,此时进程 已经具备运行条件,但由于 CPU 未处于空闲而处于等待状态,暂时不能运行
运行态:当 CPU 空闲时,会从就绪态进程中选一个进程上 CPU 运行,此处进程处于运行态,CPU 会执行进程的程序段中的内容
阻塞态:当处于运行态的进程需要请求某些资源或者事件发生而使进程无法正常执行,进程会 主动请求 以进入阻塞态
终止态:进程的运行结束或者发生错误导致进程终止,此时进程进入终止态,操作系统会回收进程的资源并撤销 PCB
进程的整个生命周期大部分时间都处于 就绪态、阻塞态和运行态 三种状态,在单核 CPU 中同一时刻只能有一个进程处于运行态,而多核 CPU 则可能有多个。
1.2.2 进程的组织方式
在进程 PCB 中,有一个变量 state 储存进程处于的状态,如 1 表示创建态,2 表示就绪态等等,为了对同一个状态下的各个进程进行统一管理,操作系统 会将各个进程的 PCB 组织起来
链接方式:以指针将处于同一状态的进程的 PCB 以类似队列或者列表的形式组织起来,可能根据状态区分,而同一状态下如阻塞态还可能根据处于该状态的原因而分配不同队列或列表组织起来,进程的组织方式以连接方式为多
索引方式:建立索引表储存不同的进程的 PCB 信息