操作系统之进程 (五) --- 进程、进程实体、PCB...

2023-05-16

文章目录

  • 进程
    • 什么叫进程
    • 什么叫进程实体
    • 进程与进程实体的关系
      • PCB的存储信息与分类
    • 进程的组织方式
      • 链接方式
      • 索引方式
    • 进程的特征
    • 总结
    • 感谢

进程

什么叫进程

进程和程序差不多,他们有所联系也有所区别。
我们以我们熟悉的程序入手,看看什么是进程。
进程有一个定义:进程是程序的一次执行过程。
什么意思呢?我们以编写程序到运行程序的整个过程看看。
在这里插入图片描述程序强调的是静态性,它只是安安静静的躺在外存(如硬盘)之中,而当双击运行这个程序时,该程序会被操作系统载入到内存,生成相应的进程;而进程强调的是动态性,CPU会不断访问内存,执行进程的指令,完成进程的所提出的任务,比如,你想用QQ和人聊天,你双击别人头像之后,屏幕会显示一个对话窗口,在这里"屏幕会显示一个对话窗口"就是QQ进程的一个任务。


什么叫进程实体

在这里先提出一个问题:程序被载入到内存之后,它会被划分为什么部分呢?(内存只运行一道用户程序时)
它会被划分为程序段和数据段。
在这里插入图片描述
那我们怎么知道该进程的程序段和数据段位于内存中的哪个位置呢?
在计算机发展的早期,由于计算机内存只支持运行一道应用程序,于是我们可以把该进程的程序段和数据段放在固定的位置。

但是随着计算机的发展,计算机可以支持多道程序并发运行了,那操作系统怎么去记录这些进程的程序段和数据段的位置呢?
操作系统可以构建一个叫进程控制块(PCB)的数据结构来存放这些信息。
在这里插入图片描述
所以,当程序运行的时候,操作系统会为该进程构建一个叫进程控制块(PCB)的数据结构,用以记录该进程的各种信息。
进程实体 = PCB + 程序段 + 数据段。 (进程实体 别名 进程映像)

进程与进程实体的关系

由上文可知,程序段、数据段、PCB三部分组成了进程实体(进程映像)。所以,在引入进程实体概念之后,我们可以把进程定义为:进程是进程实体的运行过程, 是系统进行资源分配和调度的一个独立单位。

但是,在一般情况下,我们把进程实体就称为进程,例如: 所谓的创建进程, 实际上是创建进程实体中的PCB,而撤销进程,实际上是撤销进程实体的PCB。 (PCB是进程存在的唯一标志)

注意: 严格来说,进程实体和进程并不一样,进程实体是静态的,而进程是动态的。不过,除非题目专门考察二者区别,
否则可以认为进程实体就是进程。因此我们可以说:进程由程序段、数据段和PCB三部分组成。

下面说说PCB的存储信息与分类。

PCB的存储信息与分类

  • 分类方式一
    在这里插入图片描述
  • 分类方式二

在这里插入图片描述

进程的组织方式

一个操作系统中通常由数十、数百乃至数千个PCB。为了对它们进行有效的管理,操作系统应该用适当的方式把这些进程的PCB组织起来。
注意:进程的组成讨论的是一个进程内部由哪些部分组成的问题,而进程的组织讨论的是多个进程之间的组织方式问题。

进程的组织方式有两种,链接方式和索引方式,下面对这两种方式进行简单介绍。

链接方式

链接方式会按照进程的状态将PCB分为多个队列,操作系统持有各个队列的指针。
(进程的状态有:阻塞态,就绪态,运行态…,之后会介绍是什么意思)
在这里插入图片描述以上所有的信息都被放置于内存之中。阻塞队列可能还会被划分为因等待什么事件而阻塞。

索引方式

索引方式会按照进程的状态将PCB建立几张索引表,操作系统持有各个索引表的指针。
(进程的状态有:阻塞态,就绪态,运行态…,之后会介绍是什么意思)
在这里插入图片描述以上所有的信息都被放置于内存之中。阻塞队列可能还会被划分为因等待什么事件而阻塞。


进程的特征

进程和程序有所联系也有所区别,相比于程序,进程拥有以下特征。
在这里插入图片描述
学习提示:由于异步性会导致并发进程执行结果的不确定性,所以操作系统需要提供"进程同步"机制来解决异步问题,具体会在之后的"进程同步"中学习。

总结

在这里插入图片描述

感谢

以上内容大部分来自王道操作系统系列视频教学。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

操作系统之进程 (五) --- 进程、进程实体、PCB... 的相关文章

  • cadence布局布线常见问题详解

    cadence布局布线常见问题详解 1 怎样建立自己的元件库 建立了一个新的project后 画原理图的第一步就是先建立自己所需要的库 所采用的工具就是part developer 首先在建立一个存放元件库的目录 如mylib 然后用写字板
  • Altium designer10---PCB添加Logo

    安全之安全 security 博客目录导读 目录 1 生成bmp后缀的图片 画图打开 调整大小 生成bmp 2 生成PCB Logo PCB Logo Creator 图标生成器 Load加载 Convert转换 3 复制到所制作板子的PC
  • PCB如何添加3D模型

    我们在布线完PCB后 可以通过按下键盘的数字 3 来查看自己的板子3D模式下的样子 然后我们可以将一些元器件的3D模型添加上去 看一下板子焊接上元器件是什么样子 所以我们可以手动将3D元器件添加上去也可以在选择元器件的封装时候添加其3D封装
  • PCB该怎样布局布线,这个小小案例,让你快速了解设计思路!

    在电路设计过程中 应用工程师往往会忽视印刷电路板 PCB 的布局 通常遇到的问题是 电路的原理图是正确的 但并不起作用 或仅以低性能运行 在本文中 我将向您介绍如何正确地布设运算放大器的电路板以确保其功能 性能和稳健性 最近 我与一名实习生
  • 哪些因素影响阻抗控制?网格铜的妙用

    原文来自微信公众号 工程师看海 前文介绍了传输线 特性阻抗以及信号的反射概念 如果阻抗不连续信号会发生反射严重时将会导致系统不能正常工作 都有哪些参数会影响阻抗呢 了解相关参数后我们就可以知道有哪些方法来控制阻抗了 线宽W 走线加宽 则单位
  • 在Altium Designer设计时候出现的Unknown Pin:Pin XX问题

    之前在布线时候发现一个元器件没有而且一直提示不知道引脚 以为是网络标号没有弄 后来看了一下网络标号也有 然后系统还是提示不知道该引脚 如图所示 然后就按照网上方法把全部网络标号删去了 重新弄也没有用 原理图也检查了一遍 这个元器件的原理图也
  • 嘉立创免费打板方法

    下载嘉立创下单助手软件 打开软件 在左侧领取下单优惠券 填写好下打样参数后 在优惠券中选择使用优惠券 即可免费打样 10CM 10CM以内 一个月限领2次优惠券 使用优惠券条件 当客户上个月的消费低于20元 甚至是无消费 我们也为完全用嘉立
  • Altium Designer 20 (14)——绿色报错消除

    一 问题 再更新完PCB之后会有绿色报错 二 问题解决 这是一种错误提示 2 1 解决一 按下TM 复位绿色报错 但是移动就会出现 2 2 解决二 设计规则检查 关掉所有检查 留下电器检查 这样要还是存在绿色报错 点击TM 2个按键就好了
  • 画PCB步骤

    画PCB步骤 1 导入原理图器件 2 画PCB边界 板子画圆弧 首先在机械层 mechanical 画一个边界 如矩形 然后在四个角画上圆弧 最后再复制到阻焊层 keep out Layer 复制到阻焊层方法 shift s单层显示 最后分
  • 快速设计元器件原理图库和PCB封装库

    目录 1 立创商城EDA免费库 2 Altium Library Loader 3 贸泽电子ECAD模型 在设计电路的过程中经常会遇到这样的问题 无法快速找到合适的元器件原理图封装和PCB封装 Footprint 通常最基本的做法是百度找找
  • LED点阵书写显示屏

    LED点阵书写显示屏 题目的大概要求是做一个32 32的点阵书写屏 LED 点阵模块显示屏工作在人眼不易觉察的扫描微亮和人眼可见的 显示点亮模式下 当光笔触及 LED 点阵模块表面时 先由光笔检测触及位置处 LED 点 的扫描微亮以获取其行
  • Candence学习篇(6)使用allegro绘制元器件的PCB封装

    文章目录 前言 一 确定引脚坐标位置 二 新建封装 2 1设置封装的大小 2 2 设置焊盘路径 三 绘制PCB封装 3 1参数设置 3 2放置边框矩形 3 3放置装配层 放置丝印层和1脚指示原点 总结 前言 前面我们讲了 Candence学
  • AD 原理图统一隐藏元器件的参数和序号

    AD 原理图统一隐藏元器件的参数和序号 如果隐藏元件参数 元件 右击 查找相似对象 确定 点击原理图 ctrl a 点击 属性对话框中 Part Conmment Hide 统一隐藏元件参数 如果隐藏元件序号 元件 右击 查找相似对象 确定
  • 关于PCB走线,铜厚与允许的最大电流之间的关系

    最近在看西安电子科技大学庄奕琪教授的 电子设计可靠性工程 这本书对于电子专业的工程师 学生来说 真的特别实用 其中他并没有提到关于EMC EMI之类的词语 但是关于电磁兼容 电磁屏蔽之类的一些操作都写的非常详细 做笔记做笔记 关于PCB走线
  • STC15单片机实战项目 - PCB打样

    PCB打样 一 设计文件链接 1 PADS9 5格式PCB设计文件 gt Project STC15 V1 0 pcb 2 AltiumDesigner格式PCB设计文件 gt Project STC15 V1 0 PcbDoc 二 获取开
  • STM32H743必要外围电路分析

    BOOT STM32采用ARM内核 和ARM处理器一样 都有专门的boot脚决定单片机从何处启动 在官方数据手册的第105页 我们可以看到 系统复位后 在SYSTICK的第四个上升沿锁存BOOT引脚的值 复位后 BOOT引脚可以由用户自由配
  • Allegro 镜像丝印处理

    本文问题描述 Allegro 设计中丝印镜像了 在器件在正面 丝印也在正面 但是不管怎么 R 都转不过来 发现其实丝印已经被镜像至反面 可能也就需要简单左右镜像下 就可以了 如下图 艹作 在菜单栏点击view 选择Flip Design 点
  • PCB阻焊层太近了会不会有问题?

    绘制pcb双层板 进行DCR检查 发现如下报错 于是回到pcb的界面去查看 原来是我的组焊层靠的很近 小于规则的6mil 这个报错有必要修改嘛 规则的设置如下 最小组焊层裂口是6mil 但是封装就是官网上下载下来的 是芯片封装引脚的问题 过
  • PCB添加图片或logo的方法

    系列文章目录 1 元件基础 2 电路设计 3 PCB设计 4 元件焊接 6 程序设计 文章目录 前言 一 图片预处理 转为 BMP格式 二 给Altium designer安装PCB LOGO Creator脚本插件 三 给PCB添加图片或
  • 有效降低EMI干扰的PCB设计原则

    降低EMI干扰的一些PCB设计建议 1 通过在所有信号下提供低阻抗 连续的返回路径来减少地面反弹 尤其是在表层布线时 2 保持所有走线距离板的边缘至少5倍信号线宽 3 对于关键信号 尽量采用带状线布局 4 将高速率 大电流的组件尽可能远离I

随机推荐

  • 烧录工具Android Tool的使用

    RK3308 该工具是RK的开发工具 xff0c 用于烧录用的 xff0c 不同型号的芯片对应的Android Tool中的下载镜像界面也不一样 xff0c 你像RK3308编出来的烧录文件有如下 xff1a 对应的Android Tool
  • Jetson nano i2c教程(MPU6050 + PCA9685)

    首先介绍nano板子上的i2c相关的硬件信息 xff1a 安装所需要的i2c库 sudo apt get install l y i2c tools 完成nano中io与i2c设备的硬件接线 本次案例使用的是PCA9685和MPU6050
  • ROS中发布里程计消息(Odometry)

    目录 1 首先理解里程计是什么 xff1f 2 里程计发布流程3 发布里程计TF变换2 1c 43 43 发布TF变换2 2 python发布TF变换 根据阿克曼转向结构的车辆实现里程计消息的发布 xff0c 本文参考博客如下 xff0c
  • ROS std_msgs/Header 数据含义

    std msgs Header msg消息里数据主要有一下几部分 xff1a uint32 seq time stamp string frame id 分别对这些数据做一个介绍 xff0c 如有错误 xff0c 欢迎批评指正 xff01
  • Carsim中添加路径

    目录 1 新建3D Road 数据库2 设置具体参数3 添加自定义道路信息 利用carsim和simulink联合仿真时 xff0c 需要给定参考轨迹 xff0c 具体设置如下 xff1a 1 新建3D Road 数据库 在Miscella
  • Carsim 2019 Run Now 按钮灰色

    安装carsim后 xff0c Run control with Simulink 模块中的Run Now 和Send to simulink 按钮灰色如下图所示 xff1a 解决办法 xff1a 在License Setting中 xff
  • Ubuntu 添加串口权限

    ubuntu串口添加权限方法 Ubuntu 添加串口权限前言一 添加用户组 xff0c 可长期使用二 给当前终端权限 xff08 单次有效 xff09 1 指定串口2 通用 三 修改文件 Ubuntu 添加串口权限 提示 xff1a 文章写
  • Ubuntu 虚拟机右上角网络连接符号消失

    这里写自定义目录标题 Ubuntu 虚拟机右上角网络连接符号消失解决方案 xff1a Ubuntu 虚拟机右上角网络连接符号消失 Ubuntu 虚拟机右上角网络连接符号消失 xff0c 如下图所示 解决方案 xff1a span class
  • C/C++中局部变量static用法实例

    1 普通局部变量存储于进程栈空间 xff0c 使用完毕会立即释放 xff0c 静态局部变量使用static修饰符定义 xff0c 即使在声明时未赋初值 xff0c 编译器也会把它初始化为0 xff0c 并且静态局部变量存储于进程的全局数据区
  • 嵌入式C语言经典面试题(一)

    1 用预处理指令 define 声明一个常数 xff0c 用以表明1年中有多少秒 xff08 忽略闰年问题 xff09 define SECONDS PER YEAR 60 60 24 365 UL 我在这想看到几件事情 xff1a 1 d
  • 更新Ubuntu内核到最新版本

    想起自己多年前玩Linux的时候知道了两个命令 xff1a sudo apt get update sudo apt get upgrade 以为是能够更新所有软件的 xff0c 后来发现 系统还是不能够更新的 那么 xff0c 系统应该如
  • RK3308 按键Key与LED灯

    硬件原理图 LED指示灯 麦克风阵列子板上使用12颗RGB灯作为效果指示灯 用户可以通过I2C总线配置LED灯驱动IC来是实现不同场景下的灯效 按键Key 麦克风阵列子板上集成五个控制按键 xff0c 分别为 xff1a 控制音量增减的VO
  • if选择结构

    if单选择结构 if双选择结构 if多选择结构 span class token keyword if span span class token punctuation span score span class token operat
  • Windows10下Eclipse+Python环境配置与新项目创建

    最近心血来潮 xff0c 突然想学一下python xff0c 按理说应该不用Eclipse xff0c 但是一想以后还可能会用Java xff0c 那还是装这个 xff0c 然后配置一下环境吧 xff0c 其中也有很多坑 xff0c 希望
  • 理解地址空间和逻辑地址生成

    1 1 地址空间 物理地址 xff1a 硬件 例如内存条 所支持地址空间 xff0c 地址空间的管理由硬件完成 逻辑地址 虚拟地址 xff1a 运行地址所看到的地址空间 xff0c 地址空间是一维的 xff0c 应用程序更加容易访问和管理
  • QT DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x800c000d ()

    使用QT播放音频的时候出现如下错误 DirectShowPlayerService doSetUrlSource Unresolved error code 0x800c000d 原因是url错误
  • 3种蓝牙架构实现方案(蓝牙协议栈方案)

    导言 不同的蓝牙架构可以用在不同的场景中 从而协议帧的架构方案也会不同 转载自 xff1a https www cnblogs com schips p 12293141 html 三种蓝牙架构实现方案 xff08 蓝牙协议栈方案 xff0
  • 驱动遍历句柄表

    xfeff xfeff 驱动遍历句柄表附加第二个方法的反汇编代码 其中还有对其拦截的方式的一些需要HOOK处比如伪造句柄表 因为大量使用硬编码所以此份代码通用性不强一切均在虚拟机XP3下操作 include 34 ntddk h 34 ty
  • Javascript案例:猜数字游戏

    要求 程序随机生成一个1 10之间的数字 xff0c 并让用户输入一个数字 如果大于该数字 xff0c 就提示 xff0c 数字大了 xff0c 继续猜如果小于该数字 xff0c 就提示 xff0c 数字小了 xff0c 继续猜如果等于该数
  • 操作系统之进程 (五) --- 进程、进程实体、PCB...

    文章目录 进程什么叫进程什么叫进程实体进程与进程实体的关系PCB的存储信息与分类 进程的组织方式链接方式索引方式 进程的特征总结感谢 进程 什么叫进程 进程和程序差不多 xff0c 他们有所联系也有所区别 我们以我们熟悉的程序入手 xff0