我理解的proc伪文件系统

一.概念

提供可以动态操作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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝本生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值