一、进程的概念(理解 "进程" 和 "程序" 的区别)
进程是程序的一次执行过程,是操作系统进行资源分配和调度的基本单位。
程序是静态的指令集合(如存储在硬盘上的可执行文件),而进程是动态的实例,包含程序运行时的状态和资源。例如:同时打开多个记事本程序,每个实例都是一个独立的进程。
程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合。
进程(Process):是动态的,是程序的一次执行过程。(同一个程序多次执行会对应多个进程)
二、进程的组成(一个进程由哪些部分组成)
进程由三部分构成:
进程控制块(PCB, Process Control Block)
当进程被创建时,操作系统会为该进程分配一个唯一的、不重复的“身份证号”一一PID(Process ID,进程ID)
资源信息:内存分配、打开文件列表、I/O设备占用等。控制信息:程序计数器(PC)、寄存器值、调度优先级等。状态信息:运行态、就绪态、阻塞态等。标识信息:进程ID(PID)、用户ID等。
程序段(Text Segment)
存储可执行机器指令(即程序的代码部分)具有只读属性,多个进程可共享同一代码段(如多进程运行同一程序)
数据段(Data Segment)
全局数据区:存储全局变量和静态变量堆(Heap):动态分配内存区域(通过malloc/new申请)栈(Stack):函数调用时的临时数据存储(局部变量、参数、返回地址)环境变量区:存储进程运行环境参数
程序段、数据段、PCB三部分组成了进程实体(进程映像)引入进程实体的概念后,可把进程定义为:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
注:PCB是进程存在的唯一标志。
三、进程的特征(进程有哪些重要特征)
动态性
进程具有生命周期(创建、运行、终止),其状态随时间变化。
并发性
多个进程可同时存在于内存中,通过时间片轮转等方式交替执行(宏观并行,微观串行)。
独立性
每个进程拥有独立的地址空间和资源,互不干扰(需通过进程间通信机制共享数据)。
异步性
进程执行速度不可预知,可能因中断或调度而暂停/恢复。
结构性
由PCB、程序段、数据段组成,结构清晰,便于操作系统管理。
总结:
补充说明
进程与线程的区别:线程是进程内的执行单元,共享进程资源,切换开销更小。进程状态转换:包括新建(New)、就绪(Ready)、运行(Running)、阻塞(Blocked)、终止(Terminated)等状态。程序是怎样运行的?(见下图)