999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux內(nèi)存管理圖形化的研究與實現(xiàn)

2014-09-23 03:19:36殷亞玲
電子設(shè)計工程 2014年13期
關(guān)鍵詞:進(jìn)程界面程序

張 龍 ,殷亞玲

(1西安歐亞學(xué)院 陜西 西安 710065;2西安財經(jīng)學(xué)院 陜西 西安 710100)

Linux內(nèi)存管理圖形化的研究與實現(xiàn)

張 龍1,殷亞玲2

(1西安歐亞學(xué)院 陜西 西安 710065;2西安財經(jīng)學(xué)院 陜西 西安 710100)

針對Linux操作系統(tǒng)的內(nèi)核屬性以及文件系統(tǒng)特性進(jìn)行研究,利用Qt平臺的圖形化界面庫,開發(fā)設(shè)計了一個Linux下圖形界面的內(nèi)存管理系統(tǒng)。可視化的圖形界面使用戶可以更加方便的對系統(tǒng)內(nèi)存使用情況進(jìn)行跟蹤分析和管理。最后對系統(tǒng)進(jìn)行了測試,達(dá)到了系統(tǒng)設(shè)計目標(biāo)。

Linux;內(nèi)存;進(jìn)程;Qt

傳統(tǒng)的Linux管理工作都是通過命令在終端實現(xiàn)的,沒有圖形界面的工具,不利于非專業(yè)用戶的普及,Linux內(nèi)存管理系統(tǒng)的圖形化可以幫助非專業(yè)用戶了解操作系統(tǒng)運行時的具體性能,可視化的界面操作也可以使他們對操作系統(tǒng)的內(nèi)存管理更加容易,對于專業(yè)用戶也提供了較為直觀方便的監(jiān)控方式,免除了命令行操作下的繁瑣與抽象。

1 Linux內(nèi)存管理簡介

1 )內(nèi)存的分配

在Linux中內(nèi)存是以進(jìn)程為單位進(jìn)行分配的,Linux系統(tǒng)上所有運行的單位都可以稱之為一個進(jìn)程。因此所有運行的進(jìn)程都要占用內(nèi)存。

進(jìn)程正式的定義是在自身的虛擬地址空間運行的一個單獨的程序。進(jìn)程與程序是有區(qū)別的,進(jìn)程不是程序,雖然它由程序產(chǎn)生。程序不占用內(nèi)存空間,是一段靜態(tài)的代碼,而進(jìn)程是在Linux操作系統(tǒng)中占用內(nèi)存空間的獨立單位。

因此對內(nèi)存的管理和監(jiān)控就是以進(jìn)程為單位進(jìn)行的。

2 )Linux虛擬文件系統(tǒng)proc

Linux操作系統(tǒng)的文件系統(tǒng)中有一個叫做proc的文件系統(tǒng)十分特別,它包含了一些目錄和虛擬文件。但是這些目錄和文件并不是真正的文件,它不占用磁盤空間,只是內(nèi)存信息的一個映射。這些虛擬文件可以向用戶呈現(xiàn)內(nèi)核的一些信息,也可以用作一種向內(nèi)核發(fā)送信息的手段[1],這個虛擬文件系統(tǒng)在內(nèi)核空間和用戶空間之間建立了一個通信窗口,本文正是通過訪問proc文件系統(tǒng),對內(nèi)存信息進(jìn)行讀取和管理。

3 )內(nèi)存利用率

即已使用的物理內(nèi)存占總物理內(nèi)存的比例,是表示計算機(jī)系統(tǒng)內(nèi)存使用情況的重要特征。

4 )平均負(fù)載率

平均負(fù)載率,是指在特定時間間隔內(nèi)運行隊列中的平均進(jìn)程數(shù)。這個數(shù)據(jù)用以評估目前系統(tǒng)性能的高低。一般來說只要每個CPU所運行的當(dāng)前活動進(jìn)程數(shù)不大于3就表示系統(tǒng)性能良好;如果CPU的任務(wù)數(shù)大于5時,就表示該機(jī)器性能遇到嚴(yán)重問題。

2 軟件的實現(xiàn)

1 )QT編譯環(huán)境及編程環(huán)境

QT是一款跨平臺的C++圖形用戶界面庫,由挪威TrollTech公司出品,后被NOKIA公司收購。QT可支持多種操作系統(tǒng),如Linux、Windows、MAC OS X等。

QT主要應(yīng)用于嵌入式開發(fā)平臺[2],可方便實現(xiàn)跨平臺產(chǎn)品,這里使用的是較新的QT4.7版本。

2 )系統(tǒng)結(jié)構(gòu)

軟件分為兩層架構(gòu):底層和界面顯示部分。

將程序分為兩層開發(fā),可以有效地降低程序的復(fù)雜度,提高程序的可維護(hù)性。關(guān)于底層部分,需要解決的問題主要是Linux系統(tǒng)各項內(nèi)存指標(biāo)數(shù)據(jù)的獲得和將得到的數(shù)據(jù)結(jié)構(gòu)合理的封裝,以備上層調(diào)用。

底層部分:由于軟件設(shè)計要對Linux底層部分進(jìn)行操作,因此這部分對Linux底層內(nèi)存、進(jìn)程及相關(guān)信息的讀取與計算均使用C語言編寫,該部分為程序的內(nèi)核部分代碼。主要負(fù)責(zé)進(jìn)程、內(nèi)存信息的讀取、數(shù)據(jù)格式的轉(zhuǎn)換、數(shù)據(jù)結(jié)構(gòu)的封裝并為上層應(yīng)用程序提供接口。

界面顯示部分:此處用Qt creator工具進(jìn)行內(nèi)存管理界面的圖形化,負(fù)責(zé)將從下層得到的數(shù)據(jù)結(jié)構(gòu)解封裝后,有序的顯示在圖形界面中,并對進(jìn)程的管理進(jìn)行圖形化操作。

3 )具體實現(xiàn)

要以進(jìn)程為單位對內(nèi)存進(jìn)行管理,在Linux操作系統(tǒng)中,通常是以進(jìn)程的id號來確認(rèn)進(jìn)程的,這里就需要對Linux內(nèi)存的進(jìn)程號進(jìn)行遍歷并加以保存,實現(xiàn)過程分為以下5個步驟:

①內(nèi)存信息流文件的訪問

通過調(diào)用 open、close、read和 write對 proc文件系統(tǒng)進(jìn)行操作讀取相應(yīng)的內(nèi)存信息[3]。

②進(jìn)程id的遍歷

為了得到Linux操作系統(tǒng)中所有進(jìn)程的內(nèi)存信息,必須將所有進(jìn)程的id遍歷出來。

實現(xiàn)進(jìn)程id遍歷有很多種方法,比如遍歷task_struct鏈表,或者建立進(jìn)程的hash表來解決這一問題,這樣可以快速通過進(jìn)程id獲取當(dāng)前進(jìn)程描述符,但是考慮到此時程序必須運行在內(nèi)核態(tài),才可以訪問進(jìn)程的內(nèi)核內(nèi)存空間的指針,在Qt下實現(xiàn)比較困難,而且由于內(nèi)核版本的更新,hash表的命名可能會發(fā)生改變,對于不同版本的移植也造成極大困難,使程序的可移植性變差[4]。因此本文為了使程序具備可良好的移植性,結(jié)合Linux系統(tǒng)文件系統(tǒng)的一般特性,采用遍歷/proc目錄下的文件的方法以達(dá)到遍歷進(jìn)程的目的。

主要算法如下:

③數(shù)據(jù)的選取

通過遍歷proc文件系統(tǒng),將系統(tǒng)的內(nèi)存信息以及每個進(jìn)程的信息讀取出來并加以處理。Linux將內(nèi)存信息映射在/proc目錄下的meminfo文件中[5],系統(tǒng)需要使用其中有用的Totalmemory、Freememory、Buffers、Cached 、SwapTotal 以 及SwapFree這幾個項目的數(shù)據(jù),選取其中一部分讀取出來,包括pid,進(jìn)程名,動態(tài)優(yōu)先級,使用內(nèi)存大小,運行時間,運行狀態(tài)等。

④整體數(shù)據(jù)結(jié)構(gòu)設(shè)計

保存內(nèi)存等數(shù)據(jù),使用結(jié)構(gòu)體類型封裝。考慮到包含的數(shù)據(jù)類型和種類。對于Linux系統(tǒng)的整體內(nèi)存情況,平均負(fù)載等,將其封裝如下:這樣展示層就可以直接通過調(diào)用結(jié)構(gòu)體指針來獲取其中的數(shù)據(jù)。

⑤軟件界面的設(shè)計

界面設(shè)計使用QT Creator作為工具,需要展示的數(shù)據(jù)主要包括內(nèi)存使用信息及內(nèi)存利用率,系統(tǒng)平均負(fù)載率,以及進(jìn)程的狀況和內(nèi)存使用信息,將這些數(shù)據(jù)分開放置于QTabWidgt中的三個界面上,將從底層獲取到的結(jié)構(gòu)體中的數(shù)據(jù)轉(zhuǎn)換格式后放置于QLabel控件[6]上。

內(nèi)存信息顯示界面如圖1所示。

圖1 內(nèi)存管理信息Fig.1 Memory information

系統(tǒng)平均負(fù)載如圖2所示。

進(jìn)程信息如圖3所示。

圖2 平均負(fù)載Fig.2 Average load

3 結(jié)束語

圖3 進(jìn)程信息Fig.3 Process information

本文基于Linux內(nèi)核研究,使用QT平臺開發(fā)的Linux操作系統(tǒng)內(nèi)存管理圖形化工具很好的解決了傳統(tǒng)的Linux管理工作只能通過命令在終端實現(xiàn)的缺點,不直觀,也不利于非專業(yè)用戶的普及,可視化管理界面更加直觀,也使非專業(yè)用戶對Linux操作系統(tǒng)的內(nèi)存管理更加容易。通過測試,該系統(tǒng)的基本功能已全部實現(xiàn),滿足了日常內(nèi)存管理的基本需求。

[1]吳國偉.Linux內(nèi)核分析與高級教程[M].北京:清華大學(xué)出版社,2012,8.

[2]Xteam(中國)軟件技術(shù)有限公司.QT程序設(shè)計[M].北京:清華大學(xué)出版社,2002.

[3]毛德操.LINUX內(nèi)核源代碼情景分析[M].杭州:浙江大學(xué)出版社,2001.

[4]陳爽.Linux與Qt程序設(shè)計 [M].北京:清華大學(xué)出版社,2011,12.

[5]Daniel Solin.24小時學(xué)通Qt編程[M].北京:人民郵電出版社,2000.

[6]倪繼利.Qt及Linux操作系統(tǒng)窗口設(shè)計[M].北京:電子工業(yè)出版社,2005.

Research and implementation of linux memory manager graphical interface

ZHANG Long1,YIN Ya-ling2
(1.Xi’an Eurasia University,Information Engineering School,Xi’an 710065,China;2.Xi’an University Of Finance And Economics,Information School,Xi’an 710100,China)

In this paper,based on research the kernel attribute of Linux system operation and file system properties,we design and implement a Linux graphical interface system of memory management,with the Qt platform graphical interface library.Using the graphic visualization interface,users can more convenient to track,analyze and management system memory usage.The result of test show that our system reached the aim of the design.

Linux;memory;process;Qt

TP315

A

1674-6236(2014)13-0072-03

2013-10-11 稿件編號:201310061

張 龍(1977—),男,陜西西安人,講師。研究方向:軟件工程。

猜你喜歡
進(jìn)程界面程序
國企黨委前置研究的“四個界面”
債券市場對外開放的進(jìn)程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
試論我國未決羈押程序的立法完善
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
人機(jī)交互界面發(fā)展趨勢研究
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
手機(jī)界面中圖形符號的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
社會進(jìn)程中的新聞學(xué)探尋
主站蜘蛛池模板: 国产a在视频线精品视频下载| 国产亚洲视频在线观看| 国产美女在线观看| 好紧太爽了视频免费无码| 久久五月视频| 日韩欧美中文亚洲高清在线| 99热这里只有精品5| 国产系列在线| 精品福利网| a毛片免费在线观看| 日本精品一在线观看视频| 一级毛片免费高清视频| 亚洲天堂视频在线观看| 国产成人精品一区二区三在线观看| 国产白丝av| 欧美一区二区丝袜高跟鞋| 香蕉久久国产超碰青草| 国产精品美女免费视频大全| 日韩午夜福利在线观看| …亚洲 欧洲 另类 春色| 午夜福利无码一区二区| 亚洲精品无码成人片在线观看 | 制服丝袜无码每日更新| 狠狠干综合| 亚洲自拍另类| 久久精品娱乐亚洲领先| 真人免费一级毛片一区二区| 1级黄色毛片| 重口调教一区二区视频| 亚洲精品国偷自产在线91正片| 91亚洲视频下载| 最新国语自产精品视频在| 国产大片黄在线观看| 中文字幕天无码久久精品视频免费| 国产精品丝袜在线| 亚洲精品图区| 亚洲午夜福利在线| 网久久综合| 很黄的网站在线观看| 亚洲va视频| 亚洲人成网站在线播放2019| 国产精品久久国产精麻豆99网站| 国国产a国产片免费麻豆| 亚洲三级视频在线观看| 成人无码区免费视频网站蜜臀| 国产中文一区a级毛片视频 | 亚洲毛片网站| 美女毛片在线| 国产精品无码影视久久久久久久| 亚洲美女久久| 中文字幕欧美日韩| 婷婷成人综合| 天天视频在线91频| 国产爽爽视频| 亚洲欧美一区二区三区麻豆| 国产精品第一区| av一区二区人妻无码| 国产人碰人摸人爱免费视频| 全裸无码专区| 在线播放91| 欧美日韩国产在线人| 亚洲无码免费黄色网址| 亚洲午夜片| 欧美色99| 日韩免费无码人妻系列| 欧美成人午夜影院| 久久a级片| 国产91色| 国产精品久久久久久久久| 91精品啪在线观看国产91九色| 亚洲国产欧美国产综合久久| 怡春院欧美一区二区三区免费| 亚洲综合色区在线播放2019| 美女免费黄网站| 美女被躁出白浆视频播放| 日韩毛片视频| 国产成人资源| 伊人久综合| 国产精品密蕾丝视频| 四虎成人精品| 91亚洲国产视频| 黄色网页在线播放|