操作系统-第二章 进程的描述与控制

2.1 前趋图和程序执行

2.1.1 前趋图

为了能更好地描述程序的顺序和并发执行情况,引入用于描述程序执行先后顺序的前趋图。

前趋图:是指一个有向无循环图,可记为DAG, 它用于描述进程之间执行的先后顺序。图中的每个结点可用于表示一个进程或程序段,乃至一条语句,结点间的有向边则表示两个结点之间存在的偏序或前趋关系。

进程(或程序)之间的前趋关系可用“→”来表示,如果进程Pi和Pj存在着前趋关系,可表示为(
Pi,P)E→, 也可写成→P;, ,表示在P开始执行之前P;必须完成。R此时称P;是P:的直接前趋,而称P:是P;的直接后继。

在这里插入图片描述

注意:前趋图中是不允许由循环的,否则必然会产生不可能实现的前趋关系。

2.1.2 程序顺序执行
  • 程序的顺序执行

    ​ 通常,一个应用程序由若干个程序段组成,每一个程序段完成特定的功能,它们在执行是,都需要按照某种先后次序顺序执行,仅当前一程序段执行完后,才运行后一程序段。

    特征: ①顺序性; ②封闭性; ③可再现性

  • 程序并发执行时的特征
  1. 间断性
  2. 失去封闭性
  3. 不可再现性
  • 分析

    程序经过多次执行后,虽然它们执行时环境和初始条件相同,但得到的结果却各不相同,程序在并发执行时,由于失去了封闭性,其计算结果已于并发程序的执行速度有关,从而使程序失去可再现性。

2.2 进程的描述

2.2.1 进程的定义和特征
  1. 进程的定义

    为了使参与并发执行的每个程序(含数据)都能独立地运行,在操作系统上必须为之配置一个专门的数据结构,称为进程控制块(PCB, Process Control Block).系统利用PCB 来描述进程的基本情况和活动过程,进而控制和管理进程.

    这样,由程序段、相关的数据段和PCB三部分便构成了进程实体(即进程映像)。通常情况下,把进程实体就简称为进程。

    典型的定义:

    进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

    进程是程序的一次执行.

    进程是一个程序及其数据在处理机上顺序执行时所发生的活动.

  2. 进程的特征

    进程和程序是两个截然不同的概念,除了进程具有程序所没有的PCB结构外,还具有下面一些特征:

    • 动态性
    • 并发性
    • 独立性
    • 异步性
  3. 进程管理中的数据结构

  4. 进程是动态的,而程序是静态的

在这里插入图片描述

2.2.2 进程的基本状态及转换
1. 进程的三种基本状态

一般而言,每一个进程至少应处于一下三种基本状态之一:

  1. 就绪(Ready)状态
  2. 执行(Running)状态.
  3. 阻塞(Block)状态.
2. 三种基本状态的转换

在这里插入图片描述

3. 创建状态和终止状态
  1. 创建状态

    进程是由创建而产生.创建一个进程是个很复杂的过程,一般要通过多个步骤才能完成.

    如果进程所需要的资源尚不能得到满足,比如系统尚无足够的内存使进程无法装入其中,此时创建工作尚未完成,进程不能被调度运行,于是把此时进程所处的状态称为创建状态.

  2. 终止状态

    进程的终止要通过两个步骤: 首先.是等待OS 进行善后处理,最后将其PCB清零,并将PCB 空间返还系统.

    当一个进程到达了一个自然结束点,或是出现了无法克服的错误, 或是被OS所终结,或是被其他有终止权的进程所终结,它将进入终止状态.

在这里插入图片描述

2.3 进程的控制

​ 进程控制是进程管理中最基本的功能,主要包括创建新进程、终止已完成的进程、将因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能.

​ 进程控制一般是由OS的内核中的原语实现.

  • 进程控制块PCB的作用
  1. 作为独立运行基本单位的标志
  2. 能实现间断性运行的方式
  3. 提供进程管理所需要的信息
  4. 提供进程调度所需要的信息
  5. 实现与其他进程的同步与通信
  • 进程控制块中的信息
  1. 进程标识符:

    内部标识符

    外部标识符

  2. 处理机状态:

    通用寄存器

    指令计数器

    程序状态字PSW

    用户栈指针

  3. 进程调度信息

    进程状态

    进程优先级

    进程调度所需的其他信息

    事件

  4. 进程控制信息

    程序和数据的地址

    进程同步和通信机制

    资源清单

    链接指针

  • 进程控制块的组织方法

​ 线性方法:即将系统中所有的PCB 都组织在一张线性表中,将该表的首址存放在内存的一个专用区域

  • 进程的创建
  1. 进程的层次结构

    在OS中,允许一个进程创建另一个进程,通常把创建进程的进程成为父进程,而把被创建的进程成为子进程。子进程可继续创建更多的孙进程,由此便形成了一个进程的层次结构。

    如在UNIX中,进程与子孙进程共同组成一个进程家族。

在这里插入图片描述

  1. 引起创建进程的事件

  2. 进程的创建

  • 申请空白PCB,为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB.

  • 为进程分配其运行所需的资源,包括各种物理和逻辑资源

  • 初始化进程控制块(PCB)

  • 如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。

  • 进程的终止

  1. 引起进程终止的事件

    正常结束;异常结束;外界干预

  2. 进程的终止过程

    若系统中发生了要求

  • 进程的阻塞和唤醒
  1. 引起的事件:

    向系统请求共享资源失败

    等待某种操作的完成

    新数据尚未到达

    等待新任务的到达

  2. 达娃

  • 进程的挂起和激活

2.4 进程的同步

  • 进程同步的基本概念

    引入:进程同步是一个OS级别的概念, 是在多道程序的环境下,进程间存在着不同的制约关系.

    ​ 为了协调这种互相制约的关系,实现资源共享和进程协作,从而避免进程之间的冲突,引入了进程同步.

    主要任务:是对多个相关进程在执行次序上协调,

  • 硬件同步机制

  • 信号量机制

  • 信号量的应用

  • 管理机制

2.4.1 同步机制应遵循的规则

​ 为实现进程互斥地进入自己的临界区,可用软件方法,更多的是在系统中设置专门的同步机构来协调各进程间的运行。

所有同步机制都应遵循下述四条准则:

  • 空闲让进
  • 忙则等待
  • 有限等待
  • 让权等待
2.4.2 硬件同步机制

​ 虽然可以利用软件方法解决诸进程互斥进入临界 区的问题,但有一定难度,并且存在很大的局限性,因而现在己很少采用。

​ 相应地,目前诈多计算机已提供了一些特殊的 硬什指令,允许对一个字中的内容逃行检测和修正,或者是对两个字的内容进行交换等。可利用这些特殊的指令水解决临界区问题。

2.4.3 信号量机制
  1. 整型信号量

    最初由Dijkstra 把整型信号量定义为一个用于表示资源数目的整型量S, 它于一般整型量不同, 除初始化外,仅能通过两个标准的原子操作wait(S) 和 signal(S) 来访问. 很长时间以来,这两个操作一直被分别称为 P、V操作.

  2. 记录信号量

  3. AND 信号量

AND同步机制的基本思想:

​ 将进程在整个运行过程中需要的所有资源,一次性全部地分配给进程,待进程使用完后再一起释放

  1. 信号量集
2.4.4 信号量的应用
  1. 利用信号量实现进程互斥

    为使多个进程能互斥地访问某临界资源,只需为该资源设置一互斥信号量 mutex,并设置其初始值为1,然后将各进程访问该资源的临界区cs 置于wait (mutex)和signal (mutex) 操作之间即可.

  2. 利用信号量实现前趋关系

    设有两个并发执行的进程P1 和 P2 .P1中有语句S1;P2中有语句S2.希望在S1执行后再执行S2.

2.4.5 管程机制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值