关于Liunx下的进程概念

目录

基本概念

关于进程的描述 --- PCB         

task_struct-PCB的一种

task_ struct内容分类

如何查看进程

通过系统调用获取进程标识符


基本概念

书本概念:程序的一个执行实例,正在执行的程序等

内核观点:担当分配系统资源(CPU时间,内存)的实体。
示例:(Linux环境)
当我们执行一指令,或者通过 ./ 的方式运行一个程序的时候,本质上,就是在系统层面上创建一个进程,Linux是可以同时加载多个可执行程序的,意味着系统中是会出现同时存在大量进程的情况。
  •  那么这么些个进程需不需要被系统管理起来呢?答案是肯定的。
  •  那么系统是如何进行管理大量进程的呢? --- 先描述,再组织。
例图:

上述是一个草图,本质上想描述的是 完整的进程 = 对应的文件(代码+数据)+ 对应的PCB结构体(进程)

通过对进程对应的PCB结构的增删查改,也就实现了对进程的管理。

关于进程的描述 --- PCB         

进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。
书本上称之为PCB(process control block),Linux操作系统下的PCB是:task_struct

task_struct-PCB的一种

在Linux中描述进程的结构体叫做task_struct。
task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。

task_ struct内容分类

  • 标示符: 描述本进程的唯一标示符,用来区别其他进程。
  • 状态: 任务状态,退出代码,退出信号等。
  • 优先级: 相对于其他进程的优先级。
  • 程序计数器: 程序中即将被执行的下一条指令的地址。
  • 内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
  • 上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。
  • I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
  • 记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
  • 其他信息

如何查看进程

1.ps

ps:查看在当前终端下的进程
ps axj:查看在系统中的所有进程

示例:

示例2:

2.top:显示系统中存在的所有进程(相当于Windows下的任务资源管理器)

示例:

通过系统调用获取进程标识符

  • 进程id(PID) --- getpid
  • 父进程id(PPID)--- getppid

代码示例:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/596232.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【最新可用】Claude国内镜像,可上传图片,可用Claude3全系模型(包括Pro版本的Opus)!亲测比GPT好用!

亲测可用,镜像地址:Claude 3 镜像 使用方法 访问镜像:Claude 3 镜像 2. 点击设置,配置授权码,关闭设置。这里免费赠送一个体验版的授权码 sk-SZcJyvx3RXRID624E2D3795578Df44C7Af03F2909a8f5eA0 即可发起对话啦&…

Python3 Ubuntu

一、安装中文输入法 1.sudo apt install ibus-sunpinyin 2.点击右上角输入法,然后点击加号,输入yin添加进来,最后选中输入法即可 二、安装截屏软件 1.sudo apt install gnome-screenshot 三、安装opencv-python 1.pip3 install --upgrade…

从零开始搭建后端信息管理系统(新手小白比如)

如果你是新手小白,首先我们要进行一些准备工作,安装一些基础软件, 备注一下:这里安装的vue环境的后台管理系统,不同的后台管理系统,需要安装不同的插件 准备工作: 安装 Visual Studio Code …

深入浅出 -- 系统架构之分布式系统底层的一致性

在分布式领域里,一致性成为了炙手可热的名词,缓存、数据库、消息中间件、文件系统、业务系统……,各类分布式场景中都有它的身影,因此,想要更好的理解分布式系统,必须要理解“一致性”这个概念。 其实关于…

元宇宙虚拟空间的场景渲染(五)

前言 该文章主要讲元宇宙虚拟空间的场景渲染,基本核心技术点,不多说,直接引入正题。 场景渲染 下面第二个图中的代码是一个循环渲染逻辑,首先getDelta 获取2次时间的时间间隔,requestAnimationFrame请求我们的一个动…

ICLR 2024 | 联邦学习后门攻击的模型关键层

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 联邦学习使多个参与方可以在数据隐私得到保护的情况下训练机器学习模型。但是由于服务器无法…

感染了后缀为.jayy勒索病毒如何应对?数据能够恢复吗?

导言: 在当今数字化的世界中,网络安全已经成为了每个人都需要关注的重要议题。而勒索病毒作为网络安全领域中的一大威胁,不断地演变和升级,给个人和组织带来了严重的损失和困扰。近期,一种名为.jayy的勒索病毒引起了广…

docker笔记(一):安装、常用命令

一、docker概述 1.1docker为什么会出现 各种环境配置十分繁琐,每一个机器都需要配置环境,难免出现各种问题。 发布一个项目jar需要配置(MySQL、redis、jdk、…),项目不能都带上环境安装打包: 传统&…

第十四届蓝桥杯物联网试题(省赛)

这个题还是有点难度的,刚好能做完,还遇到一个意料之外的BUG,这次算是失败了,因为那个BUG让我以为是板子坏了其实是我LORA没初始化 储存信息用结构体存储 第一次写结构体能一次实验成功也挺开心的 值得赞扬的是我这样排版的好处是所有变量都在…

Godot 4 教程《勇者传说》依赖注入 学习笔记(1):相机使用

文章目录 相关地址扩大场景添加相机相机拖动相机平滑相机限制不进行限制进行限制左边轴移动,得到坐标填入坐标限制平滑 相关地址 十分钟制作横版动作游戏|Godot 4 教程《勇者传说》#0 人物素材 环境素材 Gclove2000/GodotNet_LegendOfPaladin 扩大场景 …

【JAVASE】带你了解面向对象三大特性之一(继承)

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:再无B~U~G-CSDN博客 1.继承 1.1 为什么需要继承 Java 中使用类对现实世界中实体来…

【Unity每日一记】如何让Sprite精灵图集的背景图层变成透明,方便切割

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…