我理解的proc伪文件系统

news2024/11/15 9:01:23

一.概念

提供可以动态操作Linux内核信息的接口,实现内核空间与用户空间进行数据交换的途径。

二.观察文件内容

//crtl+alt+t 快速打开Linux终端
//输入一下内容
cd /proc //进入proc文件夹
ls       //观察proc文件夹下的内容
cd 2414  //任意打开一个带数字的文件夹观察
cd self  //打开self文件夹观察

观察发现,两者的文件夹下的内容是相同的。

这些文件夹作用是什么呢?

以proc/self/maps文件夹为例子进行介绍,使用cat进行查看

cat /proc/self/maps

第一列代表本部分映像文件所对应的虚拟地址范围 。

第二列代表本部分映像文件所能进行的操作,x-执行,p-私有,r-读取,w-写。

第三列代表偏移量。本部分映像文件在进程空间的偏移量。

第四列代表映像设备的主设备号和次设备号。

第五列代表映像文件的结点号。

第六列代表映像文件的绝对路径。

三.proc伪文件系统介绍

(1)只存在于内存当中

(2)动态改变的

(3)数字命名的文件夹是进程的PID,存储着各个进程的信息。

(4)还有一些文件夹是包括通用系统信息,网络信息,系统控制信息

四.PCB--进程控制块

包含每一个进程生存过程中的全部重要信息,管理进程资源使用

Linux中的进程控制块--task_struct,包含的信息如下,可以在sched.h的头文件中找到。

 进程的状态在linux操作系统中分为6种,宏定义如下

#define TASK_RUNNING		0
#define TASK_INTERRUPTIBLE	1
#define TASK_UNINTERRUPTIBLE	2
#define __TASK_STOPPED		4
#define __TASK_TRACED		8
/* in tsk->exit_state */
#define EXIT_DEAD		16
#define EXIT_ZOMBIE		32

另外,每个进程还有两个独立的状态标志

task->exit //关于进程退出状态的
task->state//关于进程运行状态的

可以使用如下的函数获取进程的状态,返回值为task_struct中的state,共五种状态

get_task_state()

课本上进程的状态有五种,分别是就绪、运行、阻塞、睡眠、退出。

TASK_RUNNING对应--就绪、运行(ready)(running)

TASK_INTERRUPTTIBLE、TASK_UNINTERRUPTTIBLE对应着阻塞(waiting)

_TASK_INTERRUPTTIBE对应着睡眠(sleep)

_TASK_STOPPED对应着退出(exit)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【问题解决】解决xshell7会话窗口只能显示一个的问题

这恐怕会成为最短的一篇文章 问题复现 打开多个终端,最终只显示最后一个 如上图: 再打开一个192.168.1.42 ,会覆盖掉1.41,终端上先显示最后打开的那个终端。 想要解决xshell7会话窗口只能显示一个的问题,我们只需要…

日志系统:一条SQL更新语句是如何执行的?

前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条更新语句的执行流程又是怎样的呢? 之前你可能经常听 DBA 同事说,…

怎么判定自己的账号有没有被限流?短视频运营推广学习日记

短视频运营推广学习日记 今天开始记录自己的学习过程,今天的内容是,怎么知道自己的账号有没有被限流?对比了几个方法,还是我赢的内容比较正常,限流主要是两种方式:作品限流和账号限流 作品限流&#xff1…

开发第一天

首先下载Binary Editor: https://www.vcraft.jp/soft/bz.html 如图所示,点击下载: 下载后解压,在同一个盘下创建文件夹取名为OSASK,启动Bz.exe程序并输入: 需要复制很多的0,一直到168000这个地址,得到的文件命名为he…

(九) DockerFile

DockerFile一、概述二、DockerFile构建过程2.1、Dockerfile内容基础知识2.2、Docker执行Dockerfile的大致流程2.3、小总结三、DockerFile常用保留字指令四、实操案例4.1、要求Centos7镜像具备vimifconfigjdk84.2、编写4.3、Build构建镜像4.4、虚悬镜像一、概述 Dockerfile是用来…

C++18 -- 虚析构函数构成多态、纯虚函数、抽象类、虚继承

多态的条件: 1)覆盖 2)基类的指针或者引用 虚表的运行原理: 一、多态的特例 – 虚析构函数构成多态 类有指针作为数据成员,必须要写析构函数,如果当前类被继承了,则析构函数写成virtual&#…

四旋翼无人机学习第19节--allgero的板框导入,网表导入

文章目录1 板框导入2 网表导入3 颜色修改4 修改快捷键1 板框导入 1、板框可以在小马哥课程中获取哦。 课程地址:使用Cadence17.2 OrCAD Allegro绘制小马哥DragonFly四轴飞行器 2、下载得到文件,然后用CAD软件查看DXF文件,出现弹框点击是即可(文件只读)。…

科研小白如何做好科研(内附一些科研实用工具)

目录 前言 一、了解自己的研究方向 1、知其然并知其所以然 2、那如何做到呢? 二、拥有良好的科研素养 1、多读文献 2、夯实基础,搞清原理 3、不断学习,擅于总结 4、团队协作,勤沟通,多交流 三、掌握一些…

RHCEansible静态主机清单

首先要做好免密登录 RHCEansible虚拟机初始化配置,ansible配置和安装_无所不知的神奇海螺的博客-CSDN博客 添加主机组 [rootserver ~]# vim /etc/ansible/hosts 或者 测试 [rootserver ~]# ansible node1 -m command -a hostname --- 引号里的是想要受控主机执行的…

Dell inspiron 5488加装硬盘SSD

机械盘真心便宜, 当数据盘很合适。 ———— 我是装双系统, 希望速度快! 我就装了一个SSD, STAT接口的, 和机械盘盒一样尺寸, 接口都是SATA, 我买的三星860EVO, 500G&…

I06-python菜鸟教程查漏补缺

学习链接:Python3 教程 | 菜鸟教程 目录 1.基础知识 2.字符串 1.基础知识 多行语句:复数类型: 复数由实数部分和虚数部分构成,可以用 a bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型…

项目的生命周期

0、Preface/Foreword PLM:Product Lifecycle Management System,产品生命周期管理;可以在公司内部或者多个公司之间对于产品研发协同办公,集成与产品相关的人力资源,流程、应用系统和信息,用于支持产品全生命周期的信息创建、管理、分发和应用。 1、硬件产品开发流程 立…

2022年下半年信息系统项目管理师综合知识真题及答案21-40

21、关于项目论证、项目评估目的和作用的描述,不正确的是:()。 A.项目论证应围绕市场需求、开发技术、财务经济三个方面开展 B.项目论证的作用是审查可行性研究的可靠性、真实性和客观性 C.项目…

Java8 - Streams map()

文章目录概述Case 1 : A List of Strings to UppercaseCase 2 : List of objects -> List of StringCase 3 : List of objects -> List of other objectsTest概述 Stream.map()是Stream最常用的一个转换方法,它把一个Stream转换为另一个Stream map()方法用于…

网络安全人才市场需求调研

声明 本文是学习2022网络安全人才市场状况研究报告. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 网络安全人才市场需求调研 为了更好地了解网络安全人才市场能力需求情况,我们通过调研问卷对网络安全人才就业市场不同方向的十…

Jetson nano 入手系列之1—如何SSH远程登录

Jetson nano 入手系列之1— 如何SSH远程登录方法1.windows与jetson nano使用同一个网络方法2.windows与jetson nano使用网线连接参考文献本文使用的windows平台来ssh远程登录jetson nano,这里提供两种方法。方法1.windows与jetson nano使用同一个网络 使用同一个网络…

二氧化碳捕获和电化学转化(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

12---实现注册、异常处理,统一封装结果集

1、写统一返回结果包装类 在实际开发中,为了降低开发人员之间的沟通成本,一般返回结果会定义成一个统一格式,具体的格式根据实际开发业务不同有所区别,但至少包括三要素: code状态码:由后端统一定义各种返…

3)Django模板

目录 Django模板 Django 模板标签 变量 ​编辑 列表 字典 过滤器 default length filesizeformat date truncatechars safe if/else 标签 for 标签 {% empty %} ifequal/ifnotequal 标签 注释标签 include 标签 csrf_token 配置静态文件 模板继承 父模板…

Elasticsearch搜索引擎(一)——基础使用

Elasticsearch搜索引擎 关键词是中文的建议使用,英文和数字不要,模糊就行 如果普通数据库查询,无法解决如下问题 如果表记录上千万上亿了这个性能问题,另外一个如果有一个本文字段要在里面模糊配置,这个就会出现严重…