操作系统实验11 Linux proc系统.doc_第1页
操作系统实验11 Linux proc系统.doc_第2页
操作系统实验11 Linux proc系统.doc_第3页
操作系统实验11 Linux proc系统.doc_第4页
操作系统实验11 Linux proc系统.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统实验报告实验序号:实验十一 实验项目名称:Linux proc文件系统学号1207022103姓名陈华荣专业、班1班实验地点实1-311指导教师李桂森实验时间2014-12-17一、实验目的通过本实验的学习,使学生掌握Linux 系统Web服务器的配置方法,搭建简单的动态数据网站。二、实验内容实验内容:实践Linux系统Web服务器的配置操作,并搭建简单的动态网站。三、实验内容与步骤1,查看/proc 目录,了解此目录下各个目录以及文件的含义;解释以下文件的含义:proc 文件系统可以被用于收集有用的关于系统和运行中的内核的信息。下面是一些重要的文件:* /proc/cpuinfo - CPU 的信息 (型号, 家族, 缓存大小等)* /proc/meminfo - 物理内存、交换空间等的信息* /proc/mounts - 已加载的文件系统的列表* /proc/devices - 可用设备的列表* /proc/filesystems - 被支持的文件系统* /proc/modules - 已加载的模块* /proc/version - 内核版本* /proc/cmdline - 系统启动时输入的内核命令行参数* /proc/XXX XXX是指以数字编号的目录,有不少这样的目录,每一个目录表示一个进程(即线程组)* /proc/sys 可以修改的系统信息* /proc/swaps - 要获知swap空间的使用情况* /proc/uptime - 获取系统的正常运行时间* /proc/fs/nfsd/exports - 列出由NFS共享的文件系统* /proc/kmsg 该文件被作为内核日志信息源,它可以被作为一个系统信息调用的接口使用。 * /proc/kcore 该文件提供了以内核文件格式形式访问系统物理内存,并且可以被gdb用于检查任意内核数据结构的当前状态。如果装了源码,那么可以通过查看/usr/src/linux/Documentation/filesystems/proc.txt文件来获取更多的信息 。/proc/kcore文件是系统物理内存的映像2,从proc文件系统获取信息通过读取proc文件系统,获取系统各种信息,包括主机名、系统启动时间、版本号、所有进程信息等 主机名系统启动时间:/proc/uptime版本号:/proc/version3,从proc中获取相关信息,分别编程计算并显示cpu的使用率、主存的使用率和网络利用率。注:这些数据分别要从/proc/stat、/proc/net/dev、/proc/meminfo三个文件中提取,要求实时监测(周期性显示)选做:利用图形界面编程,实现类似Windows资源管理器的效果。#include#include#include#include/*声明结构体*/struct cpustatuslong total;float user;float nice;float system;float idle;struct netstatuslong total;float bytes;float packets;float errs;float drop;struct memstatusunsigned int MemTotal;float MemFree;/*计算CPU利用率*/void get_cpu_status(struct cpustatus *cpu_stat)unsigned int total;float user;float nice;float system;float idle;char cpu21;char text201;FILE *fp;fp=fopen(/proc/stat,r);while(fgets(text,200,fp)if(strstr(text,cpu)sscanf(text,%s %f %f %f %f,cpu,&user,&nice,&system,&idle);fclose(fp);total=(user+nice+system+idle);user=(user+system)/total)*100;cpu_stat-total=total;cpu_stat-user=user;cpu_stat-nice=nice;cpu_stat-system=system;cpu_stat-idle=idle;return;/*计算net利用率*/void get_net_status(struct netstatus *net_dev)unsigned int total;float bytes;float packets;float errs;float drop;char net21;char text201;FILE *fp;fp=fopen(/proc/net/dev,r);while(fgets(text,200,fp)if(strstr(text,eth0)sscanf(text,%s %f %f %f %f,net,&bytes,&packets,&errs,&drop);fclose(fp);total=(bytes+packets+errs+drop);bytes=(bytes/total)*100;net_dev-total=total;net_dev-bytes=bytes;net_dev-packets=packets;net_dev-errs=errs;net_dev-drop=drop;return;/*计算mem利用率*/void get_mem_infous(struct memstatus *mem_info)float MemTotal;float MemFree;char mem20;char text1500;char text2500;char text3500;FILE *fp;fp=fopen(/proc/meminfo,r);while(fgets(text1,500,fp)while(fgets(text2,500,fp)while(fgets(text3,500,fp)if(strstr(text1,MemTotal)sscanf(text1,%s %f,mem,&MemTotal);if(strstr(text2,MemFree)sscanf(text2,%s %f,mem,&MemFree);fclose(fp);MemFree=(MemTotal-MemFree)/MemTotal)*100;mem_info-MemTotal=MemTotal;mem_info-MemFree=MemFree;/*主函数*/int main(int ac,char*av)struct cpustatus cpu_stat;struct netstatus net_dev;struct memstatus mem_info;while(1)get_cpu_status(&cpu_stat);get_mem_infous(&mem_info);get_net_status(&net_dev);printf(CPU UsetNet UsetMemory Usen);printf(%4.2f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论