对proc文件管理的详细分析

任务:编写一个有两个进程并发运行的程序,并在结尾设定一个死循环,编译完成后让其在后台运行,然后在前台用cat 命令查看/proc目录下的文件/proc/meminfo (当前内存信息)、/proc/vmstat (虚拟内存统计信息)、/proc/vmallocinfo(虚拟内存分配息)、/proc/filesystems(目前系统支持的文件系统)、/proc/locks(当前被内核锁定的文件)、/proc/cpuinfo ( cpu相关信息)和/proc/modules(当前系统已经加载的模块(lsmod))中信息,分析其含义。

编写一个简单的程序,满足两个进程并发运行,额,很简单,就不放代码了,只要最后进入死循环就可以。

让程序在后台一直运行,另开一个终端,进行命令输入。

cat  /proc/meminfo

cat /proc/meminfo 命令会显示当前系统中内存的详细信息,包括总内存、空闲内存、已用内存等。当一个程序进入死循环,更多的内存被标记为“正在使用”,因为死循环程序可能会不断地分配内存而不释放。这可能导致 MemFree 减少,BuffersCached 也可能会受到影响。

cat  /proc/vmstat

cat /proc/vmstat 命令会显示虚拟内存统计信息,包括页面交换、内存压缩、内存回收等

因为陷入死循环,一些与内存分配、交换、回收等相关的统计数据会不断增加,比如 pgpgin(从磁盘读入页的次数)、pgfault(页面错误的次数)等。这反映了死循环程序对系统内存的持续影响。

sudo cat /proc/vmallocinfo

/proc/vmallocinfo 文件包含有关虚拟内存分配情况的信息。这些信息通常用于调试和分析内核驱动程序或模块的内存使用情况。然而,在一般情况下,该文件可能并不包含实际的信息,因为虚拟内存分配情况可能会受到许多因素的影响,如内核版本、正在运行的进程等。由于虚拟内存分配的动态性质,该文件内容可能会随着时间和系统状态的变化而变化。

sudo cat /proc/filesystems

包含了当前系统支持的文件系统类型的列表,一系列文件系统类型,每个类型占据一行。常见的文件系统类型包括ext4、ntfs、vfat、iso9660等。这些文件系统类型反映了当前系统内核编译时所支持的不同文件系统。

文件系统的支持是由内核在启动时加载的,并且一般不会因为用户空间程序的运行状态而改变。所以在程序陷入死循环不会有改变。

sudo cat /proc/locks

包含了当前系统上所有文件锁的信息。在这个文件中,可以看到哪些进程持有了文件锁,以及这些锁的类型和位置等信息。/proc/locks 文件的输出可能会比较庞大,特别是在繁忙的系统上。因为它记录了系统中所有的文件锁信息,所以会包含大量的数据。

当一个进程持有文件锁并陷入死循环时,其在 /proc/locks 文件中的条目可能会持续存在,显示出该进程持有的锁以及相关的信息。

sudo cat /proc/cpuinfo

当一个并发运行的程序陷入死循环时,/proc/cpuinfo 文件通常不会有直接的变化。/proc/cpuinfo 文件包含了有关 CPU 的信息,例如 CPU 型号、速度、缓存大小、支持的特性等,这些信息通常是静态的,不会因为程序的运行状态而有所改变。

即使某个程序陷入死循环导致 CPU 使用率升高,/proc/cpuinfo 中的信息也不会随之改变。因为 cat /proc/cpuinfo 命令显示的是CPU的静态信息,仅在系统启动时读取一次,之后不再更新。

sudo cat /proc/modules

当一个并发运行的程序陷入死循环时,/proc/modules 文件通常不会有直接的变化。/proc/modules 文件包含了当前加载的内核模块的信息,这些信息在程序陷入死循环时通常不会有变化。

内核模块一般是在系统启动时加载的,并且在运行时很少会发生变化。即使某个程序陷入死循环,已加载的内核模块的信息也不会受到影响。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值