观察linux行为 实验报告

实验二 观察Linux行为

实验时间

小时实验目的  学习Linux内核、进程、存储和其他资源的一些重要特征。实验目标  编写一个程序使用/proc机制检查反映机器平均负载、进程资源利用等方面的各种内核值。在得到内核状态之后,将所观察到的行为在屏幕上输出。背景知识  Linux、Solaris和其他版本的UNIX提供了一种非常有用的检查内核状态机制,叫做/proc文件系统。这是可以用来完成本练习的关键机制。

1/proc文件系统

/proc文件系统是一种操作系统机制,它的接口就像传统UNIX文件系统的一个目录(在根目录中)。可以改变到/proc正如改变到任何其他目录,例如,

bash$ cd /proc

使/proc作为当前目录。一旦把/proc作为当前目录,就可以用ls命令列出它的内容。其内容看起来像普通的文件和目录。但是,/proc或者其子目录中的文件实际上是读取内核变量并以ASCII字符串方式报告它们的程序。这些例程中的一些仅在伪文件打开时读取内核表,而其他例程在每次文件被访问时读表。因此各种读函数的工作方式可能与预期的有所不同,因为它们并没有在真正操作文件。

Linux提供的/proc实现可以读取很多不同的内核表。/proc中包含一些目录和文件,每个文件读取一个或多个内核变量。而具有数字名称的子目录包括更多的伪文件读取其进程ID和目录名相同的进程的有关信息。self目录包含了正在使用/proc进程的特定进程信息。/proc目录树的确切内容随Linux的版本而不同,所以必须对伪文件进行实验查看所提示的信息。

/proc中的文件可以像普通的ASCII文件一样进行读取。例如,向shell敲入以下命令:

bash$ cat /proc/version

将得到打印到stdout的类似下面的信息:

Linux version 2.2.12 (gcc version egcs-2.91.66

Linux (egcs-1.1.2 release)) #1 Mon Sep 27 10:40:35

EDT 1999

为了读取一个伪文件的内容,可以打开文件然后使用stdio程序库中的例程如fgets()或者fscanf()来读取文件。所读的确切文件(和表)依赖于所使用的特定Linux版本。想要知道到底有些什么文件接口通过/proc对你可用,请查看系统上的proc使用手册页。

2.使用argc和argv

在程序的B部分和C部分,需要从shell向程序传递参数。Linux中,C主程序依然可以采用argc和argv来传递参数。具体用法这里不再赘述。问题陈述 编写一个程序,通过检查内核状态报告Linux内核行为。程序在stdout上打印以下信息:

CPU类型和型号。

内核版本

从系统最后一次启动以来的时间,形式为dd:hh:mm:ss(例如,3天13小时46分32秒应该写出03:13:46:32)。

改写A部分程序,加入命令行参数,在stdout上再打印以下信息:

CPU花费在用户态、系统态和空闲态的时间。

系统接收到的磁盘请求。

内核执行的上下文转换的次数。

系统最后启动的时间。

从系统启动开始创建的进程数。

改写B部分程序,根据不同的命令行参数,在stdout上再打印以下信息:

计算机配置的内存数量。

当前可用的内存数量。

平均负载列表(至上一分钟的平均数)。  该信息将使另外的程序可以查看各个时间的这些值,因此用户可以了解平均负载如何随时间间隔而变化。对于本程序,提供两个命令行参数:

一个表明应该以什么样的频率从内核读取平均负载。

2) 一个表明应该以多长的时间间隔读取平均负载。

A部分程序可以叫做ksamp,B部分程序ksamp –s,C部分程序ksamp –l 2 60,表示平均负载观察将运行60秒,每隔2秒取样一次。为了观察系统上的负载,需要确保计算机正在做一些其他的工作而不是仅仅运行你的程序。例如,打开和关闭窗口、移动窗口,甚至在其他窗口运行一些程序。组织方案  对于B部分和C部分,程序必须在命令行上有不同的参数。因此最先的动作之一应该是解析调用程序的命令行以确定通过argv数组传递到它的shell参数。可参考如下代码:

int main( int argc, char *argv[] ) {

char repTypeName[16];

// 决定报告类型

reportType = STANDARD;

strcpy( repTypeName, “Standard” );

if ( argc > 1) {

sscanf( argv[1], “%c%c”, &c1, &c2 );

观察内核linux行为,观察linux行为 实验报告.doc相关推荐

  1. linux中c语言开发实验报告,Linux下C语言编程实验报告.doc

    第五章: Linux下的C语言编程 姓名: 学号:520913080429 专业:信息安全09-04 实验内容: 1.c语言编程 2.vi编辑器 3.gcc编辑器 4.gdb编辑器 5. gdb中运行 ...

  2. 观察Linux进程 线程的异步并发执行,操作系统linux版实验报告.doc

    操作系统linux版实验报告.doc (29页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 操作系统实验报告(Linux版)网络142 ...

  3. linux系统实训总结报告,Linux操作系统实验报告.doc

    Linux操作系统实验报告.doc LINUX 操作系统实验报告课 程 Linux 操作系统 专 业 学 号 姓 名 指导教师 XXXXX 系20 年 月 日实验一 LINUX 基本命令实验目的1.掌 ...

  4. 嵌入式跑马灯实验报告linux,ARM嵌入式跑马灯设计实验报告.doc

    ARM嵌入式跑马灯设计实验报告.doc ARM嵌入式设计实验报告 题目: 跑马灯的设计 专 业: 班 级: 姓 名: 学 号: 指导教师: 2014年11 月 目 录 1 题目要求---------- ...

  5. 课程linux实验报告,Linux操作系统课程实验报告.doc

    Linux操作系统课程实验报告.doc Linux操作系统课程实验报告班级姓名学号指导老师田丽华完成时间2014年7月目录一.实验目的1二.实验要求1三.实验内容1[第一题]1[第二题]2[第三题]4 ...

  6. linux东软培训答案,东软Linux实验报告.doc

    东软Linux实验报告.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档 ...

  7. Linux系统及应用(实验报告)---用户和用户组管理

    Linux系统及应用(实验报告)-用户和用户组管理 实验目的: 1.了解用户和用户组实验 2.熟悉图形的方式进行用户和用户组管理的方法 3.熟悉命令行的操作方式进行用户和用户组的管理方法 实验原理: ...

  8. linux实验4报告带截图,华北科技学院Linux综合实验报告.doc

    华北科技学院Linux综合实验报告.doc 华北科技学院计算机系综合性实验实 验 报 告 课程名称 Linux操作系统 实验学期 2017 至 2018 学年 第 二 学期学生所在院部 管理学院 年级 ...

  9. matlab+nnf.m,中南大学-信号与系统matlab实验报告.doc

    中南大学-信号与系统matlab实验报告.doc 实验一 基本信号的生成 1 实验目的 学会 使用 MATLAB 产生各种常见的连续时间信号与离散时间信号: 通过 MATLAB 中的绘图工具对产生的信 ...

  10. 微型计算机组装实验报告虚拟,计算机硬件的组装实验报告.doc

    计算机硬件的组装实验报告.doc 计 算 机 硬 件 的 组 装 实验时间3月30日晚600-900 学号 姓名 一.实验目的1.加深对理论知识的理解,提高实际动手能力:2.了解计算机的主要部件,理解 ...

最新文章

  1. C++继承中构造函数、析构函数调用顺序及虚析构函数
  2. LightOJ 1401 No More Tic-tac-toe 博弈论SG打表
  3. HBase基础和伪分布式安装配置
  4. git master主分支_Git分支管理策略及简单操作
  5. MATLAB 优化程序【profile简明用法】
  6. Gazebo加载模型时黑屏
  7. 【jvm】JVM体系
  8. bat 远程桌面登陆 命令_内网渗透之域渗透命令执行总结
  9. python 流式编程_Java8 Stream流式编程,极大解放你的生产力!
  10. 基于Python实现语义分析
  11. 互亿无线短信接口接入
  12. 编程运维的一些小Tips
  13. 【PYTHON】利用Python爬取电影网站
  14. Supervisor管理springboot应用
  15. 大数据——Flink 知识点整理
  16. Postgresql通过docker进行高可用部署 pgpool-II
  17. 认识 DELL EMC VPLEX VS6物理配置
  18. idea2019版本有效激活码error问题
  19. CentOS 8.2云服务器定时运行脚本
  20. 珍惜身边所有,因为来日不方长。

热门文章

  1. hls fifo_【正点原子FPGA连载】第一章HLS简介--领航者ZYNQ之HLS 开发指南
  2. 鼠标右键转圈圈_鼠标右键文件夹出现转圈圈假死机情况
  3. 32位 shell.efi x86_Linux 的 32 位内核自 Meltdown 以来一直有问题
  4. Linux C : 进程管理实验:创建进程、上下文切换
  5. 启明云端分享|大家都知道ESP32-C3是乐鑫5月刚量产的芯片,大家都传是取代ESP8266的,目前也确实有很多客户升级应用选择替换,那Esp8266与Esp32-C3 从硬件到应用开发有哪些不同呢
  6. 启明云端分享|注意了,ESP-12F和ESP-12S虽然只有一个字母不同,但在选型时,要注意了,ESP-12F底部是有焊盘的!
  7. 启明云端分享|SSD201_自动升级固件与烧录MAC地址
  8. 尹成python爬虫百度云_Python爬虫实战:抓取并保存百度云资源
  9. vi的插入模式下退格和方向键不能使用的解决方法
  10. Kubernetes入门——深入浅出讲Docker