- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二观察Linux行为
实验时间
6小时
实验目的
学习Linux内核、进程、存储和其他资源的一些重要特征。
实验目标
编写一个程序使用/proc机制检查反映机器平均负载、进程资源利用等方面 的各种内核值。在得到内核状态之后,将所观察到的行为在屏幕上输岀。
背景知识
Linux、Solaris和其他版本的UNIX提供了一-种非常有用的检查内核状态机 制,叫做/proc文件系统。这是可以用来完成本练习的关键机制。
1. /proc文件系统
/proc文件系统是一种操作系统机制,它的接口就像传统UNIX文件系统的 一个目录(在根目录中)。可以改变到/proc正如改变到任何其他目录,例如,
bash$ cd /proc
使/proc作为当前目录。一旦把/proc作为当前目录,就可以用Is命令列出 它的内容。其内容看起来像普通的文件和目录。但是,/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.66Linux (egcs-1.1.2 release)) #1 Mon Sep 27 10:40:35
EDT 1999
为了读取一个伪文件的内容,可以打开文件然后使用stdio程序库中的例程 如fgets()或者fscanf()来读取文件。所读的确切文件(和表)依赖于所使用的特 定Linux版木。想要知道到底有些什么文件接口通过/proc对你可用,请查看系 统上的proc使用手册页。
使用 argc 和 argv
在程序的B部分和C部分,需要从shell向程序传递参数。Linux中,C主 程序依然可以采用argc和argv来传递参数。具体用法这里不再赘述。
问题陈述
编写一个程序,通过检查内核状态报告Linux内核行为。程序在stdout ±打 印以下信息:
CPU类型和型号。
?内核版本
从系统最后一次启动以来的时间,形式为dd:hh:mm:ss (例如,3天13小时 46分32秒应该写出03:13:46:32)o
改写A部分程序,加入命令行参数,在stdout上再打印以下信息:
CPU花费在用户态、系统态和空闲态的时间。
?系统接收到的磁盘请求。
?内核执行的上下文转换的次数。
?系统最后启动的时间。
?从系统启动开始创建的进程数。
改写B部分程序,根据不同的命令行参数,在stdout ±再打印以下信息: ?计算机配置的内存数量。
?当前可用的内存数量。
? 平均负载列表(至上一分钟的平均数)。
该信息将使另外的程序可以查看各个时间的这些值,因此用户可以了解平均 负载如何随时间间隔而变化。对于本程序,提供两个命令行参数:
一个表明应该以什么样的频率从内核读取平均负载。
一个表明应该以多长的时间间隔读取平均负载。
A部分程序可以叫做ksamp, B部分程序ksamp -s, C部分程序ksamp -1 2 60,表示平均负载观察将运行60秒,每隔2秒取样一次。为了观察系统上的 负载,需要确保计算机正在做一些其他的工作而不是仅仅运行你的程序。例如, 打开和关闭窗口、移动窗口,甚至在其他窗口运行一些程序。
组织方案
对于B部分和C部分,程序必须在命令行上有不同的参数。因此最先的动 作之一应该是解析调用程序的命令行以确定通过argv数组传递到它的shell参 数。可参考如下代码:
int main( int argc, char *argv[]) {
char repTypeName[16];
? ? ?
//决定报告类型 reportType = STANDARD; strcpy( repTypeName, Standard);
if (argol) {
sscanf( argv[l], %c%c, cl, c2 );
if ( cl != “?“ ) {
fprintf( stderr, usa
您可能关注的文档
最近下载
- AP预备微积分 2024年真题 附答案和评分标准 AP Pre-Calculus 2024 Real Exam with Answers and Scoring Guidelines.pdf VIP
- 6.3工艺的类别与选择探究金工工艺(课件)-2024--2025学年高中通用技术苏教版(2019)必修.pptx VIP
- 耐药结核病全口服短程治疗专家共识.pptx VIP
- 4.1汉字的起源与演变规律(全国导游基础知识 第五版 ).ppt VIP
- 部编版语文六年级上册第2单元《口语交际:演讲》课件.pptx VIP
- 4.5旅游名联选读(全国导游基础知识 第五版 ).ppt VIP
- Unit 2 My school things Speed up(教学课件)-三年级英语上学期(外研版2024秋).pptx
- 未来五到十年传染病疫情监测与预警系统分析报告2025.docx
- 麟龙四量图通达信指标公式程序.docx VIP
- 大学生入党自传范文2000字范文.doc VIP
文档评论(0)