计算机操作系统之进程的描述与控制

(一)前驱图和程序执行

前驱图(Precedence Graph):有向无循环图,可记为DAG(Directed Acyclic Graph),用于描述进程之间执行的先后顺序,不允许有循环。
每个结点可用来表示一个进程或出现段,乃至一条语句
结点间的有向边表示两个结点之间存在的偏序(Partial Order)或前驱关系(Precedence Relation)
进程P1和P2存在前驱关系可表示为P1->P2,P1是P2的直接前驱,P2是P1的直接后继
没有前驱的结点称为初始结点(Initial Node)
没有后继的结点称为终止结点(Final Node)
每个节点还具有一个重量(weight):用于表示该结点所含有的程序量或程序的执行时间
程序顺序执行时的特征:

  • 顺序性
  • 封闭性
  • 可再现性

程序并发执行时的特征:

  • 间断性
  • 失去封闭性
  • 不可再现性
(二)进程的描述

进程的定义:

  • 进程是程序的一次执行
  • 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
  • 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位

进程实体(又称进程映像):简称为进程,由三部分构成:

  • 程序段
  • 相关的数据段
  • 进程控制块(Proces Control Block,PCB):使参与并发执行的每个程序(含数据)都能独立地运行的数据结构

进程的特征:

  • 动态性:进程最基本的特征,进程的实质是进程实体的执行过程
  • 并发性:程序(没有建立PCB)是不能参加并发执行的
  • 独立性:未建立PCB的程序都不能作为一个独立的单位参与运行
  • 异步性:进程是按异步方式运行的

进程的三种基本状态:

  • 就绪(Ready)状态
  • 执行(Running)状态
  • 阻塞(Block)状态

创建状态和终止状态

挂起操作引入的原因是基于系统和用户的需要:

  • 终端用户的需要
  • 父进程请求
  • 负荷调节的需要
  • 操作系统的需要

引入挂起原语操作后三个进程状态的转换:

  • 活动就绪–>静止就绪
  • 活动阻塞–>静止阻塞
  • 静止就绪–>活动就绪
  • 静止阻塞–>活动阻塞

引入挂起操作后五个进程状态的转换:

  • NULL–>创建
  • 创建–>活动就绪
  • 创建–>静止就绪
  • 执行–>终止

进程管理中的数据结构:

  • 内存表
  • 设备表
  • 文件表
  • 进程表:又称进程控制块PCB

PCB的作用: 是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程

  • 作为独立运行基本单位的标志
  • 能实现间断性运行方式
  • 提供进程管理所需要的信息
  • 提供进程调度所需要的信息
  • 实现与其他进程的同步与通信

进程控制块中的信息:

  1. 进程标识符:用于唯一地标识一个进程
    外部标识符:通常由字母、数字组成,设置父进程标识及子进程标识,还可设置用户标识
    内部标识符:通常是一个进程的序号,赋予每个进程一个唯一的数字标识符
  2. 处理机状态:处理机状态信息也称为处理机的上下文,重要是由处理机的各种寄存器中的内容组成。
    通用寄存器:又称用户可视寄存器
    指令计数器:存放要访问的下一条指令的地址
    程序状态字PSW:含状态信息,如条件码、执行方式、中断屏蔽标志等
    用户栈指针:用于存放过程和系统调用参数及调用地址
  3. 进程调度信息
  4. 进程控制信息

进程控制块的组织方式:

  • 线性方式
  • 链接方式
  • 索引方式
    操作系统内核的两大功能:
  • 支撑功能
    中断处理
    时钟管理
    原语操作:一个操作中的所有动作要么全做,要么全部做
  • 资源管理功能
    进程管理
    存储器管理
    设备管理

引进创建进程的事件:

  • 用户登录
  • 作业调度
  • 提供服务
  • 应用请求

进程创建的步骤:

  • 申请空白PCB
  • 为新进程分配其运行所需的资源
  • 初始化进程控制块(PCB)
    初始化标识信息,将系统分配的标识符和父进程标识符填入新PCB中
    初始化处理机状态信息,使程序计数器指向程序的入口地址,是栈指针指向栈顶
    初始化处理机控制信息
  • 若进程就绪队列能够接纳新进程,便将新进程插入就绪队列

引入进程终止(Termination of Process)的事件:

  • 正常结束
  • 异常结束
    越界错
    保护错
    非法指令
    特权指令错
    运行超时
    等待超时
    算术运算错
    I/O故障
  • 外界干预

引入进程阻塞和唤醒的事件:

  • 向系统请求共享资源失败
  • 等待某种操作的完成
  • 新数据尚未到达
  • 等待新任务的到达

进程的挂起与激活

(三)进程同步

概念: 使进程对系统资源的无序争夺能有条不紊地运行。
作用: 改善资源利用率,显著提高系统的吞吐量

进程之间存在的两种形式的制约关系:

  • 间接相互制约关系:由系统实施统一分配
  • 直接相互制约关系:官程机制

临界资源:
多道程序系统中存在许多进程,它们共享各种资源,然而有很多资源一次只能供一个进程使用。
一次仅允许一个进程使用的资源称为临界资源。许多物理设备都属于临界资源,如输入机、打印机、磁带机等。

临界区:
每个进程中访问临界资源的那段代码
在临界区前面增加一段用于进行检查的代码,把这段代码称为进入区(enter section)。
相应地,在临界区后面也要加上一段称为退出区(exit section)的代码,用于将临界区正被访问的标志恢复为未被访问的标志。
进程区除上述的进入区、临界区及退出区之外的其他部分的代码都称为剩余区

为实现进程互斥地进入自己的临界区,可采用软件方法,更多的是在系统中设置专门的同步机制来协调各进程间的运行。所有同步机制都应遵循下述四条准则:

  • 空闲让进:当无进程处于自己的临界区时,表明临界资源处于空闲状态,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。
  • 忙则等待:当已有进程进入临界区,表明临界资源正在被访问,因而其它试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。
  • 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态。
  • 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。

硬件同步机制:
1.关中断:实现互斥的最简单方法之一
2.利用Test-and-Set指令实现互斥
3.利用Swap指令实现进程互斥

信号量机制:
1.整形信号量
2.记录型信号量
3.AND型信号量
4.信号量集

信号量的应用:
利用信号量实现进程互斥
利用信号量实现前驱关系

管程机制

管程的定义:
一个管程定义了一个数据结构能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中de数据

管程由四部分组成:

  • 管程的名称
  • 局部于管程的共享数据结构说明
  • 对该数据结构进行操作的一组过程
  • 对局部于管程的共享数据设置初始值的语句

管程主要有以下特性:

  • 模块化:即管程是一个基本程序单元,可以单独编译
  • 抽象数据类型:指管程中不仅有数据,而且有对数据的操作
  • 信息隐蔽

管程和进程的不同:

  • 两者都定义了数据结构,但进程定义的是私有数据结构PCB,管程定义的是公共数据结构,如消息队列等
  • 两者都存在对各自数据结构上的操作,但进程是由顺序程序执行有关操作,而管程主要是进行同步操作和初始化操作
  • 设置进程的目的在于实现系统的并发性,而管程的设置则是解决共享资源互斥使用问题
  • 进程通过调用管程中的过程对共享数据结构实行操作,该过程就如通常的子程序一样被调用,因而管程为被动工作方式,进程则为主动工作方式
  • 进程之间能并发执行,而管程则不能与其调用者并发
  • 进程具有动态性,由“创建”而诞生,由“撤销”而消亡,而管程则是操作系统中的一个资源管理模块,供进程调用

进程通信

进程通信机制的四大类:

  • 1.共享存储器系统(Shared-Memory System)
    基于共享数据结构的通信方式
    基于共享存储区的通信方式
  • 2.管道(pipe)通信系统
  • 3.消息传递系统(Message passing system)
    直接通信方式
    间接通信方式
  • 4.客户机-服务器系统(Client-Server system)

套接字: 网络通信程序接口,主要是解决多进程同时通信时端口和物理线路的多路复用问题。包括两类:

  • 基于文件型
  • 基于网络型

远程过程调用和远程方法调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值