进程控制块

2023-05-16

进程控制模块

  • 查看进程
  • PCB内部构成
    • 标识符
      • ppid
    • 状态
    • 优先级
      • 查看优先级方式
      • 优先级确定原理
      • 调整优先级
      • nice值范围
    • 程序计数器
    • 内存指针
    • 上下文数据
      • 时间片
      • 上下文数据
    • I/O状态信息
    • 记账信息
  • 查看进程信息

进程:加载到内存的程序,就叫做进程,系统中会存在大量进程,操作系统要对进程进行管理,操作系统管理进程的方式:先描述再组织,因此任何进程在形成的时候,操作系统要为该进程创建PCB(进程控制块)。

查看进程

ps axj | head -1 &&  ps axj | grep "test"

该命令可以查看grep关键字的进程状态
在这里插入图片描述

PCB内部构成

标识符

标示符(pid): 描述本进程的唯一标示符,用来区别其他进程。
查看标识符函数:getpid,他的返回值类型为pid_t可以认为是整形变量
使用方法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ppid

ppid:父进程的标识符,获取父进程id函数为getppid()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
正常在命令行上运行的程序的父进程都是0号进程bash

状态

PCB中会存储进程的状态信息,例如:任务状态,退出代码,退出信号等
其中,程序中main函数的返回值可以被称为退出码,使用该命令可以查看最近执行进程的退出码
在这里插入图片描述

优先级

cpu资源分配的先后顺序,就是指进程的优先权(priority)。 优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。
还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。

查看优先级方式

ps -l

在这里插入图片描述
其中:
UID : 代表执行者的身份
PID : 代表这个进程的代号
PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号
PRI :代表这个进程可被执行的优先级,其值越小越早被执行
NI :代表这个进程的nice值

优先级确定原理

PRI即进程的优先级,通俗点说就是程序被CPU执行的先后顺序,此值越小,进程的优先级别越高 。NI就是所要说的nice值了,其表示进程可被执行的优先级的修正数值 PRI值越小越快被执行,那么加入nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice 这样,当nice值为负值的时候,那么该程序将会优先级值将变小,即其优先级会变高,则其越快被执行。所以,调整进程优先级,在Linux下,就是调整进程nice值 。
nice其取值范围是-20至19,一共40个级别。

调整优先级

使用top命令来调整优先级
进入top后按“r”–>输入进程PID–>输入nice值
在这里插入图片描述

nice值范围

nice其取值范围是-20至19,一共40个级别。为什么要设置一个范围主要是因为优先级再怎么设置,也只能是一种相对的优先级,不能出现绝对的优先级,否则会出现很严重的进程饥饿问题。

程序计数器

程序计数器: 程序计数器有点类似与指针的作用,他指向程序中即将被执行的下一条指令的地址。

内存指针

内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针

上下文数据

上下文数据: 进程执行时处理器的寄存器中的数据。

时间片

时间片是指每个进程单次运行的时间。

上下文数据

在单CPU情况下,用户可以感受到多个进程在同时进行,本质是通过cpu的快速切换完成的。
进程在运行期间是有切换的,可能存在大量临时数据,暂时在寄存器中保存,但是cpu只有一套寄存器。
在进行进程切换的时候,寄存器中的临时数据会被保存到PCB中,再次运行的时候会将上次保存的临时数据再给寄存器,这就是保护上下文数据。
通过上下文的保护和恢复我们可以感受到进程是被切换的。

I/O状态信息

I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。

记账信息

记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
操作系统中有一个调度模块,用来较为均衡的调度每个进程,更为公平的获得cpu资源。记账信息用来被调度器用来作为分配资源的依据。

查看进程信息

ls /proc/进程标识号

查看当前进程的信息
在这里插入图片描述

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

进程控制块 的相关文章

  • iOS开发之NSMutableParagraphStyle富文本

    在iOS开发中 xff0c 常常会有一段文字显示不同的颜色和字体 xff0c 或者给某几个文字加删除线或下划线行间距的需求 就需要富文本来实现 一 实例化方法和使用方法 NSMutableAttributedString detailStr
  • Ubuntu一直卡死的问题(18.04)

    昨天今天Ubuntu突然出现了一个问题 xff0c 就是每次开机不到5分钟 xff0c 随便点击一下浏览器或者其他的地方就会卡住 xff0c 但是鼠标可以移动 xff0c 就是无法点击 xff0c 而且等待一段时间后会出现黑屏然后提示如下图
  • 作为一个普通的程序员,到底应不应该转型AI工程师?

    动不动就是50万的毕业生年薪 xff0c 动不动就是100万起步价的海归AI高级人才 xff0c 普通员到底应不应该转型AI工程师 xff0c 普通程序员到底应该如何转型AI工程师 xff1f 下面就分享几个特别典型的普通程序员成功转型AI
  • 编译原理第二章习题

    一 填空题 假设G是一个文法 xff0c S是文法的开始符号 xff0c 如果S 61 gt x xff0c 则称x是 句型 文法G产生的 句子 的全体是该文法描述的语言 文法 G S S AB A aA B bBc bc描述的语言 L G
  • 推荐几个免费好用的搜书网站

    小不点搜索 地址 xff1a https www xiaoso net 介绍 xff1a 一个公益的网站不收费 我用来搜索过图书 xff0c 其他资源还没搜索过 xff0c 用起来速度挺快的 2 java1234 地址 http www j
  • 推荐一些好用的APP

    南瓜影视 链接 xff1a https ng33 app channelCode 61 share88 appkey 61 ayo1id amp recommend 61 5708550 没有广告 xff0c 有电视版 xff0c 手机版
  • 虚拟机的初始化设置的磁盘空间太大,进行缩小

    xff08 如果你的磁盘文件是多文件的直接跳到第二步 xff09 1 将但磁盘文件分解为多磁盘文件 在虚拟机安装目录下 xff0c 执行该命令 vmware vdiskmanager exe r 你的虚拟机磁盘文件 vmdk t 1 spa
  • yum包查找网站

    https pkgs org http rpm pbone net index php3
  • swagger3 +srpingsecurity

    引入jar包 参考swagger官网http springfox github io springfox docs current quick start guides span class token operator lt span s
  • java移除数组中的某个元素

    span class token keyword package span com span class token punctuation span example span class token punctuation span de
  • CentOS7下使用YUM安装MySQL5.6

    xff08 1 xff09 检查系统中是否已安装 MySQL rpm qa grep mysql 返回空值的话 xff0c 就说明没有安装 MySQL 注意 xff1a 在新版本的CentOS7中 xff0c 默认的数据库已更新为了Mari
  • Linux性能优化

    Linux性能优化 来源 xff1a https www ctq6 cn linux E6 80 A7 E8 83 BD E4 BC 98 E5 8C 96 性能优化 性能指标 高并发和响应快对应着性能优化的两个核心指标 xff1a 吞吐和
  • 导入sql文件报错:Row size too large (>8126)

    报错异常 xff1a 1118 Row size too large gt 8126 Changing some columns to TEXT or BLOB or using ROW FORMAT 61 DYNAMIC or ROW F
  • Jlink工具下的RTT调试应用

    单片机开发过程中 xff0c 除了debug调试之外 xff0c 很多人都是通过打印信息进行调试 xff0c 一般都会分配出来一个调试的串口 xff0c 如果你的单片机使用jlink烧录器 xff0c 那么可以使用调试工具 RTT来代替串口
  • 经典软件设计模型 - 生产者消费者模型

    简介 这里就不具体介绍了 xff0c 网上一堆关于生产者消费者模式的介绍 xff0c 这是一个常用的设计方法 xff0c 只要牵扯多个线程之间协作一般就需要这个设计方法 xff0c 简单意思就是有个缓冲负责两个线程之间的交流 xff0c 一
  • Windows 下 VS Code Remote-Development(ssh) 插件的安装和配置

    本文主要介绍在 VS Code Insider 上如何通过 ssh 的方法连接接到远程机器 xff08 必须是 Linux 系统 xff09 提高开发效率 配置的过程如下 xff1a 1 远程主机安装 ssh server span cla
  • potplayer如何设置以一帧一帧的逐帧播放播放?

    PotPlayer是一款非常专业的视频播放器 自带专业的编解码器 xff0c 方便快捷 xff0c 可观看任何格式视频文件 xff0c 功能非常强大 PotPlayer播放器启动速度快 xff0c 播放稳定 xff0c 还支持给视频加字幕
  • Ubuntu18.04中设置使用root用户登录图形界面

    1 打开配置文件 sudo vim usr share lightdm lightdm conf d 50 ubuntu conf 2 在最后一行添加greeter show manual login 61 true greeter sho
  • Android5.0+ Camera专栏终结

    本文均属自己阅读源码的点滴总结 xff0c 转账请注明出处谢谢 欢迎和大家交流 qq 1037701636 email gzzaigcn2009 64 163 com Software xff1a 系统源码Android5 1 寥寥几笔写在

随机推荐

  • Android Camera从Camera HAL1到Camera HAL3的过渡(已更新到Android6.0 HAL3.3)

    本文均属自己阅读源码的点滴总结 xff0c 转账请注明出处谢谢 欢迎和大家交流 qq 1037701636 email gzzaigcn2009 64 163 com Software xff1a 系统源码Android5 1 1 Andr
  • Android Camera HAL3中预览preview模式下的数据流

    本文均属自己阅读源码的点滴总结 xff0c 转账请注明出处谢谢 欢迎和大家交流 qq 1037701636 email gzzaigcn2009 64 163 com Software xff1a 系统源码Android5 1 前沿 xff
  • 【1】RNA-seq 测序数据之Hisat2比对-featurecount计算-EdgeR分析

    一 拿到 测序数据之后 xff0c 首先选择参考基因组及比对工具进行比对 1 Hisat比对 xff1a xff08 6个G的测序数据耗时20分钟 xff0c 比对率78 4 xff09 物种差异度大导致比对率低 build index h
  • Android Camera API2中采用CameraMetadata用于从APP到HAL的参数交互

    本文均属自己阅读源码的点滴总结 xff0c 转账请注明出处谢谢 欢迎和大家交流 qq 1037701636 email gzzaigcn2009 64 163 com Software xff1a 系统源码Android5 1 前沿 xff
  • Android.mk中LOCAL_MODULE_CLASS对LOCAL_MODULE_PATH 的影响

    LOCAL MODULE CLASS用于制定LOCAL MODULE PATH的路径所在 如果在Android mk没有直接明确LOCAL MODULE PATH 的话 xff0c 需要通过以下规则来自动生成base rules mk xf
  • PRODUCT_COPY_FILES的深入理解,为何不能在Android.mk使用

    PRODUCT COPY FILES本质是和定义产品的AndroidProducts mk xff08 get all product makefiles来获取系统中所有AndroidProducts mk 文件路径 xff09 联系在一起
  • linux驱动开发经验逐步积累2

    注 xff1a 笔记多少会有问题 xff0c 多多包涵 只是作为一个记录而已 1 cdev add的核心思想 cdev add允许添加一个字符设备到内核 xff0c 其核心是kobj map xff0c 也可以添加一个字符设备集合 xff0
  • 记录下在csdn那些年里所使用的博客座右铭

    xfeff xfeff 2016 xff0c 认认真真做事 xff0c 脚踏实地生活 路漫漫 xff0c 意不变 xff0c 求静 xff0c 求心 xff0c 求进 2017 xff0c 重新开始 xff0c 从心开始 xff0c 从家开
  • 多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取

    多寄存器和堆栈寻址的用法 xff1a 多寄存器寻址 xff1a LDMIA xff0c LDMIB xff0c STMIA xff0c STMIB xff0c LDMDA xff0c LDMDB xff0c STMDA xff0c STMD
  • 使用CCS5.1导入的3.3工程编译错误lib/subdir_vars.mk:11: *** missing separator. Stop.

    D Program Files CCS5 1 ccsv5 utils bin gmake k all lib subdir vars mk 11 missing separator Stop TI方面说是CCS5 1的BUG xff0c 在
  • 写给我的2013

    前沿 xff1a 代码看的累了 xff0c 在新的一年终于可以找点时间来回忆我的2013 想着要写点什么 xff0c 可是又没有什么可以写 因为回忆无非就是夹杂着些许痛苦与欢乐 写给我的2013 家 生活 xff1a 2013年 xff0c
  • 写给我的2014——也写给我即将逝去的研究生生涯

    前言 xff1a 2014 1在写着代码的时写下了回忆 xff0c 2015 1在码着论文的时候开始写起消逝的2014 细细回忆 xff0c 真是又是那句老话 xff0c 时间过得真快 xff0c 1年过去了 xff1b 更快的是竟然都要毕
  • Oracle官网下载历史版本软件

    一 分享一个Oracle官网下载各种软件的网址 https edelivery oracle com osdc faces SoftwareDelivery 这个网址是Oracle官网专门下载软件的地址 xff0c 下载软件过程如下 xff
  • 技术盘点:消息中间件的过去、现在和未来

    作者介绍 xff1a 林清山 xff08 花名 xff1a 隆基 xff09 操作系统 数据库 中间件是基础软件的三驾马车 xff0c 而消息队列属于最经典的中间件之一 xff0c 已经有30多年的历史 其发展主要经历了以下几个阶段 xff
  • C语言小游戏——扫雷

    上次我们用C语言实现了一个三子棋的小游戏 xff0c 这次我们同样使用C语言来实现扫雷这个经典的小游戏 首先 xff0c 在开始编程之前还是先整理一下我们的编程思路 xff1a 一 菜单打印 xff1a 和上次实现三子棋的操作类型 xff0
  • 缺省参数讲解

    缺省参数 缺省参数定义缺省参数分类1 全缺省参数 xff1a 2 半缺省参数 xff1a 注意事项 缺省参数定义 缺省参数作为C 43 43 不同于C语言新增的一种语法功能 xff0c 他的作用是在声明或定义函数时为参数指定的一个默认值 x
  • Linux下的权限

    Linux下的权限 用户分类文件类型具体文件类型 基本权限root用户 xff1a 修改权限使用方法 xff1a 通过8进制数字更改权限 对于文件 xff0c 权限的意义读权限写权限运行权限 对于目录权限的意义 更改文件拥有者 所属组cho
  • 类和对象初识

    类和对象初识 类的由来类的定义类的特性封装访问限定符 类的定义方法声明和定义全部放在类体中声明放在 h文件中 xff0c 类的定义放在 cpp文件中类对象的大小 内存对齐规则 类的由来 在C语言中我们有自定义类型的struct xff0c
  • 类的默认成员函数——上

    类的默认成员函数 默认成员函数构造函数构造函数由来构造函数特征默认构造函数特征总结 xff1a 析构函数特征 拷贝构造默认拷贝构造总结 C 43 43 中如果一个类中什么成员都没有 xff0c 简称为为空类 空类中什么都没有吗 xff1f
  • 进程控制块

    进程控制模块 查看进程PCB内部构成标识符ppid 状态优先级查看优先级方式优先级确定原理调整优先级nice值范围 程序计数器内存指针上下文数据时间片上下文数据 I xff0f O状态信息记账信息 查看进程信息 进程 xff1a 加载到内存