亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2014-09-23 03:19:36殷亞玲
        電子設(shè)計(jì)工程 2014年13期
        關(guān)鍵詞:圖形化內(nèi)核進(jìn)程

        張 龍 ,殷亞玲

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

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

        張 龍1,殷亞玲2

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

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

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

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

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

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

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

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

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

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

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

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

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

        4 )平均負(fù)載率

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

        2 軟件的實(shí)現(xiàn)

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

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

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

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

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

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

        底層部分:由于軟件設(shè)計(jì)要對(duì)Linux底層部分進(jìn)行操作,因此這部分對(duì)Linux底層內(nèi)存、進(jìn)程及相關(guān)信息的讀取與計(jì)算均使用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)解封裝后,有序的顯示在圖形界面中,并對(duì)進(jìn)程的管理進(jìn)行圖形化操作。

        3 )具體實(shí)現(xiàn)

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

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

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

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

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

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

        主要算法如下:

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

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

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

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

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

        界面設(shè)計(jì)使用QT Creator作為工具,需要展示的數(shù)據(jù)主要包括內(nèi)存使用信息及內(nèi)存利用率,系統(tǒng)平均負(fù)載率,以及進(jìn)程的狀況和內(nèi)存使用信息,將這些數(shù)據(jù)分開放置于QTabWidgt中的三個(gè)界面上,將從底層獲取到的結(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平臺(tái)開發(fā)的Linux操作系統(tǒng)內(nèi)存管理圖形化工具很好的解決了傳統(tǒng)的Linux管理工作只能通過命令在終端實(shí)現(xiàn)的缺點(diǎn),不直觀,也不利于非專業(yè)用戶的普及,可視化管理界面更加直觀,也使非專業(yè)用戶對(duì)Linux操作系統(tǒng)的內(nèi)存管理更加容易。通過測(cè)試,該系統(tǒng)的基本功能已全部實(shí)現(xiàn),滿足了日常內(nèi)存管理的基本需求。

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

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

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

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

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

        [6]倪繼利.Qt及Linux操作系統(tǒng)窗口設(shè)計(jì)[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 稿件編號(hào):201310061

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

        猜你喜歡
        圖形化內(nèi)核進(jìn)程
        萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        債券市場(chǎng)對(duì)外開放的進(jìn)程與展望
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        LKJ自動(dòng)化測(cè)試系統(tǒng)圖形化技術(shù)研究
        運(yùn)用圖形化聽寫式復(fù)習(xí),構(gòu)建高效地理課堂
        圖形化地區(qū)電網(wǎng)無功優(yōu)化軟件開發(fā)與應(yīng)用
        社會(huì)進(jìn)程中的新聞學(xué)探尋
        圖形化儀表控制系統(tǒng)上位機(jī)軟件的設(shè)計(jì)與開發(fā)
        东北少妇不戴套对白第一次| av在线免费观看你懂的| 91久久精品一二三区色| 国产精品会所一区二区三区| 人妻无码一区二区视频| 久久久久成人亚洲综合精品| 亚洲精品精品日本日本| 97成人精品视频在线| 亚洲色爱免费观看视频| 欧美一级在线全免费| 精品国产一区二区三区毛片| 丰满少妇人妻久久精品| 久久99精品国产麻豆宅宅| 2021国产最新在线视频一区| 精品国产三级国产av| 人妻久久久一区二区三区蜜臀 | 在线观看国产内射视频| 久久精品国产精品亚洲艾| 人妻 丝袜美腿 中文字幕| 无码任你躁久久久久久| 亚洲片在线视频| 91成人国产九色在线观看| 啦啦啦中文在线观看日本| 秒播无码国产在线观看| 久久这里只有精品黄色| 亚洲国产高清精品在线| 亚洲欧洲∨国产一区二区三区| 日本一区二区三区激情视频| 亚洲一区二区三区色偷偷| 精品国产第一国产综合精品| .精品久久久麻豆国产精品| 伊人亚洲综合影院首页| 久久精品一区午夜视频| 国产成人无码一区二区在线观看| 亚洲嫩草影院久久精品| 少妇人妻精品久久888| 亚洲av永久无码精品三区在线| 国产在线精品一区二区在线看| 中文字幕一区二区在线看| 亚洲人精品午夜射精日韩| 久久99精品久久久久久|