版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章Linux內(nèi)核分析第一頁(yè),共26頁(yè)。2.2Linux進(jìn)程管理
操作系統(tǒng)的重要任務(wù)之一是管理計(jì)算機(jī)的軟、硬件資源。因而操作系統(tǒng)最核心的概念就是進(jìn)程:即正在運(yùn)行的程序。進(jìn)程是一個(gè)動(dòng)態(tài)的實(shí)體,Linux的進(jìn)程具有獨(dú)立的權(quán)限與職責(zé),它在生命期內(nèi)將使用系統(tǒng)中的資源,Linux支持多種類(lèi)型的可執(zhí)行文件格式,如ELF,JAVA等。
2.2.1描述進(jìn)程的數(shù)據(jù)結(jié)構(gòu)
2.2.2進(jìn)程調(diào)度
2.2.3創(chuàng)建進(jìn)程
2.2.4進(jìn)程通信機(jī)制2第二頁(yè),共26頁(yè)。圖2-2進(jìn)程可運(yùn)行度量函數(shù)流程圖
根據(jù)進(jìn)程的調(diào)度策略區(qū)分實(shí)時(shí)進(jìn)程和普通進(jìn)程若是實(shí)時(shí)進(jìn)程,則考慮進(jìn)程的實(shí)時(shí)優(yōu)先級(jí);若是普通進(jìn)程,則只考慮counter返回weight作為衡量進(jìn)程p的權(quán)值goodness()開(kāi)始p->policy分類(lèi)返回weight作為衡量依據(jù)
SCHED_OTHER
SCHED_FIFO
SCHED_RR
weight=p->counterweight=1000+rt_priority3第三頁(yè),共26頁(yè)。圖2-3進(jìn)程的可運(yùn)行隊(duì)列task_struct
task_struct
idle_task
…………
4第四頁(yè),共26頁(yè)。圖2-4進(jìn)程通信的結(jié)構(gòu)圖
系統(tǒng)調(diào)用接口FileIPCpipesfifoNetIPCDomainSocketsFileIPCSharedMemory
MessagesQueuesSemaphoresKernelIPCWaitQueues
Signals
Linux操作系統(tǒng)支持以下幾種進(jìn)程間通信的機(jī)制:信號(hào)(Signals)、管道(Pipe)和命名管道(NamedPipe)、SystemV的IPC機(jī)制(包括信號(hào)量(Semaphore)、消息隊(duì)列機(jī)制(MessageQueuesMechanism)和共享內(nèi)存(SharedMemory))、用于網(wǎng)絡(luò)通信的套節(jié)字機(jī)制(SocketsMechanism)和全雙工管道機(jī)制。5第五頁(yè),共26頁(yè)。2.3Linux存儲(chǔ)管理圖2-5內(nèi)存管理器之間的關(guān)系
內(nèi)存管理子系統(tǒng)是操作系統(tǒng)的重要組成部分,它的主要任務(wù)是:高效地管理系統(tǒng)中的內(nèi)存資源,提供對(duì)內(nèi)存資源快速的分配和回收;提高內(nèi)存的利用率,減少內(nèi)存的浪費(fèi),充分發(fā)揮內(nèi)存的作用。Linux將內(nèi)存管理的工作劃分開(kāi),實(shí)現(xiàn)了5個(gè)不同的內(nèi)存管理器。它們分別是:
6第六頁(yè),共26頁(yè)。
一.?dāng)?shù)據(jù)結(jié)構(gòu)附:free_area數(shù)據(jù)結(jié)構(gòu)
二.頁(yè)分配
unsignedlong_get_free_pages(intgfp_mask,unsignedlongorder)
三.頁(yè)釋放
voidfree_pages(unsignedlongaddr,unsignedlongorder)
四.頁(yè)回收
當(dāng)物理內(nèi)存短缺時(shí),物理內(nèi)存管理器必須嘗試回收某些物理頁(yè),Linux創(chuàng)建了一個(gè)內(nèi)核交換守護(hù)進(jìn)程kswapd,專(zhuān)門(mén)負(fù)責(zé)物理頁(yè)的回收,當(dāng)然,頁(yè)分配函數(shù)自己也會(huì)強(qiáng)行回收物理頁(yè),而且兩者的方法也是一致的。2.3.1物理內(nèi)存管理器7第七頁(yè),共26頁(yè)。圖2-6free_area數(shù)據(jù)結(jié)構(gòu)8第八頁(yè),共26頁(yè)。2.3.2內(nèi)核內(nèi)存管理器圖2-7slab分配器的結(jié)構(gòu)
內(nèi)核在運(yùn)行過(guò)程需要大量而頻繁地使用內(nèi)存。這些內(nèi)存有以下特點(diǎn):
1、因?yàn)槭莾?nèi)核使用,因此不參與交換;2、使用時(shí)間一般都比較短;3、要求動(dòng)態(tài)分配和回收;4、要求響應(yīng)時(shí)間快,分配速度慢的管理器會(huì)導(dǎo)致整個(gè)系統(tǒng)性能的下降;5、尺寸一般都比較小,遠(yuǎn)遠(yuǎn)小于一頁(yè),如果直接使用物理內(nèi)存管理器按頁(yè)管理,其利用率會(huì)非常低。9第九頁(yè),共26頁(yè)。圖2-8高速緩存描述符與Slab描述符之間的關(guān)系10第十頁(yè),共26頁(yè)。2.3.3虛擬內(nèi)存管理器圖2-9Linux虛擬內(nèi)存的實(shí)現(xiàn)結(jié)構(gòu)11第十一頁(yè),共26頁(yè)。圖2-10虛擬內(nèi)存實(shí)現(xiàn)機(jī)制之間的關(guān)系12第十二頁(yè),共26頁(yè)。圖2-11Linux的三級(jí)頁(yè)表結(jié)構(gòu)13第十三頁(yè),共26頁(yè)。圖2-12虛擬內(nèi)存區(qū)域及其操作集的結(jié)構(gòu)14第十四頁(yè),共26頁(yè)??臻e頁(yè)面活躍頁(yè)面不活躍且修改的頁(yè)面不活躍且沒(méi)修改的頁(yè)面圖2-13Linux的頁(yè)面交換機(jī)制分配換出換出換入換入回收釋放變?yōu)閮?nèi)存空間15第十五頁(yè),共26頁(yè)。2.3.4Linux的高速緩沖機(jī)制
一.緩沖區(qū)高速緩沖(BufferCache)
二.頁(yè)面高速緩沖(PageCache)
三.交換高速緩沖(SwapCache)
四.轉(zhuǎn)換后援緩沖器(TLB)16第十六頁(yè),共26頁(yè)。2.4Linux設(shè)備管理
2.4.1Linux設(shè)備管理結(jié)構(gòu)字符設(shè)備塊設(shè)備
驅(qū)動(dòng)程序硬件設(shè)備控制器圖2-14Linux設(shè)備管理層次圖
用戶(hù)程序
系統(tǒng)調(diào)用
文件系統(tǒng)
高速緩存
17第十七頁(yè),共26頁(yè)。
2.4.2I/O控制方式
輪詢(xún)方式、中斷方式、直接內(nèi)存訪問(wèn)(DMA)
2.4.3Linux設(shè)備驅(qū)動(dòng)程序
2.4.4字符設(shè)備驅(qū)動(dòng)程序
對(duì)于設(shè)備的描述可通過(guò)device_struct數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn),如下所示: structdevice_struct{ constchar*name;//設(shè)備驅(qū)動(dòng)程序注冊(cè)的設(shè)備名稱(chēng) structfile_operations*fops;//設(shè)備的標(biāo)準(zhǔn)操作例程集,其中的操作例程由設(shè) //備驅(qū)動(dòng)程序定義,并分別完成指定的設(shè)備操作 }18第十八頁(yè),共26頁(yè)。2.4.5塊設(shè)備驅(qū)動(dòng)程序在fs/block_dev.h中有如下定義: staticstruct{ constchar*name; structblock_device_operations*bdops;}blkdevs[MAX_BLKDEV];19第十九頁(yè),共26頁(yè)。圖2-15塊設(shè)備讀寫(xiě)請(qǐng)求
blk_dev_structblk_devrequest_fricurrent_request……requestdevcmd……bhbhlailnextrequestdevcmd……bhbhlailnextbuffer_headb_devb_blocknr……b_rpeb_prev_freeb_requexl20第二十頁(yè),共26頁(yè)。2.5Linux文件系統(tǒng)
2.5.1Linux文件系統(tǒng)概述
圖2-16文件系統(tǒng)的結(jié)構(gòu)
文件是數(shù)據(jù)的集合,文件系統(tǒng)不僅包含著文件中的數(shù)據(jù)而且還有文件系統(tǒng)的結(jié)構(gòu)。文件系統(tǒng)負(fù)責(zé)在外存上管理文件,并把對(duì)文件的存取、共享和保護(hù)等手段提供給操作系統(tǒng)和用戶(hù)。它不僅方便了用戶(hù)使用,保證了文件的安全性,還可以大大地提高系統(tǒng)資源的利用率。21第二十一頁(yè),共26頁(yè)。2.5.2虛擬文件系統(tǒng)VFS
圖2-17Linux文件系統(tǒng)的層次結(jié)構(gòu)VFS的功能:1、記錄可用的文件系統(tǒng)的類(lèi)型; 2、將設(shè)備同對(duì)應(yīng)的文件系統(tǒng)聯(lián)系起來(lái); 3、處理一些面向文件的通用操作; 4、涉及到針對(duì)文件系統(tǒng)的操作時(shí),VFS把他們映射到與控制文件、目錄、以及inode相關(guān)的物理文件系統(tǒng)。22第二十二頁(yè),共26頁(yè)。圖2-18VFS與具體文件系統(tǒng)之間的關(guān)系示意圖23第二十三頁(yè),共26頁(yè)。2.5.3EXT2文件系統(tǒng)
EXT2(第二代擴(kuò)展文件系統(tǒng))由ReyCard設(shè)計(jì),它是Linux界中設(shè)計(jì)最成功的文件系統(tǒng),它很好地繼承了Unix文件系統(tǒng)的主要特色,如普通文件的三級(jí)索引結(jié)構(gòu),目錄文件的樹(shù)型結(jié)構(gòu)和把設(shè)備作為特別文件等。
Linux文件系統(tǒng)是一個(gè)邏輯的自包含的實(shí)體,它含有inode,目錄和數(shù)據(jù)塊。Linux將整個(gè)磁盤(pán)劃分成若干分
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 世界文化之旅-課件
- 《庫(kù)存管理與控制》課件
- 2024年鄉(xiāng)鎮(zhèn)計(jì)劃生育服務(wù)站工作總結(jié)
- 【課件】2024-2025學(xué)年上學(xué)期元旦主題班會(huì)課件
- 《項(xiàng)目管理》學(xué)習(xí)領(lǐng)域課程標(biāo)準(zhǔn)
- 第23課 內(nèi)戰(zhàn)爆發(fā)(解析版)
- 《設(shè)計(jì)過(guò)程質(zhì)量管理》課件
- 《生活安全指南》課件
- 化妝品行業(yè)促銷(xiāo)方案總結(jié)
- 2023-2024年項(xiàng)目部安全管理人員安全培訓(xùn)考試題【有一套】
- 微型頂管施工方案
- 湘教文藝版小學(xué)五年級(jí)音樂(lè)上冊(cè)期末測(cè)試題
- 老化箱點(diǎn)檢表A4版本
- 略說(shuō)魯迅全集的五種版本
- 2022年110接警員業(yè)務(wù)測(cè)試題庫(kù)及答案
- 中聯(lián)16T吊車(chē)參數(shù)
- DB44∕T 115-2000 中央空調(diào)循環(huán)水及循環(huán)冷卻水水質(zhì)標(biāo)準(zhǔn)
- 嵌入式軟件架構(gòu)設(shè)計(jì)
- 《石油天然氣地質(zhì)與勘探》第3章儲(chǔ)集層和蓋層
- 航道整治課程設(shè)計(jì)--
- 超星爾雅學(xué)習(xí)通《科學(xué)計(jì)算與MATLAB語(yǔ)言》章節(jié)測(cè)試含答案
評(píng)論
0/150
提交評(píng)論