登录后更精彩...O(∩_∩)O...
您需要 登录 才可以下载或查看,没有账号?立即注册
×
资源来自互联网分享,侵权请告知删除。
如链接失效,请联系管理

我理解的proc伪文件系统
一.概念 提供可以动态操作Linux内核信息的接口,实现内核空间与用户空间进行数据交换的途径。
二.观察文件内容
[Bash shell] 纯文本查看 复制代码 //crtl+alt+t 快速打开Linux终端
//输入一下内容
cd /proc //进入proc文件夹
ls //观察proc文件夹下的内容
cd 2414 //任意打开一个带数字的文件夹观察
cd self //打开self文件夹观察
观察发现,两者的文件夹下的内容是相同的。 这些文件夹作用是什么呢? 以proc/self/maps文件夹为例子进行介绍,使用cat进行查看
[Bash shell] 纯文本查看 复制代码 cat /proc/self/maps
第一列代表本部分映像文件所对应的虚拟地址范围 。 第二列代表本部分映像文件所能进行的操作,r-读取,w-写,x-执行,p-私有。 第三列代表偏移量。本部分映像文件在进程空间的偏移量。 第四列代表映像设备的主设备号和次设备号。 第五列代表映像文件的结点号。 第六列代表映像文件的绝对路径。
三.proc伪文件系统介绍 (1)只存在于内存当中 (2)动态改变的 (3)数字命名的文件夹是进程的PID,存储着各个进程的信息。 (4)还有一些文件夹是包括通用系统信息,网络信息,系统控制信息
四.PCB--进程控制块
包含每一个进程生存过程中的全部重要信息,管理进程资源使用 Linux中的进程控制块--task_struct,包含的信息如下,可以在sched.h的头文件中找到。
进程的状态在linux操作系统中分为6种,宏定义如下 [Bash shell] 纯文本查看 复制代码 #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
另外,每个进程还有两个独立的状态标志 [Bash shell] 纯文本查看 复制代码 task->exit //关于进程退出状态的
task->state//关于进程运行状态的
可以使用如下的函数获取进程的状态,返回值为task_struct中的state,共五种状态 [Bash shell] 纯文本查看 复制代码 get_task_state() 课本上进程的状态有五种,分别是就绪、运行、阻塞、睡眠、退出。 TASK_RUNNING对应--就绪、运行(ready)(running) TASK_INTERRUPTTIBLE、TASK_UNINTERRUPTTIBLE对应着阻塞(waiting) _TASK_INTERRUPTTIBE对应着睡眠(sleep) _TASK_STOPPED对应着退出(exit)
from: 我理解的proc伪文件系统_proc self map-CSDN博客
|