文章目录

  • 前言
  • 前趋图和程序执行
  • 进程的描述
    • 定义和特征
    • 进程的基本状态及转换
      • 三种基本状态(内存中)
      • 创建和终止状态(外存)
    • 挂起操作
    • 进程管理中的数据结构
  • 进程控制
    • 操作系统内核
    • 进程的创建
    • 进程的终止
    • 进程的阻塞与唤醒
    • 进程的挂起与激活
  • 总结

前言

本博客仅做学习笔记,如有侵权,联系后即刻更改

科普:


前趋图和程序执行

  1. 前趋图

是有向无循环图

  • 前趋关系
    表示一个执行完成之前,另一个不能开始
  1. 程序顺序执行

特征

  1. 顺序性
  2. 封闭性
    程序独占全机资源
  3. 可再现性
    程序重复执行,获得的结果相同
  1. 程序并发执行

前提

  • 并发执行的操作不存在前趋关系

特征

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

进程的描述

定义和特征

  1. 定义

进程控制块(Process Control Block)

  • 程序的一次执行
  • 程序及其数据在数据机上顺序执行的活动
  • 具有独立功能的程序在一个数据集合运行的过程,是系统进行资源分配和调度的一个独立单位
  1. 特征
  1. 多态性
  2. 并发性
  3. 独立性
  4. 异步性

进程的基本状态及转换

三种基本状态(内存中)

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

三种基本状态的相互转换

创建和终止状态(外存)

创建步骤:

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

终止步骤:

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

五种基本状态的相互转换

挂起操作

  1. 引起挂起操作的原因

基于系统和用户的需求

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

引入挂起原语Suspend和激活原语Active后,进程的转换类型

  1. 活动就绪→静止就绪
  2. 活动阻塞→静止阻塞
  3. 静止就绪→活动就绪
  4. 静止阻塞→活动阻塞

进程管理中的数据结构

  1. 操作系统中用于管理控制的数据结构
  • 内存表
  • 设备表
  • 文件表
  • 用于进程管理的进程表(进程控制块PCB)
  1. 进程控制块PCB的作用

(1) 作为独立运行基本单位的标志
(2) 能实现间断性运行方式
(3) 提供进程管理所需要的信息
(4) 提供进程调度所需要的信息
(5) 实现与其它进程的同步与通信

  1. 进程控制块中的信息

进程标识符

  • 唯一地标识一个进程
  • 外部标识符
    为了方便用户(进程)对进程的访问
  • 内部标识符
    为了系统对进程的访问

处理机状态

  • 也称为处理机的上下文,主要是由处理机的各种寄存器中的内容组成的
  • 包括
    ①通用寄存器
    ②指令计数器
    ③程序状态字PSW
    ④用户栈指针

进程调度信息

  • 在OS进行调度时,必须了解进程的状态及有关进程调度的信息
  • 包括
    ① 进程状态
    ② 进程优先级
    ③ 进程调度所需的其它信息
    ④ 事件

进程控制信息

  • 用于进程控制所必须的信息
  • 包括
    ① 程序和数据的地址
    ② 进程同步和通信机制
    ③ 资源清单
    ④ 链接指针
  1. 进程控制块的组织方式
  1. 线性方式
    每次查找时都需要扫描整张表,因此适合进程数目不多的系统
  2. 链接方式
    把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列
  3. 索引方式
    统根据所有进程状态的不同,建立几张索引表,并把各索引表在内存的首地址记录在内存的一些专用单元中、

进程控制

操作系统内核

  1. 支撑功能
  1. 中断处理
  2. 时钟管理
  3. 原语操作
    原子操作是一个不可分割的基本单位
  1. 资源管理功能
  1. 进程管理
  2. 存储器管理
  3. 设备管理

进程的创建

  1. 进程的层次结构

在OS中,允许一个进程创建另一个进程

  • UNIX中,进程与其子孙进程共同组成一个进程家族(组)
  • 在Windows中不存在任何进程层次结构的概念,所有的进程都具有相同的地位
  1. 引起创建进程的事件

为使程序之间能并发运行,应先为它们分别创建进程

  • 用户登录
  • 作业调度
  • 提供服务
  • 应用请求
  1. 进程创建
  1. 申请空白PCB
    为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB
  2. 为新进程分配其运行所需的资源
    包括各种物理和逻辑资源,如内存、文件、I/O设备和CPU时间等
  3. 初始化进程控制块(PCB)
  4. 如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列

进程的终止

  1. 引起进程终止的事件
  1. 正常结束
  2. 异常结束
  3. 外界干预
  1. 进程的终止过程

如果系统中发生了要求终止进程的某事件,OS便调用进程终止原语,终止指定的进程

  1. 根据被终止进程的标识符
    从PCB集合中检索出该进程的PCB,从中读出该进程的状态
  2. 若被终止进程正处于执行状态
    应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度
  3. 若该进程还有子孙进程
    还应将其所有子孙进程也都予以终止,以防它们成为不可控的进程
  4. 将被终止进程所拥有的全部资源或者归还给其父进程,或者归还给系统
  5. 将被终止进程(PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息

进程的阻塞与唤醒

  1. 引起的事件
  1. 向系统请求共享资源失败
  2. 等待某种操作的完成
  3. 新数据尚未到达
  4. 等待新任务的到达
  1. 进程阻塞过程

阻塞是进程自身的一种主动行为:进程通过调用阻塞原语block将自己阻塞

  • 先立即停止执行
    把进程控制块中的现行状态由“执行”改为阻塞
  • 并将PCB插入阻塞队列
  1. 进程唤醒过程
  • 首先把被阻塞的进程从等待该事件的阻塞队列中移出
    将其PCB中的现行状态由阻塞改为就绪
  • 然后再将该PCB插入到就绪队列中

进程的挂起与激活

  1. 进程的挂起
  2. 进程的激活过程

总结

小小励志

有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》

操作系统学习-进程的描述与控制相关推荐

  1. 『操作系统』 进程的描述与控制 Part2 进程同步

    文章目录 2.4 进程同步 2.4.1 进程同步的基本概念 1.两种制约关系 2.临界资源 3.临界区 4.同步机制应遵循的规则 练习题 练习题 2.4.2 实现互斥的软硬件方法 算法1 算法2 算法 ...

  2. 『操作系统』 进程的描述与控制 Part 1 前驱图与程序执行

    文章目录 2.1 前趋图和程序执行 2.1.1 程序的顺序执行及其特征 1. 程序的顺序执行 2.程序顺序执行时的特征 2.1.2 前趋图 2.1.3 程序的并发执行及其特征 1. 程序的并发执行 2 ...

  3. 【操作系统】进程的描述与控制(这知识它不进脑子啊~!)

    文章目录 1 前驱图和程序执行 1.1 程序顺序执行 1.2 程序并发执行 2 进程的描述 2.1 进程的定义和特征 2.2 进程的基本状态及转换 2.3 挂起状态和进程状态的转换 2.4 进程管理中 ...

  4. 『操作系统』 进程的描述与控制 Part4 线程

    文章目录 2.8 线程及其实现 1.线程的概念 练习题 2.线程的实现及控制 例题 练习题 2.8 线程及其实现 1.线程的基本概念 2.线程的实现及控制 引入进程 的目的: 使多个程序能并发执行,提 ...

  5. 『操作系统』 进程的描述与控制 Part3 管程

    文章目录 2.6 管程 管程的基本概念 1.管程的组成 2.管程的主要特性 3.条件变量 4.管程的实现 5.管程和进程的异同点 练习题 2.7 进程通信 进程通信的类型 共享存储器系统 练习题 消息 ...

  6. 【408预推免复习】操作系统之进程的描述与控制

    文章目录 1 进程的基本概念 2 进程控制与进程同步 3 经典进程同步问题 4 进程通信与线程 1 进程的基本概念 前趋图(Precedence Graph),是指一个有向无循环图,可记为DAG(Di ...

  7. 操作系统 第二章 进程的描述与控制(4)进程同步(重点)

    计算机操作系统 读书笔记 第二章 进程的描述与控制 进程同步(重点) 计算机操作系统 前言 进程同步 一.进程同步的基本概念 1.1 两种形式的制约关系 1.2 临界资源(Critical Resou ...

  8. 模拟进程创建、终止、阻塞、唤醒原语_操作系统第二章--进程的描述与控制

    操作系统第二章--进程的描述与控制 前趋图和程序执行 前趋图 前趋图是一个有向无循环图DAG,用来描述进程之间执行的前后关系 初始结点:没有前趋的结点 终止结点:没有后继的结点 重量:表示该结点所含有 ...

  9. 【操作系统】 第二章 进程的描述与控制

    第二章 进程的描述与控制 2.1 什么是进程 程序代码+相关数据+程序控制块PCB 当处理器开始执行一个程序的代码时,称这个执行的实体为进程 2.1.1 进程和进程控制块PCB PCB(Process ...

最新文章

  1. Javascript--键盘事件的组合使用
  2. android 设置按钮高度,如何在本机android中设置按钮的高度
  3. python实现文件下载-Python实现HTTP协议下的文件下载方法总结
  4. 4.帧循环(游戏主循环),schedule
  5. 5行代码满分——L1-060 心理阴影面积 (5分)
  6. 边工作边刷题:70天一遍leetcode: day 97-2
  7. 【LSB】图片隐写文档大纲
  8. 朴素贝叶斯分类器python_朴素贝叶斯分类器及Python实现
  9. php 如何单独刷新模板,反馈一个x-admin模板的问题,点击左侧栏不会刷新右侧栏当前页面的问题,并提供解决方案。...
  10. 怎样在半个月内迅速提升技能,搞定面试进 大厂?
  11. 40线性映射07——线性变换的矩阵表示、线性变换与基的关系、线性变换坐标间的关系、线性变换在不同基下矩阵之间的关系、相似矩阵
  12. Swift - 动画效果的实现方法总结(附样例)
  13. 《PHP基础教程》pdf
  14. 单引号、双引号、倒引号
  15. Word与Excel展示Oracle BI Publisher页签
  16. 为cfree5 配置舒心的编译环境
  17. 微信小程序—火车票查询
  18. rust 飞天指令_rust腐蚀游戏指令 游戏命令大全
  19. 《学会提问》读书笔记
  20. 输入字体之间的间隔突然变大了

热门文章

  1. 虹科案例|便携式光谱仪用于水质检测
  2. 如何利用微信做营销?
  3. 关于开原膝关节矫形器的说明
  4. 一文了解提权:溢出提权和第三方组件提权
  5. ”儿啊,你要努力,要是30多岁还像叔叔一样学习,我和你爸就要喝西北风了“...
  6. Android 常用开发框架
  7. 50页智慧园区数字化平台总体规划与建设方案
  8. Laravel 限流中间件 throttle 简析
  9. pageable设置size_Spring的Pageable分页剖析
  10. Pycharm启动慢、运行卡的解决办法