操作系统学习-进程的描述与控制
文章目录
- 前言
- 前趋图和程序执行
- 进程的描述
- 定义和特征
- 进程的基本状态及转换
- 三种基本状态(内存中)
- 创建和终止状态(外存)
- 挂起操作
- 进程管理中的数据结构
- 进程控制
- 操作系统内核
- 进程的创建
- 进程的终止
- 进程的阻塞与唤醒
- 进程的挂起与激活
- 总结
前言
本博客仅做学习笔记,如有侵权,联系后即刻更改
科普:
前趋图和程序执行
- 前趋图
是有向无循环图
- 前趋关系
表示一个执行完成之前,另一个不能开始
- 程序顺序执行
特征
- 顺序性
- 封闭性
程序独占全机资源- 可再现性
程序重复执行,获得的结果相同
- 程序并发执行
前提
- 并发执行的操作不存在前趋关系
特征
- 间断性
- 失去封闭性
- 不可再现性
进程的描述
定义和特征
- 定义
进程控制块(Process Control Block)
- 程序的一次执行
- 程序及其数据在数据机上顺序执行的活动
- 具有独立功能的程序在一个数据集合运行的过程,是系统进行资源分配和调度的一个独立单位
- 特征
- 多态性
- 并发性
- 独立性
- 异步性
进程的基本状态及转换
三种基本状态(内存中)
- 就绪状态
- 执行状态
- 阻塞状态
三种基本状态的相互转换
创建和终止状态(外存)
创建步骤:
- 申请一个空白PCB,并向PCB中填写用于控制和管理进程的信息
- 然后为该进程分配运行时所必须的资源
- 把该进程转入就绪状态并插入就绪队列之中
终止步骤:
- 等待操作系统进行善后处理
- 将其PCB清零,并将PCB空间返还系统
五种基本状态的相互转换
挂起操作
- 引起挂起操作的原因
基于系统和用户的需求
- 终端用户的需要
- 父进程请求
- 负荷调节的需要
- 操作系统的需要
- 引入挂起原语操作
引入挂起原语Suspend和激活原语Active后,进程的转换类型
- 活动就绪→静止就绪
- 活动阻塞→静止阻塞
- 静止就绪→活动就绪
- 静止阻塞→活动阻塞
进程管理中的数据结构
- 操作系统中用于管理控制的数据结构
- 内存表
- 设备表
- 文件表
- 用于进程管理的进程表(进程控制块PCB)
- 进程控制块PCB的作用
(1) 作为独立运行基本单位的标志
(2) 能实现间断性运行方式
(3) 提供进程管理所需要的信息
(4) 提供进程调度所需要的信息
(5) 实现与其它进程的同步与通信
- 进程控制块中的信息
进程标识符
- 唯一地标识一个进程
- 外部标识符
为了方便用户(进程)对进程的访问- 内部标识符
为了系统对进程的访问处理机状态
- 也称为处理机的上下文,主要是由处理机的各种寄存器中的内容组成的
- 包括
①通用寄存器
②指令计数器
③程序状态字PSW
④用户栈指针进程调度信息
- 在OS进行调度时,必须了解进程的状态及有关进程调度的信息
- 包括
① 进程状态
② 进程优先级
③ 进程调度所需的其它信息
④ 事件进程控制信息
- 用于进程控制所必须的信息
- 包括
① 程序和数据的地址
② 进程同步和通信机制
③ 资源清单
④ 链接指针
- 进程控制块的组织方式
- 线性方式
每次查找时都需要扫描整张表,因此适合进程数目不多的系统- 链接方式
把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列- 索引方式
统根据所有进程状态的不同,建立几张索引表,并把各索引表在内存的首地址记录在内存的一些专用单元中、
进程控制
操作系统内核
- 支撑功能
- 中断处理
- 时钟管理
- 原语操作
原子操作是一个不可分割的基本单位
- 资源管理功能
- 进程管理
- 存储器管理
- 设备管理
进程的创建
- 进程的层次结构
在OS中,允许一个进程创建另一个进程
- UNIX中,进程与其子孙进程共同组成一个进程家族(组)
- 在Windows中不存在任何进程层次结构的概念,所有的进程都具有相同的地位
- 引起创建进程的事件
为使程序之间能并发运行,应先为它们分别创建进程
- 用户登录
- 作业调度
- 提供服务
- 应用请求
- 进程创建
- 申请空白PCB
为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB- 为新进程分配其运行所需的资源
包括各种物理和逻辑资源,如内存、文件、I/O设备和CPU时间等- 初始化进程控制块(PCB)
- 如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列
进程的终止
- 引起进程终止的事件
- 正常结束
- 异常结束
- 外界干预
- 进程的终止过程
如果系统中发生了要求终止进程的某事件,OS便调用进程终止原语,终止指定的进程
- 根据被终止进程的标识符
从PCB集合中检索出该进程的PCB,从中读出该进程的状态- 若被终止进程正处于执行状态
应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度- 若该进程还有子孙进程
还应将其所有子孙进程也都予以终止,以防它们成为不可控的进程- 将被终止进程所拥有的全部资源或者归还给其父进程,或者归还给系统
- 将被终止进程(PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息
进程的阻塞与唤醒
- 引起的事件
- 向系统请求共享资源失败
- 等待某种操作的完成
- 新数据尚未到达
- 等待新任务的到达
- 进程阻塞过程
阻塞是进程自身的一种主动行为
:进程通过调用阻塞原语block将自己阻塞
- 先立即停止执行
把进程控制块中的现行状态由“执行”改为阻塞- 并将PCB插入阻塞队列
- 进程唤醒过程
- 首先把被阻塞的进程从等待该事件的阻塞队列中移出
将其PCB中的现行状态由阻塞改为就绪- 然后再将该PCB插入到就绪队列中
进程的挂起与激活
- 进程的挂起
- 进程的激活过程
总结
小小励志
有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》
操作系统学习-进程的描述与控制相关推荐
- 『操作系统』 进程的描述与控制 Part2 进程同步
文章目录 2.4 进程同步 2.4.1 进程同步的基本概念 1.两种制约关系 2.临界资源 3.临界区 4.同步机制应遵循的规则 练习题 练习题 2.4.2 实现互斥的软硬件方法 算法1 算法2 算法 ...
- 『操作系统』 进程的描述与控制 Part 1 前驱图与程序执行
文章目录 2.1 前趋图和程序执行 2.1.1 程序的顺序执行及其特征 1. 程序的顺序执行 2.程序顺序执行时的特征 2.1.2 前趋图 2.1.3 程序的并发执行及其特征 1. 程序的并发执行 2 ...
- 【操作系统】进程的描述与控制(这知识它不进脑子啊~!)
文章目录 1 前驱图和程序执行 1.1 程序顺序执行 1.2 程序并发执行 2 进程的描述 2.1 进程的定义和特征 2.2 进程的基本状态及转换 2.3 挂起状态和进程状态的转换 2.4 进程管理中 ...
- 『操作系统』 进程的描述与控制 Part4 线程
文章目录 2.8 线程及其实现 1.线程的概念 练习题 2.线程的实现及控制 例题 练习题 2.8 线程及其实现 1.线程的基本概念 2.线程的实现及控制 引入进程 的目的: 使多个程序能并发执行,提 ...
- 『操作系统』 进程的描述与控制 Part3 管程
文章目录 2.6 管程 管程的基本概念 1.管程的组成 2.管程的主要特性 3.条件变量 4.管程的实现 5.管程和进程的异同点 练习题 2.7 进程通信 进程通信的类型 共享存储器系统 练习题 消息 ...
- 【408预推免复习】操作系统之进程的描述与控制
文章目录 1 进程的基本概念 2 进程控制与进程同步 3 经典进程同步问题 4 进程通信与线程 1 进程的基本概念 前趋图(Precedence Graph),是指一个有向无循环图,可记为DAG(Di ...
- 操作系统 第二章 进程的描述与控制(4)进程同步(重点)
计算机操作系统 读书笔记 第二章 进程的描述与控制 进程同步(重点) 计算机操作系统 前言 进程同步 一.进程同步的基本概念 1.1 两种形式的制约关系 1.2 临界资源(Critical Resou ...
- 模拟进程创建、终止、阻塞、唤醒原语_操作系统第二章--进程的描述与控制
操作系统第二章--进程的描述与控制 前趋图和程序执行 前趋图 前趋图是一个有向无循环图DAG,用来描述进程之间执行的前后关系 初始结点:没有前趋的结点 终止结点:没有后继的结点 重量:表示该结点所含有 ...
- 【操作系统】 第二章 进程的描述与控制
第二章 进程的描述与控制 2.1 什么是进程 程序代码+相关数据+程序控制块PCB 当处理器开始执行一个程序的代码时,称这个执行的实体为进程 2.1.1 进程和进程控制块PCB PCB(Process ...
最新文章
- Javascript--键盘事件的组合使用
- android 设置按钮高度,如何在本机android中设置按钮的高度
- python实现文件下载-Python实现HTTP协议下的文件下载方法总结
- 4.帧循环(游戏主循环),schedule
- 5行代码满分——L1-060 心理阴影面积 (5分)
- 边工作边刷题:70天一遍leetcode: day 97-2
- 【LSB】图片隐写文档大纲
- 朴素贝叶斯分类器python_朴素贝叶斯分类器及Python实现
- php 如何单独刷新模板,反馈一个x-admin模板的问题,点击左侧栏不会刷新右侧栏当前页面的问题,并提供解决方案。...
- 怎样在半个月内迅速提升技能,搞定面试进 大厂?
- 40线性映射07——线性变换的矩阵表示、线性变换与基的关系、线性变换坐标间的关系、线性变换在不同基下矩阵之间的关系、相似矩阵
- Swift - 动画效果的实现方法总结(附样例)
- 《PHP基础教程》pdf
- 单引号、双引号、倒引号
- Word与Excel展示Oracle BI Publisher页签
- 为cfree5 配置舒心的编译环境
- 微信小程序—火车票查询
- rust 飞天指令_rust腐蚀游戏指令 游戏命令大全
- 《学会提问》读书笔记
- 输入字体之间的间隔突然变大了