程序:就是一个指令序列
早期的计算机(只支持单道程序)程序的代码放在程序段内,程序运行过程处理的数据放在数据段内(如变量)
为了方便操作系统管理,完成各程序并发执行,引入了进程、
进程实体的概念。一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB注意:PCB是进程存在的唯一标志!
进程实体(进程映像):PCB、程序段、数据
进程控制块(PCB):系统为每个运行的程序配置一个数据结构,用来描述进程的各种信息(如程序代码存放位置)
进程不同的定义:
1.进程是程序的一次执行过程。
2.进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
3.进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位(强调动态性)
引入进程实体的概念后的定义:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。注:严格来说,进程实体和进程并不一样,进程实体是静态的,进程则是动态的。也可以认为进程实体就是进程。因此我们也可以说“进程由程序段、数据段、PCB三部
分组成”
操作系统通过PCB来管理进程,因此PCB中应该包含操作系统对其进行管理所需的各种信息。
程序段:存放程序代码
数据段:程序运行时使用、产生的运算数据。如全局变量、局部变量、宏定义的常量
进程标识符PID:当进程被创建时,操作系统会为该进程分配一个唯一的、不重复ID,用于区分不同的进程(类似于身份证号)
各寄存器值:当进程切换时需要把进程当前
的运行情况记录下来保存在PCB中,如程序计数器的值表示了当前程序执行到哪一句
操作系统管理进程所需的数据都在PCB中
程序段和数据段存放程序运行所需的数据
进程间的组织:在一个系统中,通常有数十、数百乃至数千个PCB。为了能对他们加以有效的管理,应该用适当的方式把这些PCB组织起来。
注:进程的组成讨论的是一个进程内部由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题
链接方式:按照进程状态将PCB分为多个队列;操作系统持有指向各个队列的指针
索引方式:根据进程状态的不同,建立几张索引表;操作系统持有指向各个索引表的指针
进程的特征:
动态性(最基本):进程是程序的执行过程,是动态产生,变化和消亡的
并发性:内存中有多个进程实体,进程间可以并发执行
独立性:进程是能独立运行,独立获取资源,独立接受调度的基本单位(进程是资源分配,接收调度的基本单位)
异步性:各进程按各自独立的不可预知的速度向前推进,操作系统要提供“进程同步机制”解决异步问题。异步性会导致并发程序执行结果的不确定性。
结构性:每个进程都会配一个PCB。结构上看,进程由程序段、数据段、PCB组成