freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)實(shí)驗(yàn)報(bào)告附思考題(編輯修改稿)

2025-04-21 02:42 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 }KeEnableInterrupts(IntState)。returnStatus。測(cè)試結(jié)果:根據(jù)文檔中的測(cè)試方法可看到結(jié)果中有兩個(gè)消費(fèi)者三、綜合實(shí)驗(yàn)總結(jié)或結(jié)論1. 思考在 ps/ 文件內(nèi)的 PsWaitForSemaphore 和 PsReleaseSemaphore 函數(shù)中,為什么要使用原子操作?答:EOS 內(nèi)核中維護(hù)了大量?jī)?nèi)核數(shù)據(jù),正是這些數(shù)據(jù)描述了EOS操作系統(tǒng)的狀態(tài)如果有一組相互關(guān)聯(lián)的內(nèi)核數(shù)據(jù)共同描述了這個(gè)操作系統(tǒng)的某個(gè)狀態(tài),那么在修改這樣一組內(nèi)核數(shù)據(jù)時(shí)就必須保證一致性。這就要求修改這部分?jǐn)?shù)據(jù)的代碼在執(zhí)行過(guò)程中不能被打斷,這種操作叫做“原語(yǔ)操作”。 2. 根據(jù)本實(shí)驗(yàn) 節(jié)中設(shè)置斷點(diǎn)和調(diào)試的方法,自己設(shè)計(jì)一個(gè)類似的調(diào)試方案來(lái)驗(yàn)證消費(fèi)者線程在消費(fèi) 24 號(hào)產(chǎn)品時(shí)會(huì)被阻塞,直到生產(chǎn)者線程生產(chǎn)了 24 號(hào)產(chǎn)品后,消費(fèi)者線程才被喚醒并繼續(xù)執(zhí)行的過(guò)程。答: 生產(chǎn)到23號(hào)產(chǎn)品后,進(jìn)程阻塞。實(shí)驗(yàn) 6 時(shí)間片輪轉(zhuǎn)調(diào)度 綜合實(shí)驗(yàn)的目的與要求調(diào)試 EOS 的線程調(diào)度程序,熟悉基于優(yōu)先級(jí)的搶先式調(diào)度。為 EOS 添加時(shí)間片輪轉(zhuǎn)調(diào)度,了解其它常用的調(diào)度算法。二、實(shí)驗(yàn)正文1 準(zhǔn)備實(shí)驗(yàn)2 閱讀控制臺(tái)命令“rr”相關(guān)的源代碼3 調(diào)試線程調(diào)度程序 調(diào)試當(dāng)前線程不被搶先的情況查看 ThreadFunction 函數(shù)中變量 pThreadParameterY 的值應(yīng)該為 0,說(shuō)明正在調(diào)試的是第 0個(gè)新建的線程。按2次 F5 的循環(huán)輸出的內(nèi)容: 以二進(jìn)制格式查看就緒位圖的值BitScanReverse 函數(shù)會(huì)從就緒位圖中掃描最高優(yōu)先級(jí),并保存在變量HighestPriority 中。查看變量 HighestPriority 的值為 8。 調(diào)試當(dāng)前線程被搶先的情況激活虛擬機(jī)窗口,可以看到第 0 個(gè)新建的線程正在執(zhí)行。在“監(jiān)視”窗口中查看就緒位圖的值為 1000000000000000100000001,說(shuō)明此時(shí)在優(yōu)先級(jí)為 24的 就 緒 隊(duì) 列 中 存 在 就 緒 線 程 。 在 “ 監(jiān) 視 ” 窗 口 中 添 加 表 達(dá) 式“ ListGetCount(amp。PspReadyListHeads[24]) ”,其值為 1,說(shuō)明優(yōu)先級(jí)為 24 的就緒隊(duì)列中只有一個(gè)就緒線程。掃描就緒位圖后獲得的最高優(yōu)先級(jí)的值 HighestPriority 也就應(yīng)該是 24。顯示0x18=24繼續(xù)調(diào)試優(yōu)先級(jí)24 的線程已經(jīng)進(jìn)入了“運(yùn)行”狀態(tài)。4 為 EOS 添加時(shí)間片輪轉(zhuǎn)調(diào)度修改部分代碼:VOIDPspRoundRobin(VOID){ if(NULL!=PspCurrentThreadamp。amp。Running==PspCurrentThreadState){PspCurrentThreadRemainderTicks。 if(0==PspCurrentThreadRemainderTicks){ PspCurrentThreadRemainderTicks=TICKS_OF_TIME_SLICE。 if(BIT_TEST(PspReadyBitmap,PspCurrentThreadPriority)){PspReadyThread(PspCurrentThread)。}}}}測(cè)試:能看到 20 個(gè)線程輪流執(zhí)行的效果5 修改線程時(shí)間片的大小執(zhí)行的效果: 參數(shù)=20 參數(shù)=100 時(shí)間片過(guò)大,算法便退化成為先進(jìn)先出算法。三、綜合實(shí)驗(yàn)總結(jié)或結(jié)論1. 結(jié)合線程調(diào)度執(zhí)行的時(shí)機(jī),說(shuō)明在 ThreadFunction 函數(shù)中,為什么可以使用“關(guān)中斷”和“開(kāi)中斷”方法來(lái)保護(hù)控制臺(tái)這種臨界資源。結(jié)合線程調(diào)度的對(duì)象說(shuō)明這樣做的原因。答:EOS會(huì)設(shè)置CPU停止響應(yīng)外部設(shè)備產(chǎn)生的硬中斷,也就不會(huì)在由硬中斷觸發(fā)線程調(diào)度。開(kāi)中斷和關(guān)中斷使處理機(jī)在這段時(shí)間屏蔽掉了外界所有中斷,使他線程無(wú)法占用資源。使用開(kāi)中斷和關(guān)中斷進(jìn)程同步不會(huì)改變線程狀態(tài),可以保證那些沒(méi)有獲得處理器的資源都在就緒隊(duì)列中?!熬途w”狀態(tài)?如果此時(shí)將被中斷線程轉(zhuǎn)入了“就緒”狀態(tài)又會(huì)怎么樣?可以結(jié)合 PspRoundRobin 函數(shù)和 PspSelectNextThread 函數(shù)的流程進(jìn)行思考,并使用搶先和不搶先兩種情況進(jìn)行說(shuō)明。答:(1)因?yàn)槠渌麅?yōu)先隊(duì)列的線程等待時(shí)間不能過(guò)長(zhǎng)。(2)若將中斷線程轉(zhuǎn)入就緒隊(duì)列,只有當(dāng)此線程執(zhí)行完畢之后,其他隊(duì)列的線程才有機(jī)會(huì)進(jìn)入就緒隊(duì)列,尤其是當(dāng)其他就緒隊(duì)列中的線程關(guān)于人機(jī)交互的時(shí)候,會(huì)嚴(yán)重影響用戶體驗(yàn)。3. EOS 內(nèi)核時(shí)間片大小取 60ms,在線程比較多時(shí),就可以觀察出線程輪流執(zhí)行的情況,但是在 Windows、Linux 等操作系統(tǒng)啟動(dòng)后,正常情況下都有上百個(gè)線程在并發(fā)執(zhí)行,為什么覺(jué)察不到它們被輪流執(zhí)行,并且每個(gè)程序都運(yùn)行的很順利呢?答:因?yàn)闀r(shí)間片選取合適,線程輪流運(yùn)行,體現(xiàn)了其虛擬性。實(shí)驗(yàn) 7 物理存儲(chǔ)器與進(jìn)程邏輯地址空間的管理 綜合實(shí)驗(yàn)的目的與要求通過(guò)查看物理存儲(chǔ)器的使用情況,并練習(xí)分配和回收物理內(nèi)存,從而掌握物理存儲(chǔ)器的管理方法。通過(guò)查看進(jìn)程邏輯地址空間的使用情況,并練習(xí)分配和回收虛擬內(nèi)存, 從而掌握進(jìn)程邏輯地址空間的管理方法。 實(shí)驗(yàn)正文1 準(zhǔn)備實(shí)驗(yàn)2 閱讀控制臺(tái)命令“pm”相關(guān)的源代碼,并查看其執(zhí)行的結(jié)果3 分配物理頁(yè)和釋放物理頁(yè)按 F10 單步調(diào)試 MiAllocateAnyPages 函數(shù)的執(zhí)行過(guò)程,結(jié)果如圖可知其空閑頁(yè)為7126,零頁(yè)鏈表為0,已用表為1050.按 F10 單步調(diào)試 MiFreePages 函數(shù)的執(zhí)行過(guò)程,結(jié)果如圖可知其再分配1頁(yè)后,空閑頁(yè)為7125,零頁(yè)鏈表為0,已用表為1051,即用空閑頁(yè)分配,沒(méi)用零頁(yè)鏈表分配。4 閱讀控制臺(tái)命令“vm”相關(guān)的源代碼,并查看其執(zhí)行的結(jié)果輸入命令“ A: \”后按回車。 此時(shí)就使用 EOS 應(yīng)用程序文件 創(chuàng)建了一個(gè)應(yīng)用程序進(jìn)程,由于此進(jìn)程執(zhí)行了一個(gè)死循環(huán),所以此進(jìn)程不會(huì)結(jié)束執(zhí)行,除非關(guān)閉虛擬機(jī)。5 在系統(tǒng)進(jìn)程中分配虛擬頁(yè)和釋放虛擬頁(yè)調(diào)試釋放虛擬頁(yè)的過(guò)程:BaseAddress 由初始化的變成了和 RegionSize由初始化的變成了。在調(diào)用 MmAllocateVirtualMemory 函數(shù)時(shí)將 RegionSize 參數(shù)的值設(shè)置為PAGE_SIZE*2+1,觀察“輸出”窗口中轉(zhuǎn)儲(chǔ)的信息,輸出文本略。 綜合實(shí)驗(yàn)總結(jié)或結(jié)論1. 在本實(shí)驗(yàn) 中,如果分配了物理頁(yè)后,沒(méi)有回收,會(huì)對(duì) EOS 操作系統(tǒng)造成什么樣的影響? 目前 EOS操作系統(tǒng)內(nèi)核函數(shù) MiAllocateAnyPages 能處理所有物理頁(yè)被分配完畢的情況嗎?答:(1)會(huì)造成自由頁(yè)鏈表和零鏈表不斷減少,甚至為空。所有物理頁(yè)都分配完畢的現(xiàn)象。(2)不能。 2. 嘗試從性能的角度分析內(nèi)核函數(shù) MiAllocateAnyPages 和 MiAllocateZeroedPages。 嘗試從安全性的角度分析分配零頁(yè)的必要性。答: MiAllocateAnyPages 分配物理頁(yè)。首先從空閑頁(yè)鏈表中分配,如果分配空閑鏈表不足則再?gòu)牧沩?yè)鏈表分配。MiAllocateZeroedPages首先從零頁(yè)鏈表中分配,如果零頁(yè)不足則從空閑鏈表分配。 3. 觀察本實(shí)驗(yàn) 中使用“ vm” 命令輸出的系統(tǒng)進(jìn)程的虛擬地址描述符,可以看到在 2 號(hào)描述符和 3 號(hào)描述符之間有兩個(gè)虛擬頁(yè)的空隙,嘗試結(jié)合虛擬頁(yè)的分配和釋放說(shuō)明產(chǎn)生這個(gè)空隙的原因。答:產(chǎn)生空隙是由于虛擬頁(yè)被釋放而造成的。在啟動(dòng)時(shí)會(huì)有一個(gè)初始化線程在初始化完畢之后就退出了,線程的堆棧所占用的虛擬頁(yè)也就被釋放了。 4. 在本實(shí)驗(yàn) 中,調(diào)用 MmAllocateVirtualMemory 函數(shù)分配虛擬頁(yè)時(shí)只使用了 MEM_RESERVE 標(biāo)志,沒(méi)有使用 MEM_COMMIT 標(biāo)志,嘗試說(shuō)明這兩個(gè)標(biāo)志的區(qū)別。答:使用MEM_RESERVE標(biāo)志分配虛擬頁(yè)時(shí),沒(méi)有為其映射實(shí)際的物理頁(yè)。使用MEM_COMMIT標(biāo)志分配虛擬頁(yè)時(shí),會(huì)為其映射實(shí)際的
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1