操作系统——进程管理(一)

2.1前趋图和程序执行

操作系统的特征之一是并发与共享,即在系统中(内存)同时存在几个相互独立的程序,这些程序在系统中及交叉的运行又要共享系统中的资源,这就会引起一系列的问题,包括:对资源的竞争、运行程序之间的通信、程序之间的合作与协同等。 要解决这些问题,用程序的概念已经不能描述程序在内存中运行的状态,必须引入新的概念——进程。

2.1.1前趋图

相关名词含义:
①前趋图:前趋图是一个有向无循环图(DAG),用于描述进程之间执行的前后关系。
②结 点 :描述一个程序段或进程,或一条语句。
③有向边:结点之间的偏序或前序关系“—>”。
例:
若(Pi,Pj) ∈ —>,即为Pi —> Pj,则Pi 是Pj的直接前趋,Pj是Pi的直接后继。

2.1.2程序的顺序执行

1、程序的顺序执行:
一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种程序执行的方式就称为程序的顺序执行。
2、程序顺序执行时的特征:
(1)顺序性
处理机的操作严格按照程序所规定的顺序执行。
(2)封闭性
程序一旦开始执行,其计算结果不受外界因素的影响。
(3)可再现性
程序执行的结果与它的执行速度无关(即与时间无关),只与初始条件有关。

2.1.3程序的并发执行

1、程序的并发执行是指两个或多个事件在同一时间间隔内发生。
2、程序并发执行时的特征:
(1)间断性
再多道程序设计的环境下,程序的并发执行以及为完成一项任务而相互合作,这些程序之间要共享系统的资源,形成了相互制约的关系。相互制约导致并发程序具有“执行——暂停——执行”这种间断性的活动规律。
(2)失去封闭性
程序在并发执行时系统的资源状态由多道程序来改变,程序运行失去封闭性。一个程序的运行会受到其他程序的影响。
(3)不可再现性
程序在并发执行时,多次运行初始条件相同的同一程序会得出不同的运行结果。
(例如:共享公共变量的两个程序,他们执行时可能会产生不同的结果)

2.2进程的描述

2.2.1进程的特征和定义

在多道程序设计的环境下,为了描述程序在计算机系统内的执行情况,必须引入新的概念——进程。
1、进程的定义:程序关于某个数据集合的一次执行过程。
进程的其他定义:
①Dijkstra:行为的一个规则叫做程序,程序在处理机上执行时所发生的活动称为进程。
②Donovan:晋城市这样的计算部分,它是可以和其它计算并行的一个计算。
③Alan.C.Shaw:进程(有时称为任务)是一个程序与其数据易到通过处理机的执行所发生的活动。
④Ken Thompson and Dennis Ritchie:进程是执行中的程序。
2、进程的特征(与程序比较)
1)结构特征
进程控制块(PCB) + 程序 + 数据 = 进程实体
2)动态性(最基本的特征)
进程:进程实体的一次执行过程,有生命周期。
程序:程序是一组有序指令的集合,是静态的概念。
3)并发性
4)独立性(独立分配资源单位、独立执行单位、独立调度单位)
5)异步性
进程按各自独立的、不可预知的速度向前推进。

2.2.2进程的三种基本状态

1、就绪状态(已经在内存中)(万事俱备只欠CPU)
进程已获得除CPU之外的所有必需的资源,一旦得到CPU控制权,立即可以运行。
2、运行状态(在内存中)
进程已获得运行时所必需的资源,它的程序正在处理机上执行。
3、阻塞状态(在内存中)
正在执行的进程由于发生某事件而暂时无法执行时,便放弃处理机而处于暂停状态,称该进程处于阻塞状态或等待状态。
4、进程三种状态以及各状态之间的转换关系:
在这里插入图片描述
注:①阻塞状态的进程缺少CPU和其他资源(如:打印机、扫描仪)
②阻塞状态的进程不能直接转换到执行状态,只能到就绪状态
③处于阻塞状态的进程按照阻塞原因划分为若干阻塞队列,每个阻塞队列中的进程可以不止一个。

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

1、挂起:挂起就是把进程从内存移到外存。
2、引起挂起状态的原因:
①终端用户的请求②父进程请求③负荷调节的需要④操作系统的需要
3、进程状态的转换:
引入挂起状态后,增加了挂起状态(静止状态)到非挂起状态(活动状态)的转换,或者相反(非挂起状态到挂起状态)。
4、五状态图:
在这里插入图片描述
五状态之间的转换:
在这里插入图片描述

2.2.4进程管理中的数据结构

1、进程控制块(PCB)的作用,为什么说PCB是进程存在的唯一标志?
①PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。
②PCB的作用:它是进程管理和控制的最重要的数据结构,使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程。在创建时,建立PCB,并伴随进程运行的全过程,直到进程撤消而撤消,是进程存在的唯一标志。
③原 因:在进程的整个生命周期中,系统总是通过其PCB对进程进行控制,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志。
2、进程控制块中的信息
1)进程标示符
每个进程都必须由一个唯一的标识符。
内部标示符(操作系统用的) 外部标示符(用户用的)
2)处理机状态
处理机状态信息主要由处理机的各种寄存器中的内容组成。处理机运行时的信息存放在寄存器中,当被中断时这些信息要存放在PCB中。
通用寄存器、指令计数器、程序状态字 PSW、用户栈指针
3)进程调度信息
进程状态、进程优先级、进程调度所需的其他信息、事件
4)进程控制信息
程序和数据的地址、进程通信和同步机制、资源清单、链接指针
3、进程控制块的组织方式
1)线性方式
2)链接方式
把具有同一状态的PCB用其中的链接字链接成一个队列。就绪队列;若干个阻塞队列。
在这里插入图片描述
3)索引方式
系统根据所有进程的状态建立记几张索引表,把各表的内存首地址记录在内存的专用单元中。索引表的表目中记录了相应状态的某个PCB在PCB表中的地址。
在这里插入图片描述

2.3进程控制

2.3.1进程的创建

1、进程图
描述进程的家族关系的有向树在这里插入图片描述
2、引起创建进程的事件
多道程序环境中,只有进程才能在系统中运行。
①用户登录 ②作业调度 ③提供服务 ④应用请求
3、进程的创建
操作系统发现要求创建新进程的事件后,调用进程创建原语Creat()创建进程。
进程创建的过程:申请空白PCB——>为新进程分配资源——>初始化进程控制块——>将新进程插入就绪队列

2.3.2进程的终止

1、引起进程终止的事件
1)正常结束
2)异常结束(越界错误;非法指令 等)
3)外界干预(操作员或操作系统干预;父进程请求;父进程终止)
2、进程的终止过程:
找出被终止进程的PCB——>若进程状态为运行态,置CPU调度标志为真——>若其有子孙进程,终止其子孙进程并回收其资源——>回收终止进程的资源——>回收终止进程的PCB

2.3.3进程的阻塞与唤醒

1、引起进程阻塞和唤醒的事件
①请求系统服务②启动某种操作③新数据尚未到达④无新工作可做
2、进程阻塞过程
调用阻塞原语阻塞自己——>将PCB中的状态改为阻塞,并加入阻塞队列——>转进程调度
3、进程唤醒过程(阻塞进程等待的事件发生,有关进程调用唤醒原语唤醒等待该事件的进程)
把阻塞进程从等待该事件的阻塞队列中移出——>置进程状态为就绪态,将PCB插入到就绪队列中。
阻塞原语与唤醒原语作用相反,成对使用

2.3.4进程的挂起与激活

1、进程的挂起过程(当出现引起进程挂起的事件时,系统利用挂起原语将指定进程或处于阻塞的进程挂起)
检查被挂起进程的状态:
若处于活动就绪,则改为静止就绪;若处于活动阻塞,则改为静止阻塞;若挂起的进程正在执行,则重新进行进程调度。
2、进程的激活过程(当发生激活进程的事件时,系统利用激活原语将指定进程激活)
1)激活原语先将进程从外存调入内存;
2)检查该进程的状态:若为静止就绪,则改为活动就绪;若处于静止阻塞,则改为活动阻塞。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FF小迷糊吖~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值