进程的描述与控制(一)

目录

一、前驱图和程序执行

1.程序的顺序执行及其特征

(1)程序的顺序执行

(2)程序顺序执行时的特征

2.前驱图

3.程序的并发执行及其特征

(1)程序的并发执行

(2)程序并发执行的特征

4.进程

(1)定义

(2)特征(与程序比较)

(3)进程的三种基本状态

(4)挂起状态

①引起挂起状态的原因

②进程的状态转换

二、进程的描述

1.进程控制块PCB

(1)进程控制块的作用

(2)PCB中的信息

(3)PCB组织方式

①链接方式

②索引方式

 三、进程控制

1.进程的创建

(1)进程图

(2)进程的创建

2.进程的终止

3.进程的阻塞与唤醒

(1)阻塞

(2)唤醒

4.进程的挂起与激活

(1)挂起

(2)激活


一、前驱图和程序执行

1.程序的顺序执行及其特征

(1)程序的顺序执行

一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种程序执行的方式称为程序的顺序执行

70e1525e77f34a3e97f4ff7fbf813030.png

例:在进行计算时,首先输入用户的程序和数据Input,然后进行计算Caculate,最后打印计算结果Print

1f3158fa7f7c49a2975390c2ea1e2516.png

(2)程序顺序执行时的特征

顺序性

处理的操作严格按照程序所规定的顺序执行

封闭性

程序一旦开始执行,其计算结果不受外界因素的影响【程序运行时独占全机资源,资源的状态只有本程序才能改变,比如程序要执行打印操作,申请打印机,将打印机状态由空闲变为忙碌;同样变、量-a这个资sdwqa        qwedfghjkli、

只要程序执行时的环境和初始条件相同,当程序重复执行时,都可获得相同的结果【比如1+1无论是今天做还是明天做结果都为1】

顺序执行的效率太慢了,必须按照指令的顺序一条一条地运行,执行每一条指令的过程中对资源的利用率并不是很好,可能在执行这条指令的过程中其他资源是空闲的,这些资源又不能为下一条指令服务,必然出现资源的浪费,计算机单位时间内处理的指令数目或任务数目没有那么多,吞吐量不高

2.前驱图

前驱图是一个有向无环图,用于描述进程之间执行的前后关系

结点:表示一个程序段或进程,或一条语句

有向边:结点之间的偏序或前驱关系

fa67c8ddc78c4372b0cc55dc0750175f.png

描述下图

aef8825aa4b3475eaf22d158cb8a41e4.png

b0681f24810349c9a261ac3a227afb49.png

重量:结点重量指的是结点的程序段执行所要花费的时间,这个程序段所包含的指令越多,它执行的时间越长 

3.程序的并发执行及其特征

(1)程序的并发执行

例:在系统中有n个作业,每个作业都有3个处理步骤:输入数据、处理、输出结果,即eq?I_%7Bi%7Deq?C_%7Bi%7Deq?P_%7Bi%7D(i=1,2,3……,n)

93fbf3960912450db1b388d7890420aa.png

  eq?I_%7B1%7Deq?C_%7B1%7Deq?P_%7B1%7D的执行必须严格按照顺序执行,而因为输入使用键盘、计算使用cpu、输出使用打印机,使用不同的资源,所以可以在同一时间间隔内执行不同作业的不同步骤,eq?C_%7B1%7Deq?I_%7B2%7Deq?P_%7B1%7Deq?C_%7B2%7Deq?I_%7B3%7D是可以同时执行的

 又如:4个程序段

ac7cb8bf7f6341898a7b499b174ea3fc.png

S3 必须在 a 和 b 被赋值后方能执行; S4 必须在 S3 之后执行;但 S1 和 S2 则可以并发执行,因为它们彼此互不依赖。

(2)程序并发执行的特征

这是书上一个错误,并发执行的应该是进程,因为程序装入内存,创建进程,进程执行 

间断性

在多道程序设计的环境下,程序的并发执行,以及为完成一项任务而相互合作,这些程序之间要共享系统的资源,形成了相互制约的关系

导致并发程序具有“执行-暂停-执行”这种间断性的活动规律

失去封闭性

程序在并发执行时,系统的资源状态由多道程序来改变,程序运行失去封闭性,程序的运行受到其他程序的影响

例:打印机资源的状态可以由多道程序改变

不可再现性

程序在并发执行时,多次运行初始条件相同的同一程序会得出不同的运行结果。

例:共享公共变量的两个程序,它们执行时可能产生不同结果

de0c3135f8a342e3a156bc1e337e29b8.png

如果先执行程序B在执行程序A ,则打印0;如果先执行程序A在执行程序B ,则打1,产生不同的结果

可以用进程来解决程序并发执行时依然具有可再现性

4.进程

(1)定义

进程是程序关于某个数据集合的一次执行过程

行为的一个规则叫做程序,程序在处理机上执行时所发生的活动称为进程

进程(有时称为任务)是一个程序与其数据一道通过处理机的执行所发生的活动

进程是执行中的程序

(2)特征(与程序比较)

结构特征

进程控制块(PCB)+程序+数据=进程实体

PCB是控制和管理进程所需资源和信息的数据结构【查询pcb知道进程需要哪些资源】,唯一标识进程,随着进程的创建而产生,调度而执行,撤销而灭亡

播放音乐时程序就是暴风软件,数据就是音乐文件

动态性——最基本特征

进程:进程实体的一次执行过程,有生命周期【厨师炒菜】

程序:程序是一组有序指令的集合,是静态的概念【菜单】

并发性

程序只能顺序执行

独立性

独立运行、独立分配资源、独立接受调度

异步性

进程按各自独立的、不可预知的速度向前推进

(3)进程的三种基本状态

就绪状态

进程已获得除CPU之外所有必需资源,一旦得到CPU控制权立即可以运行

运行状态

进程已获得运行所必需的资源,它正在处理机上执行

阻塞状态

正在执行的进程由于发生某事件(如申请打印操作)而暂时无法执行时,便放弃处理机而处于暂停状态,称该进程处于阻塞状态或等待状态

54e925cda64749479a347ec0d86e758e.png

【题目】

1.下列选项中,会导致进程从执行态变为就绪态的事件是 ( )

A. 执行 P 操作
B. 申请内存失败
C. 启动 I/O 设备
D. 被高优先级进程抢占
 
2.下列选项中,可能导致当前进程 P 阻塞的事件是 ( ) 。
A. 进程 P 申请临界资源
B. 进程 P 从磁盘读数据
C. 系统将 CPU 分配给高优先权的进程
D. 上述答案都对
 
1.D

2.AB

(4)挂起状

挂起就是把进程从内存放到外存的操作,为了释放更多的内存空间,让更多的进程得以创建得以执行

①引起挂起状态的原因

  • 终端用户的请求:程序员编号一段程序,想要修改这个程序,这个程序暂时不需要执行
  • 父进程请求:父进程将子进程挂起
  • 负荷调节的需要:计算机负载重,将不重要资源挂起
  • 操作系统的需要:操作系统需要执行一个挂起操作

②进程的状态转换

 引入挂起状态后,增加了挂起状态(静止状态)到非挂起状态(活动状态的转换),或者相反

c1a03378eb0f41a08d4a59452890a6e2.png

二、进程的描述

1.进程控制块PCB

(1)进程控制块的作用

存放进程管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据机构,在创建时,建立PCB,并伴随进程运行的全过程,直到进程撤销而撤销

  • PCB就像我们的户口
  • PCB是进程存在的唯一标志

系统的所有PCB组织成链表或队列,常驻内存的PCB区

 创建一个进程实质上是创建进程实体当中的PCB,撤销进程实际上是撤销进程实体中的PCB;要到内存PCB区找到这个进程的PCB,才能去执行这个进程

 (2)PCB中的信息

①进程标识符

一个进程通常有两种标识符:外部标识(为了方便用户(进程)对进程的访问,如consumer)、内部标识(为了系统对进程的访问,一串数字)

②处理机状态

主要由处理机的各种寄存器中的内容组成。处理机运行时的信息存放在寄存器中,当被中断时这些信息要存放在PCB中

例如:有一个计算1到100之和的程序,执行该程序对应进程时,时间片到了,需要保存当前计算到的位置并把中间结果保存下来

③进程调度信息

  • 进程状态(获取进程状态,方知进程接下来要处于什么状态)
  • 进程优先级(进程调度依据)
  • 进程调度所需的其他信息(如进程执行需要100ms,已经执行了50ms,提供该信息)
  • 事件(什么原因而阻塞)

④进程控制信息

  • 程序和数据的地址(进程执行所需数据的位置)
  • 进程通信和同步机制(用消息队列实现进程的通信,使用信号量实现同步机制)
  • 资源清单(进程执行需要哪些资源)
  • 链接指针(进程并发执行,执行完这个进程要告知下一个要执行进程的pcb首地址)

(3)PCB组织方式

内存里有数百个、数千个进行,相应也有数百个、数千个pcb,为了对他们加以有效管理,用相应的方式将这些PCB组织起来

①链接方式

把具有同一状态的PCB用其中的链接字链接成一个队列

  • 就绪队列【按照优先级高低将就绪状态进程的pcb从高到低进行排列】
  • 若干个阻塞队列【根据阻塞原因分成若干个队列】

6fb049e228c1402bbe24a8a4b411351e.png

②索引方式

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

索引表的表目中记录了相应状态的某个PCB在PCB表中的地址

2daebbfb3aae4817bf083908f735948e.png

 三、进程控制

进程控制是对系统中全部进程实施有效的管理,包括进程创建、终止、进程阻塞和唤醒

1.进程的创建

(1)进程图

描述进程的家族关系的有向树

06bfdc92dcfa41c6b7042cd2478602dc.png

撤销进程时,要检查该进程是否有子进程,撤销所有子进程,并回收他们所拥有的所有资源

 (2)进程的创建

操作系统发现要求创建新进程的事件后,调用进程创建原语Creat()创建新进程

原语是由若干条指令组成,能够完成一定功能的程序段

事件有以下4类——

用户登录:如分时系统有很多终端用户,每个用户都想登录到系统中,当一个用户一旦登录了,他就要创建一个进程,这个进程为这个用户提供服务

作业调度:从外存后备队列中选中若干个作业,创建到内存的过程就是创建进程及为他们分配内存资源的过程

提供服务:想要打印就要创建一个打印进程,通过os调度这个进程,然后分配打印机资源来完成打印任务

应用请求

进程的创建过程:

申请空白PCB——>为新进程分配资源——>初始化进程控制块【填写PCB数据内容的过程,如记录当前处理器的状态、这个进程所拥有的资源、进程的优先级】——>将新进程插入就绪队列

2.进程的终止

引起进程终止的事件

  • 正常结束
  • 异常结束:越界错误、非法指令
  • 外界干预:操作员或操作系统干预;父进程请求;父进程终止

进程的终止过程:

找出被终止进程的PCB——>若进程状态为运行态,置CPU调度标志为真——>若其有子孙进程,终止其子孙进程并回收其他资源——>回收终止进程的资源——>回收终止进程的PCB

3.进程的阻塞与唤醒

(1)阻塞

引起进程阻塞的事件

  • 请求系统服务(打印机服务)
  • 启动某种操作(I/O操作)
  • 新数据尚未到达
  • 无新工作可做

进程阻塞过程:

调用阻塞原语阻塞自己——>将PCB中的状态改为阻塞,并加入阻塞队列——>转进程调度

(2)唤醒

阻塞进程等待的事件发生,有关进程调用唤醒原语wakeup()唤醒等待该事件的进程

把阻塞进程从等待该事件的阻塞队列中移出——>置进程状态为就绪态,将PCB插入到就绪队列中

阻塞原语与唤醒原语作用相反,成对使用

4.进程的挂起与激活

(1)挂起

当出现引起进程挂起的事件时,系统利用挂起原语suspend()将指定进程或处于阻塞的进程挂起

进程的挂起过程——

检查被挂起进程的状态:

  • 若处于活动就绪,则改为静止就绪
  • 若处于活动阻塞,则改为静止阻塞
  • 若挂起的进程正在执行,则重新进行进程调度

(2)激活

当发生激活进程的事件时,系统利用激活原语active()将指定进程激活

进程的激活过程——

Ⅰ激活原语先将进程从外存调入内存

Ⅱ检查该进程的状态:

  • 若为静止就绪,则改为活动就绪
  • 若为静止阻塞,则改为活动阻塞

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值