nachos線程通信和調(diào)度分析操作系統(tǒng)課程設(shè)計(jì)

nachos線程通信和調(diào)度分析操作系統(tǒng)課程設(shè)計(jì)

ID:23804398

大?。?52.50 KB

頁(yè)數(shù):34頁(yè)

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

nachos線程通信和調(diào)度分析操作系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
nachos線程通信和調(diào)度分析操作系統(tǒng)課程設(shè)計(jì)_第2頁(yè)
nachos線程通信和調(diào)度分析操作系統(tǒng)課程設(shè)計(jì)_第3頁(yè)
nachos線程通信和調(diào)度分析操作系統(tǒng)課程設(shè)計(jì)_第4頁(yè)
nachos線程通信和調(diào)度分析操作系統(tǒng)課程設(shè)計(jì)_第5頁(yè)
資源描述:

《nachos線程通信和調(diào)度分析操作系統(tǒng)課程設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)

1、NachOS課程設(shè)計(jì)操作系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)學(xué)院:信息科學(xué)與工程學(xué)院NachOS課程設(shè)計(jì)一、理解Nachos模擬的物理機(jī)的運(yùn)行機(jī)制31.Sysdep模塊分析(文件sysdep.ccsysdep.h)52.中斷模塊分析(文件interrupt.ccinterrupt.h)103.時(shí)鐘中斷模塊分析(文件timer.cctimer.h)164.終端設(shè)備模塊分析(文件console.ccconsole.h)18二、理解Nachos中線程運(yùn)行機(jī)制191.工具模塊分析(文件list.cclist.hutility.ccutility.h)202.線程啟動(dòng)和

2、調(diào)度模塊分析(文件switch.sswitch.h)213.線程模塊分析(文件thread.ccthread.h)224.線程調(diào)度算法模塊分析(文件scheduler.ccscheduler.h)265.Nachos主控模塊分析(文件main.ccsystem.ccsystem.h)276.同步機(jī)制模塊分析(文件synch.ccsynch.h)28三、理解Nachos中支持用戶進(jìn)程的機(jī)制30一、用戶程序空間(文件address.cc,address.h)35二、系統(tǒng)調(diào)用(文件exception.cc,syscall.h,start.s)36N

3、achOS課程設(shè)計(jì)一、理解Nachos模擬的物理機(jī)的運(yùn)行機(jī)制Machine類用來(lái)模擬計(jì)算機(jī)主機(jī)。它提供的功能有:讀寫(xiě)寄存器。讀寫(xiě)主存、運(yùn)行一條用戶程序的匯編指令、運(yùn)行用戶程序、單步調(diào)試用戶程序、顯示主存和寄存器狀態(tài)、將虛擬內(nèi)存地址轉(zhuǎn)換為物理內(nèi)存地址、陷入Nachos內(nèi)核等等。Machine類實(shí)現(xiàn)方法是在宿主機(jī)上分配兩塊內(nèi)存分別作為虛擬機(jī)的寄存器和物理內(nèi)存。運(yùn)行用戶程序時(shí),先將用戶程序從Nachos文件系統(tǒng)中讀出,寫(xiě)入模擬的物理內(nèi)存中,然后調(diào)用指令模擬模塊對(duì)每一條用戶指令解釋執(zhí)行。將用戶程序的讀寫(xiě)內(nèi)存要求,轉(zhuǎn)變?yōu)閷?duì)物理內(nèi)存地址的讀寫(xiě)。Machi

4、ne類提供了單步調(diào)試用戶程序的功能,執(zhí)行一條指令后會(huì)自動(dòng)停下來(lái),讓用戶查看系統(tǒng)狀態(tài),不過(guò)這里的單步調(diào)試是匯編指令級(jí)的,需要讀者對(duì)R2/3000指令比較熟悉。如果用戶程序想使用操作系統(tǒng)提供的功能或者發(fā)出異常信號(hào)時(shí),Machine調(diào)用系統(tǒng)異常陷入功能,進(jìn)入Nachos的核心部分。Interrupt類用來(lái)模擬硬件中斷系統(tǒng)。在這個(gè)中斷系統(tǒng)中,中斷狀態(tài)有開(kāi),關(guān)兩種,中斷類型有時(shí)鐘中斷、磁盤(pán)中斷、控制臺(tái)寫(xiě)中斷、控制臺(tái)讀中斷、網(wǎng)絡(luò)發(fā)送中斷以及網(wǎng)絡(luò)接收中斷。機(jī)器狀態(tài)有用戶態(tài),核心態(tài)和空閑態(tài)。中斷系統(tǒng)提供的功能有開(kāi)/關(guān)中斷,讀/寫(xiě)機(jī)器狀態(tài),將一個(gè)即將發(fā)生中斷放

5、入中斷隊(duì)列,以及使機(jī)器時(shí)鐘前進(jìn)一步。在Interrupt類中有一個(gè)記錄即將發(fā)生中斷的隊(duì)列,稱為中斷等待隊(duì)列。中斷等待隊(duì)列中每個(gè)等待處理的中斷包含中斷類型、中斷處理程序的地址及參數(shù)、中斷應(yīng)當(dāng)發(fā)生的時(shí)間等信息。一般是由硬件設(shè)備模擬程序把將要發(fā)生的中斷放入中斷隊(duì)列。中斷系統(tǒng)提供了一個(gè)模擬機(jī)器時(shí)鐘,機(jī)器時(shí)鐘在下列情況下前進(jìn):NachOS課程設(shè)計(jì)l用戶程序打開(kāi)中斷l(xiāng)執(zhí)行一條用戶指令l處理機(jī)沒(méi)有進(jìn)程正在運(yùn)行機(jī)器時(shí)鐘前進(jìn)時(shí),中斷處理的過(guò)程如下圖所示:Nachos中斷處理時(shí)機(jī)NYNY進(jìn)行正文切換中斷處理程序要求進(jìn)行正文切換?開(kāi)中斷取出隊(duì)列中一個(gè)應(yīng)當(dāng)發(fā)生的中斷

6、,調(diào)用這個(gè)中斷的處理程序去處理中斷中斷隊(duì)列中有應(yīng)當(dāng)發(fā)生的中斷?關(guān)中斷中斷系統(tǒng)成為整個(gè)Nachos虛擬機(jī)的基礎(chǔ),其它的模擬硬件設(shè)備都是建立在中斷系統(tǒng)之上的。在此之上,加上Machine類NachOS課程設(shè)計(jì)模擬的指令解釋器,可以實(shí)現(xiàn)Nachos的線程管理、文件系統(tǒng)管理、虛擬內(nèi)存、用戶程序和網(wǎng)絡(luò)管理等所有操作系統(tǒng)功能。下圖展示了Nachos系統(tǒng)的整體結(jié)構(gòu)。用戶程序線程管理網(wǎng)絡(luò)協(xié)議文件系統(tǒng)虛擬內(nèi)存終端設(shè)備時(shí)鐘網(wǎng)絡(luò)磁盤(pán)中斷系統(tǒng)指令解釋和內(nèi)存模擬Nachos系統(tǒng)的整體結(jié)構(gòu)機(jī)器模擬的實(shí)現(xiàn):1.Sysdep模塊分析(文件sysdep.ccsysdep.h)

7、Nachos的運(yùn)行環(huán)境可以是多種操作系統(tǒng),由于每種操作系統(tǒng)所提供的系統(tǒng)調(diào)用或函數(shù)調(diào)用在形式和內(nèi)容上可能有細(xì)微的差別。sysdep模塊的作用是屏蔽掉這些差別。1.1PoolFile函數(shù)語(yǔ)法:boolPoolFile(intfd)參數(shù):fd:文件描述符,也可以是一個(gè)套接字(socket)功能:測(cè)試一個(gè)打開(kāi)文件fd是否有內(nèi)容可以讀,如果有則返回TRUE,否則返回FALSE。當(dāng)Nachos系統(tǒng)處于IDLE狀態(tài)時(shí),測(cè)試過(guò)程有一個(gè)延時(shí),也就是在一定時(shí)間范圍內(nèi)如果有內(nèi)容可讀的話,同樣返回TRUE。實(shí)現(xiàn):通過(guò)select系統(tǒng)調(diào)用。返回:打開(kāi)文件是否有內(nèi)容供讀

8、取。1.2OpenForWrite函數(shù)語(yǔ)法:intOpenForWrite(char*name)參數(shù):name:文件名功能:為寫(xiě)操作打開(kāi)一個(gè)文件。如果該文件不存在,

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

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

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