
程序与进程
同一个程序多次执行会产生多个进程。
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程是由PCB、程序段、数据段构成的
PCB:
PID:操作系统为了区分不同的进程,当进程创建时,操作系统会给进程创建一个唯一、不重复的编号。这个编号称为PID
UID:进程所属用户组ID.
操作系统还要记录给进程分配了哪些资源(如:分配了多少内存、正在使用哪些/o设备、正在使用哪些文件。来实现操作系统对资源的管理。
操作系统还要记录进程的运行情况,进程使用资源情况。
上述的信息被操作系统使用PCB(一种数据结构)保存下来。PCB又称为进程控制块。
PCB是进程存在的唯一标志,当进程被创建时,操作系统为其创建PCB,当进程结束时,会回收其PCB。
操作系统对进程的管理所需要的信息都在PCB中。
程序段:程序的指令序列。
数据段:程序运行过程中产生的数据。
动态(最基本的特性):进程是程序的一次执行过程,是动态地产生、变化和消亡的
并发:内存中有多个进程实体,各进程可并发执行
独立:进程是能独立运行、独立获得资源、独立接受调度的基本单位
异步:各进程按各自独立的、不可预知的速度向前推进,操作系统要提供"进程同步机制"来解决异步问题。
结构:每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成

创建状态:进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源、初始化PCB
就绪状态:当进程创建完成后就会进入就绪状态,就绪状态的进程已经具备运行的条件了,只是此时CPU没有运行这个进程
运行状态:如果进程一直在CPU运行,则这个进程处于运行状态
阻塞状态:进程在运行过程中可能申请资源,这个资源可能正在被使用,此时CPU会让这个进程进入阻塞状态。
(如果当资源就绪时,此时这个进程就会从阻塞状态变成就绪状态等待CPU调度)
终止状态:当进程运行结束后,会执行exit系统调用结束进程,此时进程的状态为终止状态,CPU负责回收进程申请的系统资源和PCB。
进程在进行创建的时候为创建态。
当系统完成创建进程操作时,进程的状态从创建态转化为就绪态。
此时进程正在等待CPU调度,如果进程被CPU调度,此时进程的状态运行态。
正在运行的进程通过系统调用方式申请系统资源,如果系统资源未就绪,此时进程会进入阻塞态等待资源就绪。
进入阻塞态的进程当等待的系统资源就绪的时候,会从阻塞态进入就绪态重新等待CPU调度。
运行态的进程结束运行后(或进程出现错误),进程进入终止态。
当进程的时间片到都进程会从运行态转化为就绪态

运行态→阻塞态是-种进程自身做出的主动行为。
阻塞态→就绪态是不是进程自身能控制的,是种被动行为。
注意:不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态(因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求)
首先:进程PCB中,会有一个变量state来表示进程的当前状态。如: 1表示创建态、2表示就绪态、3表示运行态…为了对同一个状态下的各个进程进行统一的管理,操作系统会将各个进程的PCB组织起来。
进程PCB的组织方式有两种