进程的定义和特征
1.定义
为了使参与并发执行的每个程序(含数据)都能够独立的运行,在操作系统中必须为之配置一个专门的数据结构,称为进程控制块(PCB)。系统利用PCB描述进程的基本情况和活动过程,进而控制和管理进程。
程序段、相关的数据段和PCB三部分构成了进程实体(又称为进程影像)。一般情况下,就把进程实体简称为进程。
对于进程较典型的定义:
(1)进程是程序的一次执行。
(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
(3)进程是具有独立功能的程序在一个数据集合上运行的过程,他是系统进行资源分配和和调度的一个独立单位。
在引入进程实体概念后,可以把传统OS中的进程定义为:“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。”
2.进程的特征
(1)动态性(2)并发性(3)独立性(4)异步性
进程的基本状态及转换
1.进程的三种基本状态
(1)就绪状态
(2)执行状态
(3)阻塞状态
2.三种基本状态的转换
3.创建状态和终止状态
(1)创建状态
进程由创建而产生,创建状态是为了保证进程的调度必须在创建工作完成后进行,以确保对进程控制块操作的完整性;
对于处于创建状态的进程,当其获得了所需要的资源以及对其PCB的初始化工作完成后,便可有创建状态转入就绪状态。
(2)终止状态
两个步骤:首先是等待操作系统进行善后处理,最后将其PCB清零,并将PCB空间返回系统。
挂起操作和进程状态的转换
1.挂起操作的引入
挂起状态:就绪的、但不会被调度执行。
产生原因: (1)用户自己请求暂停;
(2)父进程检查、协调子进程时挂起子进程;
(3)调节负荷的需要,负载过重,为保证实时任务的控制,挂起一些不重要的进程;
(4)操作系统的检查和记录需要挂起进程;
2.引入挂起原语操作后三个进程状态的转换
进程管理中的数据结构
1.进程控制块PCB
进程实体:代码段+数据段+PCB
进程控制块定义:存放进程的管理和控制信息的数据结构;
OS对进程控制和管理围绕PCB进行
分析OS调度某进程的过程:
(1)查该进程的PCB,获取其状态、优先级;
(2)根据PCB保存的处理机状态信息,恢复现场;
(3)根据PCB中程序和数据的内存始址,找到其程序和数据;
(4)执行中的同步信号也要查阅PCB,暂停时进程执行的处理机环境保存回PCB;
2.PCB的重要性
进程控制块是进程存在的唯一标志;
进程管理和控制的最重要的数据结构;
3.进程控制块中的信息
(1)进程标识符信息
每一个进程都必须有一个唯一的标识符;
- 内部标识符:唯一的数字序号,方便系统使用;
- 外部标识符:方便用户使用,用户进程访问某进程时使用;
(2)处理机状态信息
主要由处理机的各种寄存器中的内容组成,被中断时这些信息要存放到PCB,以便在该进程重新执行时能再从断点继续执行;
-
通用寄存器:用户程序访问的,暂存信息;
-
指令计数器;下一条指令地址;
-
程序状态字PSW:一些状态信息;
-
用户栈指针:每个用户进程都有的存放过程和系统调用参数及调用地址的一组系统栈;
(3)进程调度信息
-
进程状态
-
进程优先级
-
进程调度所需的其他信息:调度算法相关信息;
-
事件:状态转换有关的事件;
(4)进程控制信息
- 程序和数据的地址(单个进程):数据所在的内外存地址;
- 进程同步和通信机制(多进程间):同步和通信机制的信号量、消息队列指针等;
- 资源清单
- 链接指针(PCB的组织):本PCB所在队列的下一个进程PCB的首地址;
2) PCB信息的存放
系统运行中有若干个程序的PCB,他们常驻内存的PCB区;
采用的数据结构;PCB结构体,PCB链表或队列;
3)PCB的组织方式(如何有效的管理PCB)
- 链接方式
- 索引方式
- 线性方式: