- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
观察linux行为
精品文档
精品文档
收集于网络,如有侵权请联系管理员删除
收集于网络,如有侵权请联系管理员删除
精品文档
收集于网络,如有侵权请联系管理员删除
1.实验目的
通过本实验,了解Linux系统的组织和行为,观察各种存储系统状态信息的内核变量;熟悉这些结构与信息。
2实验内容
1.理解linux操作系统以及./proc文件。
2.熟悉codeblocks,学习linux下C程序调试技术。
3.根据给定的程序观察cpuinfo/version/stat/uptime。
4.编程实现对meminfo/loadavg/interrupts/filesystem的观测。
3.实验环境
Ubuntu14.04
4.实验步骤(过程)
1.使用gcc编译并运行程序test1.c
2.新建工程,使用codeblocks编程实现对meminfo/ loadavg/ interrupts/ filesystem的观测。
3.完成实验报告,报告里面需要记录实验详细过程,并对test1和自建工程里面观察到的内核信息(cpuinfo /version /stat /uptime/ meminfo /loadavg /interrupts /filesystem进行解读。
5.实验结果
结果展示
a.图一
b.图二
结果解读
A.图一是使用codeblocks编程实现对编程实现对系统程序meminfo/loadavg//filesystems的观测。
a.meminfo文件里是有关内存的信息。一共有内存1025288kb。
没被占用的有114520kb
缓冲区有115068kb
cache有387384kb
swapcache有4112kb。
b.loadavg文件里有系统平均负载均衡。
前三个参数是5分,10分,15分三个时间点的平均进程数
后面的一个分子是正在运行的进程数,有3个
分母是进程总数,有329个
最后一个是最近运行的进程ID号,为3988。
c.interrupts这个文件里每一行都有一个保留的中断,从左到右的参数是:
irq的序号
在各自cpu上发生的中断次数
可编程中断控制器
设备名称。
d.filesystems文件里是核心配置的文件系统。
nodev表示这个文件系统是虚拟文件系统;
bootfs? 存放用于系统引导时使用的各种文件,
bdev 用于存放设备文件,
proc? 虚拟文件系统,存放当前内存的映射,
rootfs 超级用户目录,
cgroup文件系统管理用户空间。
f.cpuinfo文件里信息是cpu信息。
cpu类型为英特尔酷睿,型号为i5-2400,主率为3.10GHz。
g.version 文件里是正在运行的内核版本。
为linux version 3.2-29-generic-pae.
h.stat文件内容:
user(2893):从系统启动开始累积到当前时刻,用户态的cpu时间。
nice(1405):从系统启动开始累积到当前时刻,nice值为负的进程所占
用的cpu时间。
system(8320):从系统启动开始到现在时刻,核心时间。
idle(8581):从系统启动开始累积到当前时刻,除硬盘IO等待时间以外其他等待时间。
iowait(2367):从系统启动开始累积到当前时刻,硬盘IO等待时间
irq(0):从系统启动开始累计到当前时刻,硬中断时间。
softirq(42):从系统启动开始累计到当前时刻,软中断时间。
I.uptime文件:
系统的总启动时间为1054.88秒。
系统空闲时间为871.61秒
B. 使用gcc控制命令打开test所在文件夹,并使用gcc编译器编译运行test1.
a. ls命令是打印出当前清单。
b. cd命令是切换当前目录。
c. gcc test1.c –o test1.c命令是使用gcc编译器执行编译。
d. ./test1.c命令是执行test1.c文件。
6.程序代码
#include<stdio.h>
#include<stdlib.h>
void func_A()
{
int i;
char c[512];
FILE *in1,*in2,*in3,*in4,*in5,*in6,*in7,*in8;
in1=fopen("/proc/cpuinfo","r");//打开cpuinfo文件
in2=fopen("/proc/version","r");//打开version文件
in3=fopen("/proc/stat","r");/
文档评论(0)