《linux協(xié)議棧源碼分析》讀書報(bào)告

《linux協(xié)議棧源碼分析》讀書報(bào)告

ID:26069149

大小:102.50 KB

頁數(shù):14頁

時(shí)間:2018-11-24

《linux協(xié)議棧源碼分析》讀書報(bào)告_第1頁
《linux協(xié)議棧源碼分析》讀書報(bào)告_第2頁
《linux協(xié)議棧源碼分析》讀書報(bào)告_第3頁
《linux協(xié)議棧源碼分析》讀書報(bào)告_第4頁
《linux協(xié)議棧源碼分析》讀書報(bào)告_第5頁
資源描述:

《《linux協(xié)議棧源碼分析》讀書報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、讀書報(bào)告題目《Linux協(xié)議棧源碼分析》-13-/13一、介紹-2-1.1、中斷模型-2-1.1.1、軟中斷-2-1.1.2、硬中斷-2-1.2、硬中斷和軟中斷的區(qū)別-2-二、中斷處理-3-2.1、中斷線-3-2.1.1、中斷線分配方式-3-2.1.2、特性-3-2.2、硬中斷處理-4-2.2.1、硬中斷的開關(guān)-4-2.2.2、注冊軟中斷處理函數(shù)-4-2.3、軟中斷處理-5-2.3.1、軟中斷的開關(guān)-5-2.3.2、注冊軟中斷處理函數(shù)-5-2.3.3、待處理的軟中斷檢查和執(zhí)行-6-2.4、軟中斷處理和硬中斷

2、處理區(qū)別-6-2.5、關(guān)于中斷上下文的一些宏-6-三、中斷處理中數(shù)據(jù)結(jié)構(gòu)-6-3.1、中斷描述符-6-3.2、中斷描述符表和中斷描述符數(shù)組-9-3.3、中斷控制器描述符(PIC、APIC)-10-3.4、中斷服務(wù)例程(ISR)-12-四、總結(jié)-13--13-/13一、介紹1.1、中斷模型Linux支持CPU的外部硬件中斷和內(nèi)部中斷。不管是內(nèi)部還是外部中斷,系統(tǒng)都會(huì)根據(jù)接收到的中斷信息,查詢idt表。idt表依照中斷源的位置按序組成,并對應(yīng)中斷服務(wù)程序(以及異常處理程序)的入口地址。Linux系統(tǒng)在初始化頁式

3、虛存管理的初始化以后,便調(diào)用trap_init和init_IRQ兩個(gè)函數(shù)進(jìn)行中斷機(jī)制的初始化。1.1.1、軟中斷內(nèi)部中斷包含系統(tǒng)調(diào)用陷入和異常。(1)系統(tǒng)調(diào)入陷入系統(tǒng)調(diào)用就是軟件有計(jì)劃地調(diào)用CPU提供的特殊指令,觸發(fā)CPU內(nèi)部產(chǎn)生一個(gè)中斷,于是完成一次核內(nèi)核外運(yùn)行空間的切換。(2)異常異常就是軟件無意的執(zhí)行了一個(gè)非法指令(比如除0)從而造成CPU內(nèi)部引發(fā)一次中斷。?1.1.2、硬中斷外部中斷特指外部設(shè)備發(fā)出的中斷信號。但這幾種中斷的CPU處理過程基本相同,即:在執(zhí)行完當(dāng)前指令后,或在執(zhí)行當(dāng)前指令期間,根據(jù)中

4、斷源所提供的“中斷向量”,在內(nèi)存中找到相應(yīng)的ISR(中斷服務(wù)例程)然后調(diào)用之。?1.2、硬中斷和軟中斷的區(qū)別(1)軟中斷是執(zhí)行中斷指令產(chǎn)生的,而硬中斷是由外設(shè)引發(fā)的。(2)硬中斷的中斷號是由中斷控制器提供的,軟中斷的中斷號由指令直接指出,無需使用中斷控制器。(3)硬中斷是可屏蔽的,軟中斷不可屏蔽。(4)硬中斷處理程序要確保它能快速地完成任務(wù),這樣程序執(zhí)行時(shí)才不會(huì)等待較長時(shí)間,稱為上半部。(5)軟中斷處理硬中斷未完成的工作,是一種推后執(zhí)行的機(jī)制,屬于下半部。?-13-/13二、中斷處理2.1、中斷線  每個(gè)能

5、夠產(chǎn)生中斷的設(shè)備或者模塊都會(huì)在內(nèi)核中注冊一個(gè)中斷服務(wù)例程(ISR),當(dāng)產(chǎn)生中斷時(shí),中斷處理程序會(huì)被執(zhí)行,在中斷處理程序中,首先會(huì)保存中斷向量號和上下文,之后執(zhí)行中斷線對應(yīng)的中斷服務(wù)例程。對于CPU來說,中斷線是非常寶貴的資源,而由于計(jì)算機(jī)的發(fā)展,外部設(shè)備數(shù)量和種類越來越多,導(dǎo)致了中斷線資源不足的情況,linux為了應(yīng)對這種情況,實(shí)現(xiàn)了兩種中斷線分配方式,分別是:共享中斷線,中斷線動(dòng)態(tài)分配。2.1.1、中斷線分配方式(1)共享中斷線  多個(gè)設(shè)備共用一條中斷線,當(dāng)此條中斷線發(fā)生中斷時(shí),因?yàn)椴豢赡茴A(yù)先知道哪個(gè)特定

6、的設(shè)備產(chǎn)生了中斷,因此,這條中斷線上的每個(gè)中斷服務(wù)例程都會(huì)被執(zhí)行,以驗(yàn)證是哪個(gè)設(shè)備產(chǎn)生的中斷(一般的,設(shè)備產(chǎn)生中斷時(shí),會(huì)標(biāo)記自己的狀態(tài)寄存器,中斷服務(wù)例程通過檢查每個(gè)設(shè)備的狀態(tài)寄存器來查找產(chǎn)生中斷的設(shè)備),因此共享中斷線的分配方式是比較常見的。(2)中斷線動(dòng)態(tài)分配  一條中斷線在可能使用的時(shí)刻才與一個(gè)設(shè)備驅(qū)動(dòng)程序關(guān)聯(lián)起來,這樣一來,即使幾個(gè)硬件設(shè)備并不共享中斷線,同一個(gè)中斷向量也可以由這幾個(gè)設(shè)備在不同時(shí)刻運(yùn)行。2.1.2、特性(1)中斷處理程序正在運(yùn)行時(shí),CPU會(huì)通知中斷控制器屏蔽產(chǎn)生此中斷的中斷線。此中斷

7、線發(fā)出的信號被暫時(shí)忽略,當(dāng)中斷處理程序結(jié)束時(shí)恢復(fù)此中斷線。(2)在中斷服務(wù)例程的設(shè)計(jì)中,原則上是立即處理緊急的操作,將非緊急的操作延后處理(交給軟中斷進(jìn)行處理)。(3)中斷處理程序是運(yùn)行在中斷上下文,但是其是代表進(jìn)程運(yùn)行的,因此它所代表的進(jìn)行必須處于TASK_RUNNING狀態(tài),否則可能出現(xiàn)僵死情況,因此在中斷處理程序中不能執(zhí)行任何阻塞過程。-13-/132.2、硬中斷處理2.2.1、硬中斷的開關(guān)簡單禁止和激活當(dāng)前處理器上的本地中斷:local_irq_disable();local_irq_enable(

8、);保存本地中斷系統(tǒng)狀態(tài)下的禁止和激活:unsignedlongflags;local_irq_save(flags);local_irq_restore(flags);2.2.2、注冊軟中斷處理函數(shù)設(shè)備驅(qū)動(dòng)程序要處理硬件中斷,必須掛接ISR,則掛接一個(gè)ISR可以用這個(gè)函數(shù),要注意的是你在掛接ISR之前要正確的初始化你的設(shè)備,并且要保證用正確的順序掛接中斷。里面調(diào)用?setup_irq?就是把創(chuàng)建的irqacti

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。