日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

观察内核linux行为,观察linux行为 实验报告.doc

發(fā)布時(shí)間:2024/10/8 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 观察内核linux行为,观察linux行为 实验报告.doc 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

觀察linux行為 實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)二 觀察Linux行為

實(shí)驗(yàn)時(shí)間

小時(shí)實(shí)驗(yàn)?zāi)康摹 W(xué)習(xí)Linux內(nèi)核、進(jìn)程、存儲(chǔ)和其他資源的一些重要特征。實(shí)驗(yàn)?zāi)繕?biāo)  編寫一個(gè)程序使用/proc機(jī)制檢查反映機(jī)器平均負(fù)載、進(jìn)程資源利用等方面的各種內(nèi)核值。在得到內(nèi)核狀態(tài)之后,將所觀察到的行為在屏幕上輸出。背景知識(shí)  Linux、Solaris和其他版本的UNIX提供了一種非常有用的檢查內(nèi)核狀態(tài)機(jī)制,叫做/proc文件系統(tǒng)。這是可以用來(lái)完成本練習(xí)的關(guān)鍵機(jī)制。

1/proc文件系統(tǒng)

/proc文件系統(tǒng)是一種操作系統(tǒng)機(jī)制,它的接口就像傳統(tǒng)UNIX文件系統(tǒng)的一個(gè)目錄(在根目錄中)。可以改變到/proc正如改變到任何其他目錄,例如,

bash$ cd /proc

使/proc作為當(dāng)前目錄。一旦把/proc作為當(dāng)前目錄,就可以用ls命令列出它的內(nèi)容。其內(nèi)容看起來(lái)像普通的文件和目錄。但是,/proc或者其子目錄中的文件實(shí)際上是讀取內(nèi)核變量并以ASCII字符串方式報(bào)告它們的程序。這些例程中的一些僅在偽文件打開時(shí)讀取內(nèi)核表,而其他例程在每次文件被訪問(wèn)時(shí)讀表。因此各種讀函數(shù)的工作方式可能與預(yù)期的有所不同,因?yàn)樗鼈儾](méi)有在真正操作文件。

Linux提供的/proc實(shí)現(xiàn)可以讀取很多不同的內(nèi)核表。/proc中包含一些目錄和文件,每個(gè)文件讀取一個(gè)或多個(gè)內(nèi)核變量。而具有數(shù)字名稱的子目錄包括更多的偽文件讀取其進(jìn)程ID和目錄名相同的進(jìn)程的有關(guān)信息。self目錄包含了正在使用/proc進(jìn)程的特定進(jìn)程信息。/proc目錄樹的確切內(nèi)容隨Linux的版本而不同,所以必須對(duì)偽文件進(jìn)行實(shí)驗(yàn)查看所提示的信息。

/proc中的文件可以像普通的ASCII文件一樣進(jìn)行讀取。例如,向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

為了讀取一個(gè)偽文件的內(nèi)容,可以打開文件然后使用stdio程序庫(kù)中的例程如fgets()或者fscanf()來(lái)讀取文件。所讀的確切文件(和表)依賴于所使用的特定Linux版本。想要知道到底有些什么文件接口通過(guò)/proc對(duì)你可用,請(qǐng)查看系統(tǒng)上的proc使用手冊(cè)頁(yè)。

2.使用argc和argv

在程序的B部分和C部分,需要從shell向程序傳遞參數(shù)。Linux中,C主程序依然可以采用argc和argv來(lái)傳遞參數(shù)。具體用法這里不再贅述。問(wèn)題陳述 編寫一個(gè)程序,通過(guò)檢查內(nèi)核狀態(tài)報(bào)告Linux內(nèi)核行為。程序在stdout上打印以下信息:

CPU類型和型號(hào)。

內(nèi)核版本

從系統(tǒng)最后一次啟動(dòng)以來(lái)的時(shí)間,形式為dd:hh:mm:ss(例如,3天13小時(shí)46分32秒應(yīng)該寫出03:13:46:32)。

改寫A部分程序,加入命令行參數(shù),在stdout上再打印以下信息:

CPU花費(fèi)在用戶態(tài)、系統(tǒng)態(tài)和空閑態(tài)的時(shí)間。

系統(tǒng)接收到的磁盤請(qǐng)求。

內(nèi)核執(zhí)行的上下文轉(zhuǎn)換的次數(shù)。

系統(tǒng)最后啟動(dòng)的時(shí)間。

從系統(tǒng)啟動(dòng)開始創(chuàng)建的進(jìn)程數(shù)。

改寫B(tài)部分程序,根據(jù)不同的命令行參數(shù),在stdout上再打印以下信息:

計(jì)算機(jī)配置的內(nèi)存數(shù)量。

當(dāng)前可用的內(nèi)存數(shù)量。

平均負(fù)載列表(至上一分鐘的平均數(shù))。  該信息將使另外的程序可以查看各個(gè)時(shí)間的這些值,因此用戶可以了解平均負(fù)載如何隨時(shí)間間隔而變化。對(duì)于本程序,提供兩個(gè)命令行參數(shù):

一個(gè)表明應(yīng)該以什么樣的頻率從內(nèi)核讀取平均負(fù)載。

2) 一個(gè)表明應(yīng)該以多長(zhǎng)的時(shí)間間隔讀取平均負(fù)載。

A部分程序可以叫做ksamp,B部分程序ksamp –s,C部分程序ksamp –l 2 60,表示平均負(fù)載觀察將運(yùn)行60秒,每隔2秒取樣一次。為了觀察系統(tǒng)上的負(fù)載,需要確保計(jì)算機(jī)正在做一些其他的工作而不是僅僅運(yùn)行你的程序。例如,打開和關(guān)閉窗口、移動(dòng)窗口,甚至在其他窗口運(yùn)行一些程序。組織方案  對(duì)于B部分和C部分,程序必須在命令行上有不同的參數(shù)。因此最先的動(dòng)作之一應(yīng)該是解析調(diào)用程序的命令行以確定通過(guò)argv數(shù)組傳遞到它的shell參數(shù)。可參考如下代碼:

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

char repTypeName[16];

// 決定報(bào)告類型

reportType = STANDARD;

strcpy( repTypeName, “Standard” );

if ( argc > 1) {

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

總結(jié)

以上是生活随笔為你收集整理的观察内核linux行为,观察linux行为 实验报告.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。