进程的描述
进程的定义
进程:一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。
进程的组成
进程由程序的代码、处理的数据、下一条指令、一组通用的寄存器、堆栈、一组资源
进程和程序的联系
程序是产生进程的基础
程序的每次运行构成不同的进程
进程是程序的功能体现
通过多次执行,一个程序可以对应多个进程;通过调用关系,一个进程可以包括多个程序。
进程和程序的区别
~进程是动态的,程序是静态的;程序是有序代码的集合;进程是程序的执行,进程有核心态和用户态。
为什么有和核心态? 读写文件的时候,进程给操作系统请求,有系统做读写操作,这个时候是核心态。
~进程是暂时的,程序是永久的;进程是一个状态变化的过程,程序可以长久保存。
~进程跟程序的组成不同:进程:程序、数据和进程控制块(进程状态信息)
例子06:26 类比一
进程的特点
1、动态性:动态创建、结束。
2、并发性:一段时间内有多个进程在进行(调度)。 并行:同一个时刻执行多个进程
3、独立性:不同进程的工作不互相影响。页表是保证进程独立性的重要工具。
4、制约性:因访问共享数据、资源或进程间同步产生的制约。
例子 04:21
程序 = 算法 + 数据结构描述进程的数据结构:进程控制块(过程控制块,PCB)。操作系统为每个进程都维护了一个PCB,用来保存与该进程有关的各种状态信息。
进程控制结构
进程控制结构进程控制块:操作系统管理控制进程运行所用的信息集合。操作系统用PCB来描述进程的基本情况以及运行变化的过程,PCB是进程存在的唯一标志。
使用进程控制块
进程的创建:为该进程生成一个PCB;
进程的终止:回收它的PCB;
进程的组织管理:通过对PCB的组织管理来实现;
PCB有什么信息?
(一)进程标识信息。如本进程的标识,本进程的产生者标识(父进程标识);用户标识。
(二)处理机状态信息保存区。保存进程的运行现场信息:
用户可见寄存器,用户程序可以使用的数据,地址等寄存器。
控制和状态寄存器,如程序计数器(PC),程序状态字(PSW)。
栈指针,过程调用/系统调用/中断处理和返回时需要用到它。
(三)进程控制信息:
调度和状态信息,用于操作系统调度进程并占用处理机使用。
进程间通信信息,为支持进程间的与通信相关的各种标识、信号、信件等,这些信息存在接收方的进程控制块中。父子进程的关系信息。
存储管理信息,包含有指向本进程映像存储空间的数据结构。
进程所用资源,说明由进程打开、使用的系统资源,如打开的文件等。
有关数据结构连接信息,进程可以连接到一个进程队列中,或连接到相关的其他进程的PCB。
PCB的组织方式:
链表:(方便插入和删除)同一状态的进程其PCB成一链表,多个状态对应多个不同的链表各状态的进程形成不同的链表:就绪链表、阻塞链表
索引表:(如果进程数量一定)同一状态的进程归入一个索引表(由索引指向PCB),多个状态对应多个不同的索引表各状态的进行形成不同的索引表:就绪索引表、阻塞索引表
进程的状态
进程的生命期管理
进程创建
引起进程创建的3个主要事件:
系统初始化时;
用户请求创建一个新进程;
正在运行的进程执行了创建进程的系统调用;
进程运行
内核选择一个就绪的进程,让它占用处理机并执行。为何选择?如何选择?调度算法。
进程等待