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

正文內(nèi)容

中國科大操作系統(tǒng)復(fù)習(xí)題解-在線瀏覽

2025-07-25 13:55本頁面
  

【正文】 以通過直接讀寫進(jìn)程數(shù)據(jù)段如全局變量進(jìn)行(仍需要同步互斥機(jī)制保證數(shù)據(jù)訪問的一致性)。d) 線程與進(jìn)程相比的主要優(yōu)點(diǎn):n 創(chuàng)建、終止、切換快,系統(tǒng)開銷少;n 通信方便n 由于同進(jìn)程內(nèi)線程間共享內(nèi)存和文件資源,故可直接進(jìn)行不通過內(nèi)核的通信;n 系統(tǒng)允許的最大線程數(shù)限制弱得多;e) 采用多線程的程序設(shè)計(jì)技術(shù),可以更好提高系統(tǒng)的運(yùn)行性能(如吞吐量、計(jì)算速度和響應(yīng)時(shí)間等)。 3)線程不可以參與資源分配:n 一個(gè)進(jìn)程內(nèi)可容納多個(gè)線程。8. 請說明windows系統(tǒng)中與線程描述有關(guān)的數(shù)據(jù)結(jié)構(gòu),以及線程創(chuàng)建的基本過程。 )線程的創(chuàng)建:一般首個(gè)線程在進(jìn)程創(chuàng)建的結(jié)束階段被自動創(chuàng)建(由父進(jìn)程代為創(chuàng)建);其它線程由進(jìn)程自己調(diào)用系統(tǒng)API函數(shù)創(chuàng)建。n 為新線程分配堆棧、創(chuàng)建并初始化執(zhí)行上下文。n 進(jìn)一步設(shè)置目標(biāo)線程的KTHREAD數(shù)據(jù)結(jié)構(gòu),包括:n 設(shè)定新線程在用戶空間執(zhí)行入口始址。n 將其上下文中的斷點(diǎn)(返回點(diǎn))設(shè)置成指向內(nèi)核中的一段程序KiThreadStartup,使得該線程一旦被調(diào)度運(yùn)行時(shí)就從這里開始執(zhí)行。①內(nèi)存分配與回收:為每個(gè)進(jìn)程創(chuàng)建執(zhí)行空間,分配初始所需基本內(nèi)存,并允許進(jìn)程在執(zhí)行中動態(tài)申請/釋放內(nèi)存;②實(shí)現(xiàn)有效的存儲保護(hù)與共享;③主存擴(kuò)充(擴(kuò)充主存的大?。┮胩摂M存儲技術(shù),用外存擴(kuò)充主存數(shù)量,彌補(bǔ)物理內(nèi)存數(shù)量的不足;④提高主存的利用率采用合理得當(dāng)?shù)乃惴?、策略和?shù)據(jù)結(jié)構(gòu);☆提高計(jì)算機(jī)資源利用率的根本途徑是采用多道程序設(shè)計(jì)技術(shù),實(shí)現(xiàn)并發(fā)共享。若將首次適應(yīng)策略改為最壞適應(yīng)策略、最佳適應(yīng)策略或循環(huán)首次適應(yīng)策略,該如何修改算法?一種典型的動態(tài)分區(qū)分配算法//采用首次適應(yīng)算法和FBC結(jié)構(gòu)long get_block(int x, byte * p) { //請求大小為X int i。 i=1。amp。 if (FBC[i].size ==0) {p=null。} p=FBC[i].addr。 if (y=delt) { FBC[i].size= y。 } return x。 long y。j=1。amp。i++。for(i=1。i++)if(avail[i]=max)max=avail[j]。 return 0 。 y=avail[i].sizex。 avail[i].addr= avail[i].addr+x。 }最佳適應(yīng)策略: 此處有錯(cuò),循環(huán)結(jié)束條件欠妥,最后應(yīng)該給FBC賦值(懶得改了)long get_block(int x, byte * p) { //請求大小為X int i,j,min。 i=1。 while ( FBC[i].size!=0 amp。 FBC[i].size=x) { avail[j++]=FBC[i]。} min=avail[1]。ij。 if (aval[i].size ==0) {p=null。} p=avail[i].addr。 if (y=delt) { avail[i].size= y。 } return x。 //全局變量long get_block(int x, byte * p) { //請求大小為X long y。flag=1。amp。 if (FBC[i].size ==0) {p=null。} p=FBC[i].addr。 if (y=delt) { FBC[i].size= y。 } return x。頁式分配管理的基本思想:n 進(jìn)程使用線性邏輯地址LA(32位、一維、連續(xù))n OS透明地將線性地址分頁,n 即將32位地址劃分為兩段:p=[LA/頁大小]。n 頁式分配的特點(diǎn):l 優(yōu)點(diǎn):內(nèi)存分配適應(yīng)性更強(qiáng);沒有外碎片;每個(gè)進(jìn)程浪費(fèi)空間不超過1個(gè)頁。4. 試描述帶有快表的頁式地址變換機(jī)制。為了提高存取速度,可在地址變換機(jī)構(gòu)中增設(shè)一個(gè)具有并行查找能力的高速緩沖寄存器,又稱為“聯(lián)想寄存器”或“快表”,用以存放當(dāng)前被頻繁訪問的頁面的也好和對應(yīng)的頁表項(xiàng)。如果在快表中未找到對應(yīng)的頁號,則仍需訪問內(nèi)存中的頁表來進(jìn)行地址轉(zhuǎn)換,同時(shí)還必須將得到的頁表項(xiàng)與頁號一起裝入到快表中,若快表已滿,則還需根據(jù)置換算法淘汰某個(gè)快表項(xiàng),已裝入新內(nèi)容。5. 試描述引入目錄頁的、具有兩級頁表的頁式地址變換機(jī)制。以32位邏輯地址空間為例,家丁頁面大小為4kB,若采用1級頁表結(jié)構(gòu),須具有20位頁號占1M;在采用兩級頁表結(jié)構(gòu)時(shí),再對頁表進(jìn)行分頁,使每個(gè)頁表中包含210個(gè)頁表項(xiàng),此時(shí)邏輯地址結(jié)構(gòu)如下:3122 2112 110P1P2d外層頁號外層頁內(nèi)地址頁內(nèi)地址6. 說明段式分配管理的基本數(shù)據(jù)結(jié)構(gòu),以及段式系統(tǒng)的地址變換機(jī)制。例如,序中主程序、子程序、靜態(tài)變量、堆棧等,都是基于段的。l 程序加載時(shí),OS為所有的段分配所需內(nèi)存,每個(gè)段被分配在一個(gè)連續(xù)分區(qū);但進(jìn)程中的各個(gè)段可離散分配到主存的不同分區(qū);l 在為每個(gè)段分配物理內(nèi)存時(shí),采用動態(tài)分區(qū)管理方法。1)局部性原理:l 程序在執(zhí)行過程中的一個(gè)較短時(shí)期,所執(zhí)行的指令地址和操作數(shù)地址,將局限于一定區(qū)域內(nèi)。2)虛擬存儲管理實(shí)現(xiàn)的基本思想:n 程序裝入時(shí),不必將其全部讀入內(nèi)存,只需將當(dāng)前執(zhí)行需要的部分頁(或段)裝入內(nèi)存,就可讓程序開始執(zhí)行。n 另一方面,OS還將暫時(shí)不用的頁(段)調(diào)出內(nèi)存,以騰出更多的可用內(nèi)存空間。n 與覆蓋技術(shù)相比,虛擬存儲實(shí)現(xiàn)對用戶透明,不影響用戶編程結(jié)構(gòu),用戶可在高達(dá)232的虛空間編制程序。請求分頁的虛存系統(tǒng)需對頁式系統(tǒng)進(jìn)行如下幾方面的擴(kuò)充:l 對頁表的頁表項(xiàng)(PTE)進(jìn)行擴(kuò)展,增加一些必要的管理標(biāo)志位(它們占用PTE原先恒為0的低位段,故并不需要擴(kuò)大PTE的大?。?。(軟件擴(kuò)展)l 支持自動選取/設(shè)定工作集大小,及動態(tài)維護(hù)、修剪工作集。9. 在請求分頁系統(tǒng)中,頁故障中斷有何特點(diǎn)?請描述這類系統(tǒng)的缺頁故障處理機(jī)制。c) 一條指令可能產(chǎn)生多次中斷。故障處理的基本過程:n 當(dāng)發(fā)生缺頁故障時(shí),OS會向外存(頁文件或頁映射文件)發(fā)出讀操作調(diào)入相關(guān)頁面;n 頁面調(diào)入I/O操作是同步的,即線程會進(jìn)入睡眠等待直到I/O完成(‘等待事件’到來)被喚醒。,若內(nèi)存分配有固定/可變兩種,置換有全局/局部置換兩種,那么,基于分配與置換的組合,可得到哪幾種頁面置換策略?共有四種,分別為:固定內(nèi)存分配,全局置換策略:采用該策略是,為進(jìn)程分配的物理塊數(shù)目在進(jìn)程的整個(gè)生命周期都固定不變,若進(jìn)程因調(diào)入頁面而需要換出某個(gè)頁面,可以從全局進(jìn)行置換??勺儍?nèi)存分配,全局置換策略:采用該策略時(shí),系統(tǒng)先為每個(gè)進(jìn)程分配一定數(shù)目的物理塊,當(dāng)進(jìn)程發(fā)生缺頁時(shí),若系統(tǒng)中有空閑的物理塊,則為其分配一個(gè)物理塊并裝入缺頁;若系統(tǒng)中已沒有空閑的物理塊,則為其分配一個(gè)物理塊并裝入缺頁;若系統(tǒng)中已沒有空閑的物理塊,則從內(nèi)存中選擇一頁換出,再裝入缺頁,被換出的頁可以是系統(tǒng)中任意進(jìn)程的頁,這樣,自然又會使那個(gè)進(jìn)程的物理塊減少,進(jìn)而使其缺頁率增加。由于進(jìn)程是動態(tài)的,即使在運(yùn)行之前為它分配了適當(dāng)數(shù)目的內(nèi)存塊,在采用固定分配局部置換策略時(shí),進(jìn)程在運(yùn)行過程中仍然可能會因?yàn)閮?nèi)存塊太少而頻繁缺頁,或者因?yàn)閮?nèi)存塊太多而浪費(fèi)空間。如果進(jìn)程在運(yùn)行時(shí)頻繁發(fā)生缺頁中斷,則系統(tǒng)需為該進(jìn)程分配若干附加的物理塊,直至其缺頁率減少到適當(dāng)程度為止;反之,若一個(gè)進(jìn)程的缺頁率特別低,則可以適當(dāng)減少分配給它的物理塊,但不應(yīng)引起其缺頁率的明顯增加。、FIFO、LFU、LRU、CLOCK及改進(jìn)CLOCK等置換算法的基本思想,若假設(shè)系統(tǒng)采用固定分配局部替換的頁面調(diào)入策略,并假設(shè)某進(jìn)程在創(chuàng)建時(shí),分配到了3個(gè)頁面框。幾種算法的基本思想:最佳算法(optimal, OPT)n 選擇未來最長時(shí)間不使用頁進(jìn)行置換(最理想算法);先進(jìn)先出算法(FIFO)l 選擇最先進(jìn)入駐留集的頁面進(jìn)行置換;最不常用算法(Least Frequently Used, LFU)178。最近最久未使用算法(Least Recently Used, LRU)216。時(shí)鐘算法(clock)v 也稱最近未用算法(Not Recently Used,NRU),是LRU和FIFO的折衷。所有駐留頁面組織為類似時(shí)鐘的環(huán)形緩沖池,置換時(shí)采用一個(gè)類時(shí)鐘指針,從當(dāng)前指針位置開始順時(shí)針?biāo)阉鳈z查ub=0的頁框,選擇首個(gè)遇到的ub=0的頁框進(jìn)行置換。 第一輪候選對象:A=0∧M=0,失敗進(jìn)入下一輪252。 第三輪,先將所有目標(biāo)駐留頁面框的A復(fù)位,再從滿足A=0∧M≠0的候選頁面框中,進(jìn)行一輪選擇。概念:Any entity or any abstract machine ponent ,if it satisfies following charactics:(滿足以下三個(gè)特征的任何實(shí)體或抽象的計(jì)算機(jī)元件:)(1) a process must request it from OS (進(jìn)程需要從操作系統(tǒng)申請它)(2)the process must block its exeution until the entity is allocated to it (資源未分配給進(jìn)程時(shí),進(jìn)程處于阻塞狀態(tài))(3)the coexisting process will pete for resources if they need resources (當(dāng)互斥的進(jìn)程需要資源時(shí),進(jìn)程之間處于競爭關(guān)系)分類:分類一:(1)可分配,用完要?dú)w還(可歸還)(2)無需分配的抽象資源分類二:(1)可同時(shí)共享資源 (2)臨界資源特性:有限性:2. 什么是臨界區(qū)?請說明臨界區(qū)的代碼模式、同步原則。g_cs)。 // 臨界區(qū)結(jié)構(gòu)對象    CRITICAL_SECTION g_cs。    UINT ThreadProc10(LPVOID pParam)    { // 進(jìn)入臨界區(qū)    EnterCriticalSection(amp。 // 對共享資源進(jìn)行寫入操作    for (int i = 0。 i++)    {    g_cArray[i] = a。    }   // 離開臨界區(qū)    LeaveCriticalSection(amp。    return 0。g_cs)。 i 10。    Sleep(1)。g_cs)。    }    ……    void CSample08View::OnCriticalSection()    {   // 初始化臨界區(qū)    InitializeCriticalSection(amp。   // 啟動線程    AfxBeginThread(ThreadProc10, NULL)。   // 等待計(jì)算完畢    Sleep(300)。    AfxMessageBox(sResult)。   任何時(shí)候,處于臨界區(qū)內(nèi)的進(jìn)程不可多于一個(gè)。   進(jìn)入臨界區(qū)的進(jìn)程要在有限時(shí)間內(nèi)退出,以便其它進(jìn)程能及時(shí)進(jìn)入自己的臨界區(qū)??臻e則入(必須):當(dāng)沒有進(jìn)程處于臨界區(qū)時(shí),可以允許一個(gè)請求進(jìn)入臨界區(qū)的進(jìn)程立即進(jìn)入臨界區(qū)。讓權(quán)等待(錦上添花):當(dāng)進(jìn)程不能進(jìn)入臨界區(qū)時(shí),應(yīng)釋放處理機(jī)。這些算法都是基于平等競爭的同步實(shí)現(xiàn)算法,它們能實(shí)現(xiàn)“有限等待”和“讓權(quán)等待”這兩條原則嗎?1)禁止中斷結(jié)合共享標(biāo)志變量:Enter(lock){Disable interrupt()。Enable interrupt()}Exit (lock){Disable interrupt()。Enable interrupt()。Turn=j。amp。}CRFlag{i}=false。old=*lock。Return old。While (TS(amp。CRLock=false。Temp=*a。*b=temp。While(key==true)Swap(amp。key)CRLock=false。信號量定義:*是一種最最經(jīng)典,能有效解決進(jìn)程同步的軟件方法,也是現(xiàn)代OS中最具基本的同步機(jī)制。 LIST_ENTRY queue。void P (semaphore s) //wait (semaphore s) // P操作定義{ 。 調(diào)用阻塞原語,主動放棄CPU進(jìn)入睡眠等待。 if ( =0) { , 將對應(yīng)進(jìn)程狀態(tài)改為就緒態(tài)后。信號量解決臨界區(qū)問題:Proc_0 { while (1) { normal pute section。 critical section0。 }}。fork(proc_0,0)。Proc_1 {
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1