您好,欢迎访问三七文档
1.实验目的通过本实验,了解Linux系统的组织和行为,观察各种存储系统状态信息的内核变量;熟悉这些结构与信息。2实验内容1.理解linux操作系统以及./proc文件。2.熟悉codeblocks,学习linux下C程序调试技术。3.根据给定的程序观察cpuinfo/version/stat/uptime。4.编程实现对meminfo/loadavg/interrupts/filesystem的观测。3.实验环境Ubuntu14.044.实验步骤(过程)1.使用gcc编译并运行程序test1.c2.新建工程,使用codeblocks编程实现对meminfo/loadavg/interrupts/filesystem的观测。3.完成实验报告,报告里面需要记录实验详细过程,并对test1和自建工程里面观察到的内核信息(cpuinfo/version/stat/uptime/meminfo/loadavg/interrupts/filesystem进行解读。5.实验结果1)结果展示a.图一b.图二2)结果解读A.图一是使用codeblocks编程实现对编程实现对系统程序meminfo/loadavg//filesystems的观测。a.meminfo文件里是有关内存的信息。一共有内存1025288kb。没被占用的有114520kb缓冲区有115068kbcache有387384kbswapcache有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文件里是正在运行的内核版本。为linuxversion3.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.gcctest1.c–otest1.c命令是使用gcc编译器执行编译。d../test1.c命令是执行test1.c文件。6.程序代码#includestdio.h#includestdlib.hvoidfunc_A(){inti;charc[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);//打开stat文件in4=fopen(/proc/uptime,r);//打开uptime文件in5=fopen(/proc/meminfo,r);//打开meminfo文件in6=fopen(/proc/loadavg,r);//打开loadavg文件in7=fopen(/proc/interrupts,r);//打开interrupts文件in8=fopen(/proc/filesystems,r);//打开filesystems文件for(i=0;i5;i++)fgets(c,512,in1);printf(cpu类型及型号:%s,c+13);fgets(c,512,in2);printf(内核版本:%s,c+13);fgets(c,512,in3);printf(stat:%s,c+13);fgets(c,512,in4);printf(uptime:%s,c+13);fgets(c,512,in5);printf(meminfo:%s,c+13);fgets(c,512,in6);printf(loadavg:%s,c+13);fgets(c,512,in7);printf(interrupts:%s,c+13);fgets(c,512,in8);printf(filesystems:%s,c+13);fclose(in1);fclose(in2);fclose(in3);fclose(in4);fclose(in5);fclose(in6);fclose(in7);fclose(in8);}intmain(){func_A();return0;}
本文标题:观察linux行为
链接地址:https://www.777doc.com/doc-5015283 .html