文章目录
程序执行
前趋图
用于描述进程之间执行的先后顺序。
结点间的有向边表示两个结点之间存在的偏序或者前趋关系。
程序的顺序执行特征
- 顺序性:处理及严格按照程序所规定的顺序执行,每一操作必须在下一个操作开始之前结束。
- 封闭性:程序在封闭状态下执行,运行时独占处理器资源,资源的状态只能本程序才能改变它,程序一旦执行,外界因素无法改变。
- 可再现性:只要程序执行时环境和初始条件相同,当程序重复执行时,无论怎样执行,都可获得相同的执行结果。
程序并发执行
多个程序之间不存在前趋关系,则可进行并发执行。
并发执行的特征:
- 间断性:共享系统资源,完成同一项任务相互合作,在这些并发执行程序之间形成了相互制约的关系,致使一些数据无法立刻输出,导致后续程序只能暂停运行。
- 失去封闭性:系统中的各种资源将被多个程序共享,这些资源的状态也由这些程序改变,其中一项程序在执行的过程中,一定会收到其他程序的影响。
- 不可再现性:失去封闭性,一定不可再现。
进程的描述
进程的定义
- 进程是程序的一次执行
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
- 进程是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个基本独立单位
为了使参与并发执行的每个程序都能独立运行,在操作系统中必须为之配置一个专门的数据结构,称为进程控制块(PCB)
进程的特征
- 动态性:进程的实质就是进程实体的执行过程,动态性是进程的最基本的特征“由创建而生,由调度执行,由撤销消亡”
- 并发性:多个进程实体同存于内存中,且能在一段时间内同时运行,引入进程的目的就是为了使其进程实体能和其他进程实体并发执行。
- 独立性:独立性是指进程实体是一个能独立运行,独立获得资源和独立接受调查的基本单位。凡是未建立PCB的程序都不能作为一个独立的单位参与运行。
- 异步性:进程是按照异步的方式运行的,按各自独立的,不可预知的速度向前推进。
进程的基本状态及转换
进程的三种基本状态:
【1】就绪状态:进程已经分配到所需资源,只需要得到CPU就可以开始执行。
【2】执行状态:进程已经获得了CPU,正在进行执行状态。
【3】阻塞状态:正在执行的进程由于发生了某些事件暂时无法继续执行的状态。
进程之间的转换问题:P37
挂起操作和进程的状态转换
P38
进程管理中的数据结构
对于每个资源和每个进程都设置了一个数据结构,用来表征其实体,我们称之为资源信息表或者进程信息表。
其中包含了资源或进程的标识,描述,状态以及一批指针。
OS管理的数据结构一般分为:内存表,设备表,文件表和用于进程管理的进程表。
进程控制块PCB的作用
PCB作为进程实体的一部分,记录了操作系统所需的,用于描述进程的当前情况以及管理进程的全部信息,是操作系统中最重要的记录型数据结构。
- 作为独立运行基本单位的标志
- 能实现间断性运行方式
- 提供进程管理所需要的信息
- 提供进程调度所需要的信息
- 实现与其他进程的同步以及通信
进程控制块中的信息
- 进程标识符:【1】外部标识符,方便用户对进程的访问,通常由字母,数字组成。【2】内部标识符:方便系统对进程的使用,通常是一个进程的序号。
- 处理机状态:【1】通用寄存器【2】指令寄存器【3】程序状态【4】用户栈指针
- 进程调度信息:【1】进程状态【2】进程优先级【3】进程调度所需的其他信息【4】事件
- 进程控制信息:【1】程序和数据的地址【2】进程同步和通信机制【3】资源清单【4】链接指针
进程控制块的组织方式:【1】线性方式【2】链接方式【3】索引方式
进程控制
进程控制是进程管理中最基本的功能。
处理机的执行状态分为系统态和用户态:【1】系统态:又称为管态,内核态。具有较高的特权,能执行一切命令,访问所有寄存器和存储区。【2】用户态:称为目态,具有较低特权执行状态,仅能执行规定的指令,访问特定的寄存器和存储区。
OS内核包含以下功能:
- 支撑功能:【1】中断处理【2】时钟管理【3】原语操作
- 资源管理功能:【1】进程管理【2】存储器管理【3】设备管理
进程的创建
引起创建进程的事件:用户登录,作业调度,提供服务,应用请求
- 申请空白PCB,为新进程申请获得唯一的数字标识符
- 为新进程分配其所需的资源,包括物理和逻辑资源
- 初始化进程控制块,【1】初始化标识信息【2】初始化处理及状态信息【3】初始化处理机控制信息
- 如果进程就绪队列能够接纳新进程,将进程加入队列。
进程的终止
引起进程终止的事件:正常结束,异常结束,外界干预
- 根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,读出其中的状态
- 被终止进程正处于执行状态,立即终止执行,并置调度标志为真,用于指示该进程被终止后应重新调度
- 若该进程还有子孙进程,应该将所有子孙进程全部终止
- 将被终止进程所有资源归还给父进程,归还给系统
- 将被终止进程从PCB表中移除。
进程的阻塞与唤醒
引起进程的阻塞和被唤醒的事件:像系统请求资源失败,等待某种操作完成,新数据尚未到达,等待新任务到达
进程阻塞过程:调用block原语,首先立即停止执行进程,进程控制块中改为阻塞状态,PCB加入阻塞队列,转调度程序重新调度,将处理机分配给另一个就绪进程
进程唤醒过程:调用唤醒语句wakeup,首先把被阻塞的进程从等待事件的阻塞队列中移除,将其PCB中的状态由现行状态由阻塞转换为就绪,将该PCB插入到就绪队列中。
进程的挂起与激活P47
进程同步P48
- 间接相互制约关系
- 直接相互制约关系
信号量机制
- 整型信号量
- 记录型信号量
- AND信号量
- 信号量集
经典进程的同步问题
- 生产者消费者问题
- 哲学家进餐问题
- 读者写者问题
进程通信
- 共享存储器系统
- 管道通信系统
- 消息传递系统
- 客户机-服务器系统