前言
进程
一、前趋图和程序执行
1.前趋图
一个有向无环图,它用于描述进程之间执行的先后顺序。(前趋图中不允许有循环,这种关系是不可能实现的)
2.进程的顺序执行
2.1 进程的顺序执行:
程序由若干程序段组成,按某种顺序运行,当前一个程序段完成,才会运行下一个片段。
2.2特征:
(1)顺序性:
处理机会严格按照程序规定的顺序语句执行语句,既每个操作都是下一个操作之前结束;
(2)封闭性
程序在封闭环境下运行,即程序运行时独占全机资源,只有本程序才能改变资源的状态(初始状态除外),程序一旦执行,其结果便不受外界因素影响;
(3)可在现性
只要程序执行时的环境和初始条件相同,当重复执行程序时,都将得到同样的结果;
2.进程并发执行
顺序执行系统资源利用率低,在系统中引入多道程序技术,事程序或程序段间能并发执行。(不是所有程序都能并发执行,(只有存在前趋关系的程序才有可能并发执行))。
由于S1和S2不是相互依赖的没有前趋关系,所以可以并发执行;而S3和S4互相制约,存在前趋关系只能顺序执行。
S1:a:=x+2;
S2:b:=y+4;
S3:c:=a+2b;
S4:d:=c+b;
2.2特征:
(1)间断性:
并发执行程序共享系统资源,相互合作,之间存在互相制约关系;
(2)失去封闭性
因为资源事共享的,导致其中一个程序执行时,其执行环境会受到其它程序的影响,资源状态也会由这些程序改变;
(3)不可在现性
程序在并发执行,失去了封闭性必然失去可在现性;
二、进程的描述
1.进程定义
(1)进程时程序的一次执行
(2)进程时一个程序及其数据在处理机上顺序执行时所发生的过程
(3)进程时具有独立功能的程序在一个数据集上执行的过程,它时系统进行资源分配和调度的一个独立单位
2.特征
(1)动态性
(2)并发性
(3)独立性
(3)异步性
3.进程基本状态与转换
(1)就绪(Ready)状态
进程已处于准备好运行状态,即已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行。多个就绪状态的进程按一定的策略排成就绪队列。
(2)执行(Running)状态
进程已获得CPU,其程序正在执行的状态。任意时刻,单处理机系统只有一个进程处于执行状态,多处理机系统有多个执行状态的进程。
(3)阻塞(Block)状态
正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行时的状态,即进程的执行收到阻塞。引起进程调度,将处理机分配给另一个就绪进程,而让受阻进程出去暂停状态,即阻塞状态或等待状态或封锁状态。处于阻塞状态的进程排成一个队列,即阻塞队列。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a183b3dccfeda2626a3f46b95179e993.png)
创建状态和终止状态
引入创建和终止状态变为五基态转换
2. 挂起操作和进程状态的转换
2.1 引入挂起主要是满足下列需求
(1)终端用户需要
(1)父进程的需要
(1)负荷调节的需要
(1)OS的需要
2.2 引入挂起三基态转换
2.3 引入挂起五基态转换
4.进程管理中的数据结构
1. OS中用于管理资源和控制进程的数据结构
计算机系统中,对每一个资源和每个进程都设置了一个数据结构,用于表征其实体,称为资源信息表或进程信息表,其中包含了资源或进程的标识、描述、状态等信息及一批指针。将数据结构分为四类:内存表、设备表、文件表、进程表(PCB)。
2. PCB(进程表)
PCB记录操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构。使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。
作用:
(1)作为独立运行基本单位的标志
系统通过PCB感知进程的存在;PCB已成为进程存在于系统的唯一标志
(2)能实现间断性运行方式
系统将CPU现场信息保存在被中断进程的PCB中,供该进程再次调度执行时恢复CPU现场时使用
传统意义上的静态程序,不具有保护或保存自己运行现场的手段,无法保证其运行结果的可再现
(3)提供进程管理所需要的信息
(4)提供进程调度所需要的信息
(5)实现与其他进程的同步与通信
采用信号量机制,要求在每个进程都设置有相应的用于同步的信号量。
2. PCB中的信息
(1)进程标识符:唯一标识一个进程(外部标识符、内部标识符)
(2)处理机状态:由处理机的各种存储器中的内容组成
① 通用寄存器,又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息, 在大多数处理机中,有 8~32 个通用寄存器,在RISC结构的计算机中可超过 100 个;
② 指令计数器,其中存放了要访问的下一条指令的地址;
③ 程序状态字PSW,其中含有状态信息,如条件码、执行方式、 中断屏蔽标志等;
④ 用户栈指针, 指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。
(3)进程调度信息
① 进程状态,指明进程的当前状态, 作为进程调度和对换时的依据;
② 进程优先级,用于描述进程使用处理机的优先级别的一个整数, 优先级高的进程应优先获得处理机;
③ 进程调度所需的其它信息,它们与所采用的进程调度算法有关,比如,进程已等待CPU的时间总和、 进程已执行的时间总和等;
④ 事件,是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。
(4)进程控制信息
① 程序和数据的地址, 是指进程的程序和数据所在的内存或外存地(首)址,以便再调度到该进程执行时,能从PCB中找到其程序和数据;
② 进程同步和通信机制,指实现进程同步和进程通信时必需的机制, 如消息队列指针、信号量等,它们可能全部或部分地放在PCB中;
③ 资源清单,是一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单;
④ 链接指针, 它给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。