欧美精品一二区,性欧美一级,国产免费一区成人漫画,草久久久久,欧美性猛交ⅹxxx乱大交免费,欧美精品另类,香蕉视频免费播放

《實(shí)用操作系統(tǒng)》復(fù)習(xí)要點(diǎn)

上傳人:m**** 文檔編號(hào):50941211 上傳時(shí)間:2022-01-24 格式:DOC 頁數(shù):12 大?。?33KB
收藏 版權(quán)申訴 舉報(bào) 下載
《實(shí)用操作系統(tǒng)》復(fù)習(xí)要點(diǎn)_第1頁
第1頁 / 共12頁
《實(shí)用操作系統(tǒng)》復(fù)習(xí)要點(diǎn)_第2頁
第2頁 / 共12頁
《實(shí)用操作系統(tǒng)》復(fù)習(xí)要點(diǎn)_第3頁
第3頁 / 共12頁

本資源只提供3頁預(yù)覽,全部文檔請下載后查看!喜歡就下載吧,查找使用更方便

15 積分

下載資源

資源描述:

《《實(shí)用操作系統(tǒng)》復(fù)習(xí)要點(diǎn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《實(shí)用操作系統(tǒng)》復(fù)習(xí)要點(diǎn)(12頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、2011 年《實(shí)用操作系統(tǒng)》期末考試復(fù)習(xí)要點(diǎn) 一、考試題型說明 考試題型包括以下幾部分: 1、名詞解釋(共 5 題,每題 4 分,計(jì) 20 分) 2、計(jì)算題(共 1題,每題 15 分,計(jì) 15分) 3、簡答題(共 5題,每題 6分,計(jì) 30 分) 4、分析題(共 1 題,每題 10分,計(jì) 10分) 5、程序分析題(共 1題,每題 15 分,計(jì) 15 分) 6、程序設(shè)計(jì)題(共 1 題,每題 10 分,計(jì) 10 分) 二、復(fù)習(xí)說明 本次考試側(cè)重考察基本知識(shí)的掌握情況,所有考試內(nèi)容都來自課程 ppt 。大家在復(fù)習(xí)時(shí),要 結(jié)合復(fù)習(xí)提綱,多看 ppt ,但不需要死記硬背。另外,講義

2、中的程序代碼非常多,這些代碼 主要用作大家課后理解相關(guān)實(shí)現(xiàn)機(jī)制的補(bǔ)充材料。 因此, 大家沒有必要去仔細(xì)研讀代碼。 需 要提醒的是,在試卷中, 也會(huì)給出一段程序代碼, 需要大家說明其中的實(shí)現(xiàn)機(jī)制。 試卷中這 部分代碼也僅僅是用于輔助大家去回想 ppt 中的相關(guān)內(nèi)容,而不是考察大家對(duì)該代碼細(xì)節(jié) (每個(gè)語句)的理解。 名詞解釋要求大家能根據(jù)自己的理解、用簡單的言語解釋相關(guān)概念。 計(jì)算題要求大家能結(jié)合相關(guān)知識(shí), 給出計(jì)算結(jié)果。 評(píng)分時(shí)按步計(jì)算, 請大家務(wù)必寫出求解過 程。 簡單題希望大家通過對(duì)比分析、根據(jù)自己的理解扼要說明相關(guān)概念及實(shí)現(xiàn)機(jī)制的特點(diǎn)。 分析題要求大家根據(jù)題目要求,構(gòu)造出內(nèi)核相關(guān)算法

3、的實(shí)現(xiàn)機(jī)制示意圖。 程序分析題要求大家結(jié)合一段程序代碼,扼要說明內(nèi)核相關(guān)機(jī)制的實(shí)現(xiàn)過程。 程序設(shè)計(jì)題要求大家根據(jù)任務(wù)要求,寫出相應(yīng)代碼。該題與其他課程的程序設(shè)計(jì)要求類似, 但評(píng)分時(shí)不會(huì)過分在意語法方面的細(xì)節(jié)錯(cuò)誤。 三、復(fù)習(xí)提綱 (一)第一講 Linux 系統(tǒng)分析基礎(chǔ) 1 、單內(nèi)核、微內(nèi)核的概念 ? 微內(nèi)核: 只提供基礎(chǔ)功能,其他功能通過服務(wù)實(shí)現(xiàn) ? 微內(nèi)核功能被劃分為多個(gè)獨(dú)立過程,每個(gè)過程稱為服務(wù)器 單內(nèi)核:(Monolithic kernel ) 單內(nèi)核是一個(gè)很大的進(jìn)程。它的內(nèi)部又可以被分為若干 模塊(或者是層次或其它) 。但是在運(yùn)行的時(shí)候,它是一個(gè)獨(dú)立的二進(jìn)制大映象。其模塊間 的

4、通訊是通過直接調(diào)用其它模塊中的函數(shù)實(shí)現(xiàn) 2、 特權(quán)指令的概念及 Linux 中特權(quán)等級(jí)的分類 特權(quán)指令:指具有特殊權(quán)限的指令。這類指令只用于操作系統(tǒng)或其他系統(tǒng)軟件, 一般不直接提供給用戶使用。 在多用戶、 多任務(wù)的計(jì)算機(jī)系統(tǒng)中特權(quán)指令必不可少。 它主要用于系統(tǒng)資源的分配和管理,包括改變系統(tǒng)工作方式,檢測用戶的訪問權(quán)限, 修改虛擬存儲(chǔ)器管理的段表、頁表,完成任務(wù)的創(chuàng)建和切換等。 3、 Makefile的作用、Makefile的編寫方法、Makefile中的常用預(yù)定義變量、 偽目標(biāo).PHONY 的作用及使用方法 ? Makefile 的作用: 采用 GNU 編譯工具對(duì) .config 中

5、的源文件列表編譯 ? 完成內(nèi)核文件的配置、依賴關(guān)系及模塊的生成,隨后調(diào)用 Rules.make 編譯 ? Rules.make定義所有Makefile共用的編譯規(guī)則 Makefile支持的 make命令 ? make mrproper :檢查.o文件及文件依賴關(guān)系的正確性 ? make config :配置內(nèi)核并生成配置文件 ? make dep :根據(jù)配置文件創(chuàng)建相應(yīng)的依賴關(guān)系樹 ? make clean :清除舊版本的目標(biāo)文件 ? make zImage :編譯并用 gzip壓縮成1MB以下的內(nèi)核 未壓縮的文件是 vml in uz ? make bzImage :編譯并用

6、 gzip壓縮成1MB以上的內(nèi)核 ? make modules :編譯模塊 ? make modules_i nstall :安裝模塊 ? depmod ~a:生成模塊之間的依賴關(guān)系 ? makefile的編法:缺省情況下從 Makefile中的第一個(gè)目標(biāo)開始執(zhí)行 ? 執(zhí)行過程類似一次深度優(yōu)先遍歷 sum: main .0 sum.o gcc -o sum main .0 sum.o mai n.o: mai n.c sum.h gcc -c mai n.c sum.o: sum.c sum.h gcc -c sum.c (danteng ) ? Makefile中的常用

7、預(yù)定義變量:make可直接使用許多預(yù)定義的變量 ? AR:歸檔維護(hù)程序的名稱,默認(rèn)值為 ar ? ARFLAGS歸檔維護(hù)程序的選項(xiàng) ? AS:匯編程序的名稱,默認(rèn)值為 as ? ASFLAGS匯編程序的選項(xiàng) ? CC C編譯器的名稱,默認(rèn)值為 cc ? CFLAGS C編譯器的選項(xiàng) ? CXX C++編譯器的名稱,默認(rèn)值為 g++ ? CPPFLAGS C預(yù)編譯的選項(xiàng) ? ? 系統(tǒng)環(huán)境變量的處理 ? make過程中被解釋成 make變量 偽目標(biāo).PHONY勺作用及使用方法:(./PHONY來顯示的指名一個(gè)目標(biāo)是偽目標(biāo),有兩 個(gè)作用一個(gè)是改善性能,另外一個(gè)是來避免沖

8、突。 ) ? .phony是一個(gè)特殊工作目標(biāo) ? 用來指定一個(gè)假想的工作目標(biāo),即其后并不是一個(gè)實(shí)際文件, 且肯定要視為未更新 ? 使用場景 ? 避免與同名文件沖突、改善性能 ? 前例解決方法:.PHONY ? .PHONY: clea n ? clea n: ? $rm *.o exec_file ? make不檢查是否存在有文件名與依賴體中的一個(gè)名字相匹配的 文件,而直接執(zhí)行與之相應(yīng)的命令 ?方法:PHON目標(biāo)也可以有依賴關(guān)系 ? 使用場景 ? 當(dāng)一個(gè)目錄中有多個(gè)程序,將其放在一個(gè)makefile中會(huì)更方便 ? 因?yàn)槿笔∧繕?biāo)是makefile中的第一個(gè)目標(biāo),通常將

9、這個(gè) phony 目標(biāo)叫做"all",其依賴文件為各個(gè)程序 ? all : prog1 prog2 prog3 .PHONY: all prog1 : prog1.o utils.o cc -o prog1 prog1.o utils.o prog2 : prog2.o cc -o prog2 prog2.o prog3 : prog3.o sort.o utils.o cc -o prog3 prog3.o sort.o utils.o 4、Linux函數(shù)調(diào)用過程中堆棧結(jié)構(gòu)動(dòng)態(tài)變化過程 p2的執(zhí)行過程中又調(diào)用了函數(shù) p1 改進(jìn)程序中,main函數(shù)中調(diào)用了函數(shù) p2,而

10、在 oin eip—? pin pd P2 du? ■ 哪一 eip 一 pi(c) ? 4 eip 一 eip 一 eip— r ■ eip—> ■ main P2(M) ? ? * *-mai n 程癢的代碼段 OL ■ 電越 \ plttfs eip Q邱 c )—— p2堆棧 eip esf V 1 , mwiri堆桟 堆棧 (二)第二講進(jìn)程與線程 ? 1、Linux中進(jìn)程、線程及內(nèi)核線程的區(qū)別, 及其

11、與其他操作系統(tǒng)在實(shí)現(xiàn)機(jī)制上的 主要區(qū)別。在Linux系統(tǒng)中如何區(qū)別內(nèi)核線程與進(jìn)程。 ?(內(nèi)核線程)獨(dú)立運(yùn)行在內(nèi)核空間的標(biāo)準(zhǔn)進(jìn)程,支持內(nèi)核在后臺(tái)執(zhí)行一些操作 ? 刷新磁盤高速緩存 ? 交換出不用的頁框 ?維護(hù)網(wǎng)絡(luò)鏈接等待 ? 與普通進(jìn)程的區(qū)別 ? 只運(yùn)行在內(nèi)核態(tài),內(nèi)核線程沒有獨(dú)立的地址空間(mm指針被設(shè)置為NULL) ? 每個(gè)內(nèi)核線程執(zhí)行一個(gè)單獨(dú)的內(nèi)核函數(shù) ? 只使用大于 PAGE_OFFSE的線性地址空間 ? 進(jìn)程與線程的區(qū)別: ?從形態(tài)角度 ? 一個(gè)進(jìn)程可包含一個(gè)或多個(gè)線程 ? 從調(diào)度角度 ?進(jìn)程是資源分配的基本單位 ?線程是處理器調(diào)度的獨(dú)立單位 ?從虛擬化角度

12、 ?進(jìn)程提供兩種虛擬機(jī)制 ? 虛擬處理器:進(jìn)程獨(dú)享處理器的假象 ?虛擬內(nèi)存:進(jìn)程擁有系統(tǒng)內(nèi)所有內(nèi)存資源的假象 ? 線程之間可共享虛擬內(nèi)存,但各自擁有獨(dú)立虛擬處理器 ? 對(duì)Linux系統(tǒng)而言,線程只是一種特殊的進(jìn)程! ? 內(nèi)核態(tài)(亦稱核心態(tài)或系統(tǒng)態(tài)) ? 可執(zhí)行特權(quán)指令,訪問任意物理地址(包括系統(tǒng)空間) ?用戶態(tài) ?只能在對(duì)應(yīng)級(jí)別允許的范圍內(nèi)活動(dòng)(用戶空間) 2、Linux 2.4 與Linux 2.6 系統(tǒng)堆棧結(jié)構(gòu)的主要區(qū)別。 Linux 2.4進(jìn)程系統(tǒng)堆棧結(jié)構(gòu): Linux系統(tǒng)進(jìn)程個(gè)數(shù)限制 所有進(jìn)程的PCB及系統(tǒng)堆棧占用空間W 1/2的物理內(nèi)存總和 \內(nèi)樓堆袪

13、 進(jìn)鶴描逹符(均」K} "e眾前兇祁地址 Linux 2.6進(jìn)程系統(tǒng)堆棧結(jié)構(gòu): ?進(jìn)程描述符由slab分配器動(dòng)態(tài)生成 ? 棧底用新結(jié)構(gòu)struct thread」nfo,指向進(jìn)程描述符 <,100% + $ 兩個(gè)連續(xù)物理頁百 (約&K) Q 1 F ; Mruui thread iufu kirr?r^[lx

14、鏈表 ? 表頭僅有一個(gè)指向首節(jié)點(diǎn)的指針,而沒有指向尾節(jié)點(diǎn)的指針 ? 在可能是海量的HASH表中存儲(chǔ)的表頭就能減少一半的空間消耗 ? 讀拷貝更新(rcu) ? 以“ _rcu結(jié)尾的宏 4、fork()的vfork()主要差別及創(chuàng)建進(jìn)程/線程的主要方法(常用函數(shù))。 asrriHnkage int Sy$_fork(strnet pt_regs regsi < - r vtUin do_(oi k(SIGCHLD, neys.esp., &館9時(shí) >); Fork: ? 說明 ? 子進(jìn)程完全復(fù)制父進(jìn)程的資源 ? 子進(jìn)程的執(zhí)行獨(dú)立于父進(jìn)程 ? 進(jìn)程間數(shù)據(jù)共享需通過專門的

15、進(jìn)程間通信機(jī)制來實(shí)現(xiàn) ? 返回值 ? 父進(jìn)程執(zhí)行fork()返回子進(jìn)程的 PID值 ? 子進(jìn)程執(zhí)行fork()返回0 ? 調(diào)用失敗返回-1 齊niliM旳好 int SyS_VfOrkistmct pt_regs ief?) { retufii(lo_rorlc(clone.vfqrk I clohe_vm | siGCHLD, 0); Vfork: ? vfork()創(chuàng)建的子進(jìn)程與父進(jìn)程共享地址空間 ? 子進(jìn)程作為父進(jìn)程的一個(gè)單獨(dú)線程在其地址空間運(yùn)行 ? 子進(jìn)程從父進(jìn)程繼承控制終端、信號(hào)標(biāo)志位、可訪問的主存區(qū)、環(huán) 境變量和其他資源分配 ? 子進(jìn)程對(duì)虛擬空間任何數(shù)據(jù)的修

16、改都可為父進(jìn)程所見 ? 父進(jìn)程將被阻塞,直到子進(jìn)程調(diào)用 exeeve()或exit() ? 與fork()的關(guān)系 ? 功能相同,但vfork()但不拷貝父進(jìn)程的頁表項(xiàng) ? 子進(jìn)程只執(zhí)行exee()時(shí),vfork()為首選 ?創(chuàng)建進(jìn)程/線程的主要方法(常用函數(shù)): ? Linux進(jìn)程創(chuàng)建方法: ?在終端輸入命令,由shell進(jìn)程創(chuàng)建一個(gè)新進(jìn)程 ?進(jìn)程創(chuàng)建函數(shù) ? pid_t fork(void); ? pid_t vfork(void); ? int cion e(i nt (*fn)(void * arg), void *staek, int flags, void *

17、arg) ; ? 創(chuàng)建輕量級(jí)線程 三函數(shù)都調(diào)用同一內(nèi)核函數(shù) do_fork( ) [/kernel/fork.c] ? Linux線程的創(chuàng)建: ? 函數(shù)調(diào)用形式 ? int cion e(i nt (*fn)(void * arg), void *staek, int flags, void * arg); ? int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rt n)(void), void *restrict arg); ? tid

18、p:新線程的線程描述表指針 ? attr:為新線程定義不同屬性(如棧尺寸)默認(rèn)為NULL ? 第三個(gè)和第四個(gè)參數(shù)指定執(zhí)行的函數(shù) start_rt n 和傳遞給函數(shù) 的參數(shù)arg ? 兩者區(qū)別 ? cione()創(chuàng)建內(nèi)核支持的用戶線程,對(duì)內(nèi)核可見且由內(nèi)核調(diào)度 ? pthread_create()由基于POSIX標(biāo)準(zhǔn)的線程庫創(chuàng)建的用戶線程 ?但在 Linux 里,pthread_create()最終調(diào)用 clone()實(shí)現(xiàn) 5、Linux線程同步、條件變量相關(guān)函數(shù)的使用方法。 (三) 第三講進(jìn)程調(diào)度 1、Linux 2.4與Linux 2.6調(diào)度體系結(jié)構(gòu)的主要區(qū)別 (2.6)

19、 一一二?■二 ~n 二一二 rr--r -二二二二 I *試述LinUK 14 [j Linux 2j6逛程詢度休乘肺梅妁主耍差別.并灘旌Limx 度算 覽結(jié)構(gòu)圧譏fr機(jī)制. 1) Limi也4對(duì)有嵐第進(jìn)稈存命一個(gè)a nmqume 1憂M為走頭的個(gè)hi迸榨隊(duì)列中-湘地餐 從屮選軀最込訐調(diào)度的輦程探入運(yùn)杠,整牛臥列山 午讀/■弓口擬頂禺滬.實(shí)于處逼囂可以 丿[忡 2) Liniix2.6吩毎亡址理曙g瀚個(gè)數(shù)塑,活動(dòng)就堵進(jìn)程只列蛟組和不活砥就緒圧程*?1|敷 組.如果一個(gè)進(jìn)桿體耗完丁它的“時(shí)何片二就進(jìn)人屮話躍就緒雄科數(shù)卅的相應(yīng)趴列的陸尾* 出所行的趟觀眾“讓皐"「它的細(xì)何片交挑

20、話氐 汁謂臥就堵迸和隊(duì)列禺隊(duì)因此. 不弼耍仟:舸其他的開錯(cuò)? 至委蓋別卜Linux U的調(diào)度佯歸墓丁共亭至局馭列?HHitST CXn^開轎足桂性增 校的“陽山敗”禪牛處理曙屛百it立的就幅進(jìn)程釀列,薦牛處理罌可以:rt%巨打碉鹿很 序來挑選進(jìn)稈運(yùn)廳,平同處理器上的進(jìn)程可創(chuàng)完全ftfftt休醍*喚解和上下文臧? 0(訂調(diào)度算池皓構(gòu)|晦個(gè)敷址中有[如牛91緒建程隊(duì)列51呻1*幼毎*臥列對(duì)應(yīng)丁 UU 牛砒蟄的臬一『=通過世圏標(biāo)詁口列狀態(tài)*謂廈時(shí)* dgii fW_ft?t_bit找到第一于水為空 陽駅琳并取亂廿的進(jìn)棍即可.不首駅剤I邛序少牛卿進(jìn)程,挑選就緡程的聽度麻一毘的. 2、Linux

21、 2.4中調(diào)度優(yōu)先級(jí)的設(shè)計(jì)算法。 3、Linux 2.6 如何體現(xiàn)交互進(jìn)程優(yōu)先的? 內(nèi)核有四處對(duì)交互式進(jìn)程的優(yōu)先考慮 a) sleep_avg i. 交互式進(jìn)程因?yàn)樾菝叽螖?shù)多、時(shí)間長, sleep_avg也會(huì)相對(duì)更大一些 b) interactive_credit i. 記錄進(jìn)程的交互程度 ii. 判斷進(jìn)程是否是交互式進(jìn)程 c) TASK_INTERACTIVE宏 d) 就緒等待時(shí)間的獎(jiǎng)勵(lì) 對(duì)交互式進(jìn)程的優(yōu)先級(jí)獎(jiǎng)勵(lì) : ? 通過HIGH_CREDIT()累積方式完成獎(jiǎng)勵(lì) ?當(dāng)進(jìn)程從CPU切換下來時(shí),如果是交互式進(jìn)程,則它參與優(yōu)先級(jí)計(jì)算的 運(yùn)行時(shí)間會(huì)比實(shí)際運(yùn)行時(shí)間小,以此獲得

22、較高的優(yōu)先級(jí) ? 交互式進(jìn)程處于 TASK_UNINTERRUPTIBL狀態(tài)下的休眠時(shí)間也會(huì)疊力口 到 sleep_avg 上,從而獲得優(yōu)先級(jí)獎(jiǎng)勵(lì) 4、 Linux 2.4 與 Linux 2.6 中負(fù)載均衡的實(shí)現(xiàn)機(jī)制。 5、 idle 進(jìn)程的概念與作用。 概念:System Idle Process SYSTEM不是一個(gè)真正的進(jìn)程,是核心虛擬出來的,多 任務(wù)操作系統(tǒng)都有的!在沒有可用的進(jìn)程時(shí),系統(tǒng)處于空運(yùn)行狀態(tài),此時(shí)就是 System Idle Process SYSTEM在運(yùn)行!故它占用 97%CPU時(shí)間,說明你的機(jī)器負(fù)荷很輕!你用 WINZIP解壓一個(gè)大的文件時(shí), 就可看到

23、,System Idle Process SYSTEM 占用 CPU時(shí)間變 化。 作用:就是在 CPU空閑的時(shí)候,發(fā)出一個(gè) IDLE命令,使 CPU掛起(暫時(shí)停止工作) , 可有效的降低 CPU內(nèi)核的溫度,在操作系統(tǒng)服務(wù)里面,都沒有禁止它的選項(xiàng);默認(rèn)它 是占用除了當(dāng)前應(yīng)用程序所分配的處理器( CPU)百分比之外的所有占用率;一旦應(yīng)用 程序發(fā)出請求,處理器會(huì)立刻響應(yīng)的。 (五) 第五講系統(tǒng)調(diào)用與中斷處理 1、 封裝例程的概念與作用。 作用:屏蔽底層復(fù)雜性 將系統(tǒng)調(diào)用封裝成應(yīng)用程序可直接調(diào)用的函數(shù) (庫函數(shù) ) 概念: 2、 系統(tǒng)調(diào)用與中斷在實(shí)現(xiàn)機(jī)制上的異同點(diǎn)。 3、 中斷與異

24、常的主要區(qū)別。 ? 中斷(外中斷) ? 異步的,來自處理器之外的中斷信號(hào),在程序執(zhí)行的任何時(shí)候可能出現(xiàn) ? 會(huì)改變處理器執(zhí)行指令的順序 ? 通常與CPU芯片內(nèi)部/外部硬件電路產(chǎn)生的電信號(hào)相對(duì)應(yīng) ? 異常(內(nèi)中斷) ?同步的,在(特殊或出錯(cuò))指令執(zhí)行時(shí)由 CPU控制單元產(chǎn)生 ? 內(nèi)核為每個(gè)異常提供一個(gè)專門的異常處理程序 ? 異常處理程序的執(zhí)行一般依賴于執(zhí)行程序的當(dāng)前現(xiàn)場,不能被屏蔽,一 旦出現(xiàn)應(yīng)立即響應(yīng)并進(jìn)行處理 ? 區(qū)別 ? 中斷允許嵌套發(fā)生,但異常多數(shù)情況為一重 ? 異常處理過程中可能產(chǎn)生中斷,但反之則不會(huì)發(fā)生 “中斷信號(hào) ”通稱這兩種類型的中斷 4、 中斷上下文與

25、進(jìn)程上下文的區(qū)別。 進(jìn)程上下文:所謂的進(jìn)程上下文,就是一個(gè)進(jìn)程在執(zhí)行的時(shí)候,CPU的所有寄存器中的值、 進(jìn)程的狀態(tài)以及堆棧上的內(nèi)容, 當(dāng)內(nèi)核需要切換到另一個(gè)進(jìn)程時(shí), 它需要保存當(dāng)前進(jìn)程的所 有狀態(tài),即保存當(dāng)前進(jìn)程的進(jìn)程上下文,以便再次執(zhí)行該進(jìn)程時(shí),能夠恢復(fù)切換時(shí)的狀態(tài), 繼續(xù)執(zhí)行。 中斷上下文:可以理解為硬件傳遞過來的這些參數(shù)和內(nèi)核需要保存的一些環(huán)境, 主要是被中 斷的進(jìn)程的環(huán)境 區(qū)別:運(yùn)行在進(jìn)程上下文的內(nèi)核代碼是可以被搶占的( Linux2.6支持搶占)。但是一個(gè)中斷 上下文,通常都會(huì)始終占有 CPU (當(dāng)然中斷可以嵌套,但我們一般不這樣做) ,不可以被打 斷。 Linux內(nèi)

26、核工作在進(jìn)程上下文或者中斷上下文。提供系統(tǒng)調(diào)用服務(wù)的內(nèi)核代碼代表發(fā)起系 統(tǒng)調(diào)用的應(yīng)用程序運(yùn)行在進(jìn)程上下文;另一方面,中斷處理程序,異步運(yùn)行在中斷上下文。 中斷上下文和特定進(jìn)程無關(guān)。 5、軟中斷、tasklet及工作隊(duì)列在實(shí)現(xiàn)機(jī)制上的異同點(diǎn)。 軟中斷可以在不同 CPU上同時(shí)運(yùn)行,即使是同類型的軟中斷。 它適合需要快速響應(yīng) 的處理函數(shù),比如網(wǎng)絡(luò)收發(fā)。 tasklet不可以在不同 CPU上同時(shí)運(yùn)行(同類型,不同類型可以同時(shí)運(yùn)行)。實(shí)現(xiàn) 方法:在該tasklet上有個(gè)變量state,調(diào)度時(shí),如果該state不是運(yùn)行狀態(tài),將運(yùn)行, 并且將state設(shè)置為running狀態(tài),這樣其它 CPU不能同

27、時(shí)運(yùn)行該類型 tasklet。避 免了全局變量的鎖要求。 工作隊(duì)列適合需要睡眠的任務(wù), 它將任務(wù)交給一個(gè)內(nèi)核線程 KSoftirq來處理,這個(gè) 內(nèi)核線程和基本進(jìn)程類似,只不過它映射的內(nèi)存空間是內(nèi)核空間。 6、軟中斷調(diào)度機(jī)制。 (六)第六講系統(tǒng)調(diào)用與中斷處理 1、 邏輯地址、線性地址及物理地址的概念。 物理地址:用于內(nèi)存芯片級(jí)的單元尋址,與處理器和 CPU連接的地址總線相對(duì)應(yīng)。 邏輯地址:指的是機(jī)器語言指令中,用來指定一個(gè)操作數(shù)或者是一條指令的地址 線性地址:是邏輯地址到物理地址變換之間的中間層。程序代碼會(huì)產(chǎn)生邏輯地址,或者 說是段中的偏移地址,加上相應(yīng)段的基地址就生成了一個(gè)線性

28、地址 2、 在x86結(jié)構(gòu)中,從邏輯地址到物理地址的轉(zhuǎn)換、計(jì)算過程。 邏輯地址到線性地址的轉(zhuǎn)換: ? 檢查TI確定段描述符位置 ? 從段選擇子的index字段計(jì)算段描述符的地址 ? 將邏輯地址的偏移量與段描述符 base字段的值相加,得到線性地址 線性地址到邏輯地址的轉(zhuǎn)換: ? 第一步:形成頁表地址 ? CR3包含頁目錄的起始地址,用 32位線性地址的最高10位A31?A22作 為頁目錄的頁目錄項(xiàng)的索引, 將其乘以4(每項(xiàng)4個(gè)字節(jié)),與CR3中的頁 目錄的起始地址相加,形成相應(yīng)頁表地址 ? 第二步:形成頁面地址 ? 從指定地址取出 32 位頁目錄項(xiàng)(頁表起始地址) ,其低

29、12 位為 0 ? 用 32 位線性地址的 A21~A12 位作為頁表中的頁面的索引,將其乘以 4 , 與頁表起始地址相加,形成 32 位頁面地址 ? 第三步:形成 32 位物理地址 ? 將 A11~A0 作為相對(duì)于頁面地址的偏移量,與 32 位頁面地址相加,得到 物理地址 3、 擴(kuò)展分頁與物理地址擴(kuò)展的概念。 擴(kuò)展分頁: 用于將大段連續(xù)的線性地址轉(zhuǎn)換成相應(yīng)的物理地址 物理地址:PAE只擴(kuò)大物理地址尋址能力,線性地址仍然是 32位長 ? 內(nèi)核編程人員用同一線性地址映射不同的 RAM區(qū),PAE可顯著 增加系統(tǒng)中的進(jìn)程數(shù)量 ? 只有內(nèi)核可以修改進(jìn)程的頁表, 用戶態(tài)下運(yùn)行的進(jìn)程不

30、能使用大 于4GB的物理地址空間 4、NUMA、管理區(qū)的概念。 4、 伙伴系統(tǒng)的定義、伙伴系統(tǒng)的合并及位圖含義。 伙伴系統(tǒng)的定義: 伙伴的必要條件 a) 大小相同 b) 物理地址連續(xù) c) 假定伙伴的大小為 b,第一個(gè)伙伴的第一個(gè)頁框的物理地址必須 是2X bx 4K的倍數(shù) 事實(shí)上伙伴是通過對(duì)大塊的物理內(nèi)存劃分獲得的 d) 假如從第 0 個(gè)頁面開始到第 3 個(gè)頁面結(jié)束的內(nèi)存 e) 每次都對(duì)半劃分,那么第一次劃分獲得大小為 2 頁的伙伴 f) 進(jìn)一步劃分,可以獲得大小為 1頁的伙伴,例如0和1, 2和3 伙伴系統(tǒng)的合并及位圖含義: ? 當(dāng)兩個(gè)伙伴都空閑時(shí),則合并成一個(gè)

31、更大的塊 ? 該過程一直進(jìn)行,直到找不到可以合并的伙伴為止 ? 位圖用來描述伙伴的狀態(tài) ? 一對(duì)伙伴只使用一個(gè)位表示 ? 0:伙伴的狀態(tài)一致,此時(shí)要么全空閑,要么全不(或部 分)空閑 如果全空閑,必然被合并 兩種情況下, 對(duì)應(yīng)的塊數(shù)據(jù)結(jié)構(gòu)都不在此 free_area_t 結(jié)構(gòu)中 ? 1 :伙伴的狀態(tài)不一致,此時(shí)必然有一個(gè)空閑、一個(gè)不空 閑 表示對(duì)應(yīng)的塊數(shù)據(jù)結(jié)構(gòu)在此 free_area_t 結(jié)構(gòu)的 鏈表中 5、基于伙伴系統(tǒng)實(shí)現(xiàn)對(duì)內(nèi)容的分配與回收的算法。 塊分配函數(shù):__rmqueue(z one, order) 根據(jù)輸入?yún)?shù)order,在相應(yīng)鏈表(管理區(qū)描述符地址zone)

32、中查找連續(xù)的 空閑頁框 返回所分配的第一個(gè)頁框?qū)?yīng)的頁描述符的地址 塊釋放函數(shù): __free_pages_bulk(page, zone, order) 把釋放的頁框插入到伙伴系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)中, 以便以后可以在分配中使用 在這里循環(huán)檢查bitmap確認(rèn)伙伴塊是否空閑,空閑則合并成一個(gè)單獨(dú)的 塊,并把此塊加入到合適的鏈表中 page I14 4 1 L P?.g:e 3 』 o1 4 1 ■?■ S— 2 5 3 9、10頁面分配馬的示意 內(nèi)存分配的Buddy算法 IL 5 4 12 n 3 gp ― pa^e ? 2 inap 4 — 1 map pag? 1 Jr ―> 0 fr ee_are a.[] ……|5 p也舉 pags 訶導(dǎo)頁面釋放潔 7、Slab分配器的概念與作用。 內(nèi)存管理的目標(biāo)是提供一種方法, 為實(shí)現(xiàn)各種目的而在各個(gè)用戶之間實(shí)現(xiàn)內(nèi)存共享。 內(nèi)存管理方法應(yīng)該實(shí)現(xiàn)以下兩個(gè)功能: 一是最小化管理內(nèi)存所需的時(shí)間; 二是最大化用于 般應(yīng)用的可用內(nèi)存(最小化管理開銷) 。

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!