前驱图和程序执行、进程的描述

1. 前驱图

为了更好的描述程序的顺序和并发执行情况,前驱图可以帮助我们了解程序执行的前后顺序的前驱图(有向无循环DAG)

2. 程序顺序执行

2.1 程序的顺序执行

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

2.2 程序顺序执行时的特征

  1. 顺序性
  2. 封闭性
  3. 可再现性

3. 程序的并发执行

程序的顺序执行,虽然可以给程序员带来方便,但是系统资源利用率却很低。为此在系统中引入了多道程序技术,使程序或程序段间能并发执行。只有在不存在前驱关系的程序之间才可能并发执行,否则无法并发执行。

3.1 程序并发执行时的特征

  1. 间断性
  2. 失去封闭性
  3. 不可再现性

4. 进程的定义和特征

4. 1 进程的定义

进程是进程实体(程序段+相关数据+PCB(程序控制块))的运行过程,时系统进行资源分配和调度的一个独立的工作单位

4.2 进程的特征

  1. 动态性
  2. 并发性
  3. 独立性
  4. 异步性

5. 进程的基本状态及转换

5.1 进程的三种基本状态

  1. 就绪
  2. 执行
  3. 阻塞

5.2 三种基本状态的转换

进程在运行过程中经常会发生状态的转换。处于就绪状态,在调度程序为之分配了处理机之后便可执行,相应地,其状态从就绪状态转变为执行状态,正在执行的进程如果因为分配给它的时间片已完成而被剥夺处理机暂停执行时,其状态由执行转换为就绪,如果因为发生某事件,致使当前进程的执行受阻(进程访问临界资源而该资源正在被其他进程使用),使得无法继续执行,则将进程状态由执行转变为阻塞。

5.3 创建状态和终止状态

  • 创建状态
  1. 首先由进程申请一个空白的PCB,并向PCB中填写用于控制和管理进程的信息
  2. 然后为该进程分配运行时所必需的资源
  3. 把该进程转入就绪状态并插入就绪队列中

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

  • 终止状态
  1. 等待操作系统进行善后处理
  2. 最后将其PCB清零,并将PCB空间返还系统

进入终止状态的进程以后不能再执行,但是操作系统中依然保留了一个记录,其中保存的状态码和一些计时统计数据,供其他进程收集

6. 挂起操作和进程状态的转换

6.1 挂起操作的引入

  1. 终端用户的需要
  2. 父进程请求
  3. 负荷调节的需要
  4. 操作系统的需要

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

引入挂起原语Suspend和激活Active后的几种状态

  • 活动就绪-> 静止就绪 从可被调度执行变为不接受调度执行
  • 活动阻塞-> 静止阻塞 处于该状态后的进程在其所期待的事件出现后,他将从静止阻塞变为静止就绪
  • 静止就绪->活动就绪 处于Readya状态的进程使用Active激活后该进程变为Readya状态
  • 静止阻塞->活动阻塞 处于Blockeds状态的进程若用激活原语Active激活后,进程转变为Blockeda状态。

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

  1. NULL-创建
  2. 创建-活动就绪
  3. 创建-静止就绪
  4. 执行-终止

7. 进程管理中的数据结构

7.1 操作系统中用于管理和控制的数据结构

计算机系统中对于每个资源和进程都设置了一个数据结构,用于表征其实体,我们称之为资源信息表或进程信息表,其中包含了资源或进程的标识、描述、状态等信息以及一批指针。OS管理这些数据结构一般分为四类:内存表、设备表、文件表和用于进程管理的进程表(进程控制块PCB)

7.2 进程控制块PCB的作用

PCB作为进程实体的一部分,记录了操作系统所需要的,用于描述进程当前情况以及管理进程运行全部信息,是操作系统中重要的记录型数据结构。

7.3 进程控制块中的信息

  1. 进程标识符
    • 外部标识符
    • 内部标识符
  2. 处理机状态

处理机的各种寄存器内容组成:通用寄存器、指令计数器、程序状态字PSW、用户栈指针。

  1. 进程调度信息

进程状态、进程优先级、进程调度所需要的其他信息、事件

  1. 进程控制信息

程序和数据的地址、进程同步和通信机制、资源清单、链接指针

7.4 进程控制块的组织方式

  1. 线性方式

将系统中所有的PCB组织起来放在同一张线性表中、将该表的首地址存放在内存的一个专用区域中。特点:实现简单、开销小 缺点:每次查找时都需要扫描整表,因此适合进程数不多的系统。

  1. 链接方式

把具有相同状态的PCB分别通过PCB中链接字链接成一个队列

  1. 索引方式

系统根据所有进程状态的不同,建立几张索引表,并把各索引表在内存的首地址记录在内存的一些专用单元中。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李同学va

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值