DJ2-2 进程管理
创始人
2025-05-28 14:15:28

目录

2.3  进程控制

2.3.1  操作系统内核

2.3.2  进程的创建

2.3.3  进程的终止

2.3.4  进程的阻塞与唤醒

2.3.5  进程的挂起与激活


2.3  进程控制

进程控制是用于创建一个新进程,终止一个已完成的进程,或去终止一个因出现某事件而使其无法运行下去的进程,还负责进程运行中的状态转换。

进程控制一般是由 OS 的内核中的原语(Primitive)来实现的。

2.3.1  操作系统内核

OS 内核——常驻内存。

  • 与硬件紧密相关的模块(中断处理)
  • 常用设备驱动、运行频率高的模块(时钟管理、进程调度)

OS 内核包含两大功能:

  • 支撑功能
  • 资源管理功能

2.3.2  进程的创建

1. 进程的层次结构

  • 父进程
  • 子进程:可以继承父进程所拥有的资源

2. 进程图(process graph)

进程图是用于描述一个进程的家族关系的有向树。

  • 子进程可以继承父进程所拥有的资源。
  • 当子进程被撤消时,应将其从父进程那里获得的资源归还给父进程。
  • 在撤消父进程时,也必须同时撤消其所有的子进程。

3. 引起进程创建的事件

导致一个进程去创建另一个进程的典型事件,可有以下四类:

  • 用户登录(如:从终端登录到主机)
  • 作业调度(如:挑选作业来执行)
  • 提供服务(如:C/S、B/S)
  • 应用请求

4. 进程的创建过程

调用进程创建原语 Creat() 按下述步骤创建一个新进程:

1)申请空白 PCB  

2)为新进程分配资源(挂到 PCB 上)

3)初始化进程控制块 PCB,包括:

  • 初始化标识信息
  • 初始化处理机状态信息
  • 初始化处理机控制信息

4)将新进程插入就绪队列

2.3.3  进程的终止

1. 引起进程终止的事件

1)正常结束:批处理中用 Holt 指令,分时中用 Logs off 指令。

2)异常结束:

本进程运行中出现了异常事件。

  1. 越界错误。存储区
  2. 保护错。写一个只读文件(权限)
  3. 非法指令。执行一条不存在的指令(指令集)
  4. 特权指令错。用户访问只允许 OS 执行的指令
  5. 运行超时。(防止资源浪费或骗取权限)
  6. 等待超时。
  7. 算术运算错。被 0 除(除以 0)
  8. I/O 故障

OS 是无法预先判断一个作业需要运行多长时间的。

3)外界干预

并非指本进程运行中出现了异常事件,而是指进程为响应外界请求而终止运行。

  1. 操作员或操作系统干预
  2. 父进程请求终止该进程
  3. 当父进程终止时,OS 也将终止其所有子孙进程

2. 进程的终止过程

1)根据被终止进程的标识符 ID,从 PCB 集合中检索出该进程的 PCB,从中读出该进程的状态。

2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为 true,用于指示该进程被终止后应重新进行调度。

3)若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防它们成为不可控的进程。

级联地终止,防止孤儿进程的出现。

4)将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。

5)将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息。

2.3.4  进程的阻塞与唤醒

1. 引起进程阻塞的事件

1)请求系统服务:进程提出 I/O 服务请求且不能被立即满足时,转变为阻塞状态来等待。

2)启动某种操作:当进程启动某种操作后,在该操作完成之后才能继续执行

3)新数据尚未到达:对于相互合作的进程而言。

4)无新工作可做(如发送进程)

为了防止 CPU 空转,进程自己把自己阻塞,有新工作时再唤醒。

2. 进程的阻塞过程

1)正在执行的进程,当发现上述某事件时,由于无法继续执行,于是进程便通过调用阻塞原语 block( ) 把自己阻塞。

2)把进程控制块中的现行状态由执行改为阻塞,并将 PCB 插入阻塞队列。

3)转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换。

3. 进程的阻塞与唤醒

当被阻塞进程所期待的事件出现时,则由有关进程(如:用完并释放了该 I/O 设备的进程)调用唤醒原语 wakeup(),将等待该事件的进程唤醒。

4. 进程的唤醒过程

1)首先把被阻塞的进程从等待该事件的阻塞队列中移出,将其 PCB 中的现行状态由阻塞改为就绪。

2)然后再将该 PCB 插入到就绪队列中。

2.3.5  进程的挂起与激活

1. 进程的挂起过程

当出现了引起进程挂起的事件时,系统将利用挂起原语 suspend() 将指定进程挂起。

suspend() 的执行过程是:

首先检查被挂起进程的现行状态

  • 若处于活动就绪状态,则将其改为静止就绪状态;
  • 若对于活动阻塞状态,则将之改为静止阻塞状态。

2. 进程的激活过程

当发生了激活进程的事件时,则可将在外存上处于静止就绪状态的进程换入内存,系统再利用激活原语 active() 将指定进程激活。

active() 的执行过程是:

首先将进程从外存调入内存,检查该进程的现行状态

  • 若处于静止就绪状态,则将其改为活动就绪状态;
  • 若对于静止阻塞状态,则将之改为活动阻塞状态。

相关内容

热门资讯

第一章:职场入门:程序员如何开... 作为一名Java程序员,我们深知在当今激烈的市场竞争中,如何开始职业生涯是至关重要的。本章将从多个方...
C语言:文件的读写(fputc... 近段时间,在重新学习一下C语言程序设计,学习到了文件读写这一章节,觉得这方面的知识较复杂,于是把其中...
清华大学土木工程系包含哪些专业... 今天给各位分享清华大学土木工程系包含哪些专业的知识,其中也会对清华大学土木工程系包含哪些专业课程进行...
秦国卫鞅怎么死的(卫鞅最后有没... 今天给各位分享秦国卫鞅怎么死的的知识,其中也会对卫鞅最后有没有娶秦国公主进行解释,如果能碰巧解决你现...
美利达车架号(美利达车架号能查... 今天给各位分享美利达车架号的知识,其中也会对美利达车架号能查出什么信息进行解释,如果能碰巧解决你现在...
马杀鸡什么意思(日语马杀鸡什么... 本篇文章极速百科给大家谈谈马杀鸡什么意思,以及日语马杀鸡什么意思对应的知识点,希望对各位有所帮助,不...
一次 JVM 类加载异常 文章目录1. JVM 类加载异常1. 出现问题2. 解决过程1. JDK 7 版本过老2. JDK ...
Button(按钮)与Imag... 今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton...
vue子组件无法根据prop属... 问题描述 在vue中,有一个父组件和一个子组件,在父组件里有一个变量&#...
雪佛兰SPARK是什么车?SP... 今天给各位分享雪佛兰SPARK是什么车?SPARK现在还有卖吗的知识,其中也会对2020雪佛兰spa...
全世界最贵的跑车(全世界最贵的... 今天给各位分享全世界最贵的跑车的知识,其中也会对全世界最贵的跑车是啥进行解释,如果能碰巧解决你现在面...
e哥什么意思(e哥是谁啊) e... 今天给各位分享e哥什么意思的知识,其中也会对e哥是谁啊进行解释,如果能碰巧解决你现在面临的问题,别忘...
推荐国内十大品牌润滑油(国内知... 今天给各位分享推荐国内十大品牌润滑油的知识,其中也会对国内知名品牌润滑油进行解释,如果能碰巧解决你现...
前端性能优化之HTTP缓存 前端缓存 前端缓存可分为两大类:HTTP 缓存和浏览器缓存。 我们今天重点是 HTTP...
Linux 端口号占用如何处理 在Linux中,可以使用以下命令来查看端口号的占用情况: sudo ne...
再探pytorch的Datas... 本文从分类、检测、分割三大任务的角度来剖析pytorch得dataset和dataloader源码&...
电影最爱剧情详细介绍,最爱电影... 电影最爱剧情详细介绍目录电影最爱剧情详细介绍最爱电影剧情最爱这部电影讲述的是啥情节电影最爱剧情详细介...
公斤力什么单位(公斤力等于多少... 今天给各位分享公斤力什么单位的知识,其中也会对公斤力等于多少公斤进行解释,如果能碰巧解决你现在面临的...
汽车压缩比是什么意思(汽车压缩... 今天给各位分享汽车压缩比是什么意思的知识,其中也会对汽车压缩比的定义进行解释,如果能碰巧解决你现在面...
小巧实惠又时尚7款市场在售微型... 本篇文章极速百科给大家谈谈小巧实惠又时尚7款市场在售微型电动车,以及微型电动车推荐对应的知识点,希望...
cdn服务器搭建步骤 CDN服务器是现代网络中不可或缺的一部分,其可以大大提高网站的访问速度和用户体验。许多...
Go项目(分布式事务) 文章目录简介分布式事务CAPBASE常见方案 简介 目前,项目的主要代码已经开发完毕&...
leetcode每日一题:45... 系列:贪心算法 语言:java 题目来源:Leetcode...
差速器工作原理是什么(差速器工... 本篇文章极速百科给大家谈谈差速器工作原理是什么,以及差速器工作原理是什么意思对应的知识点,希望对各位...
幸福花园纤细的爱故事内容是什么... 幸福花园纤细的爱故事内容是什么 目录幸福花园纤细的爱故事内容是什么 幸福花园有几部求幸福花园的第二个...
hisuite是什么 ,HiS... hisuite是什么 目录hisuite是什么 HiSuite什么意思?honest是什么意思“hi...
烈火战车刘德华骑的摩托是什么车... 本篇文章极速百科给大家谈谈烈火战车刘德华骑的摩托是什么车是P3还是P4,以及烈火战车中刘德华骑的是什...
Linux命令·diff diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是...
2021蓝桥杯真题公约数(填空... 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果...
智能马桶杀菌以及光传感方案 智能马桶杀菌模组,安装在马桶改版底部,实现座垫区域消毒、池内消毒、臀洗喷...