版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2025年操作系統(tǒng)精髓與設(shè)計原理·第五版復(fù)習題及答案一、進程管理1.簡述進程與線程的本質(zhì)區(qū)別及操作系統(tǒng)對二者的調(diào)度差異。進程是資源分配的基本單位,擁有獨立的地址空間、文件描述符等資源;線程是CPU調(diào)度的基本單位,共享所屬進程的資源。操作系統(tǒng)調(diào)度進程時需切換頁表、寄存器等上下文,開銷較大;調(diào)度線程僅需切換線程私有寄存器(如PC、棧指針),上下文切換更輕量?,F(xiàn)代OS(如Linux)通過輕量級進程(LWP)實現(xiàn)用戶級線程與內(nèi)核級線程的映射,部分系統(tǒng)支持多對一、一對一、多對多等線程模型。2.某系統(tǒng)采用多級反饋隊列調(diào)度算法,設(shè)有3個隊列Q1(時間片1ms)、Q2(時間片2ms)、Q3(時間片4ms),優(yōu)先級Q1>Q2>Q3。若進程P1在Q1中運行0.5ms后被搶占,P2在Q2中運行2ms后完成,P3在Q3中運行5ms未完成,描述各進程的后續(xù)調(diào)度流程。P1因未用完Q1時間片(1ms)被搶占(可能因更高優(yōu)先級進程到達),下次調(diào)度時仍留在Q1;P2在Q2中用完2ms時間片后完成,無需調(diào)整隊列;P3在Q3中運行5ms(超過時間片4ms),被剝奪CPU并降級到下一級隊列(若Q3為最低級則保留),下次調(diào)度時在Q3中獲得4ms時間片繼續(xù)執(zhí)行。該算法通過動態(tài)調(diào)整進程優(yōu)先級,平衡短作業(yè)響應(yīng)時間與長作業(yè)吞吐量。3.死鎖預(yù)防需破壞死鎖的四個必要條件,舉例說明如何破壞“請求和保持”條件與“循環(huán)等待”條件。破壞“請求和保持”:采用靜態(tài)分配策略,進程在運行前一次性申請所有所需資源(如某些實時系統(tǒng)的資源預(yù)分配),但可能導(dǎo)致資源利用率低下。破壞“循環(huán)等待”:對資源進行全局編號,進程按遞增順序申請資源(如將打印機設(shè)為1號、掃描儀設(shè)為2號,進程需先申請1號再申請2號),避免形成環(huán)形等待鏈。需注意,破壞“互斥”(如共享可搶占資源)僅適用于部分可搶占資源(如內(nèi)存),對臨界資源(如打印機)不可行。4.比較銀行家算法與死鎖檢測算法的核心區(qū)別及應(yīng)用場景。銀行家算法是死鎖避免策略,通過模擬資源分配后的狀態(tài)是否安全(存在安全序列)決定是否分配資源,需已知進程最大需求、當前分配和可用資源,適用于資源種類少、進程數(shù)量有限的系統(tǒng)(如數(shù)據(jù)庫事務(wù)調(diào)度)。死鎖檢測算法是事后處理,定期檢查資源分配圖是否存在環(huán)(如使用資源分配表和等待表構(gòu)建有向圖),檢測到死鎖后通過終止部分進程釋放資源,適用于資源動態(tài)分配頻繁、無法預(yù)知最大需求的場景(如通用服務(wù)器系統(tǒng))。5.進程上下文切換時,操作系統(tǒng)需要保存和恢復(fù)哪些關(guān)鍵信息?以x86架構(gòu)為例說明。需保存:通用寄存器(EAX、EBX等)、指令指針(EIP)、棧指針(ESP)、狀態(tài)寄存器(EFLAGS)、頁目錄基址寄存器(CR3)等?;謴?fù)時按相反順序加載。例如,當從用戶進程A切換到內(nèi)核線程B時,首先將A的用戶態(tài)寄存器壓入內(nèi)核棧,保存CR3(切換頁表),然后加載B的內(nèi)核棧中的寄存器值,更新EIP到B的下一條指令。上下文切換的開銷主要來自寄存器拷貝和TLB刷新(若頁表切換),現(xiàn)代OS通過內(nèi)核線程與用戶線程的綁定(如Linux的clone系統(tǒng)調(diào)用)減少切換次數(shù)。二、內(nèi)存管理6.分頁系統(tǒng)中,邏輯地址到物理地址的轉(zhuǎn)換需經(jīng)過哪些步驟?若頁表項包含有效位、修改位、訪問位、保護位,各字段的作用是什么?步驟:①將邏輯地址拆分為頁號(高位)和頁內(nèi)偏移(低位);②通過頁表基址寄存器找到頁表,以頁號為索引查找頁表項;③檢查有效位(1表示頁在內(nèi)存,0表示缺頁),若有效則取幀號,與頁內(nèi)偏移拼接得到物理地址;④若無效則觸發(fā)缺頁中斷,調(diào)入頁面后更新頁表。字段作用:有效位(標記頁是否在內(nèi)存)、修改位(標記頁是否被寫過,換出時需寫回磁盤)、訪問位(用于頁面置換算法,如LRU)、保護位(設(shè)置讀/寫/執(zhí)行權(quán)限,防止越權(quán)訪問)。7.虛擬內(nèi)存的缺頁率受哪些因素影響?若系統(tǒng)缺頁率過高(如超過10%),可能的原因及解決方法是什么?影響因素:物理內(nèi)存容量(容量小則缺頁率高)、頁面置換算法(LRU比FIFO更優(yōu))、進程工作集大?。ㄈ艄ぷ骷笥谖锢韮?nèi)存則頻繁缺頁)、程序局部性(局部性差的程序訪問分散,缺頁多)。缺頁率過高的可能原因:物理內(nèi)存不足(如同時運行大量進程)、置換算法選擇不當(如FIFO產(chǎn)生Belady異常)、進程工作集未被正確駐留(如顛簸現(xiàn)象)。解決方法:增加物理內(nèi)存、優(yōu)化置換算法(改用LRU或其近似實現(xiàn))、調(diào)整進程數(shù)量(通過交換技術(shù)將部分進程換出到磁盤)、預(yù)取頁面(根據(jù)局部性原理提前加載可能訪問的頁面)。8.比較分段與分頁的主要區(qū)別,說明段頁式管理如何結(jié)合二者優(yōu)勢。分頁是物理劃分(用戶不可見),頁大小固定(如4KB),解決內(nèi)存碎片問題;分段是邏輯劃分(用戶可見),段大小可變(如代碼段、數(shù)據(jù)段),支持共享和保護。段頁式管理先將地址空間分段(用戶視角),每段再分頁(物理視角):邏輯地址=段號+段內(nèi)頁號+頁內(nèi)偏移。通過段表找到段的頁表基址,再通過頁表找到幀號,最終得到物理地址。優(yōu)勢:既利用分段的邏輯獨立性(方便共享、保護),又利用分頁的內(nèi)存利用率(減少碎片),但增加了地址轉(zhuǎn)換復(fù)雜度(需訪問段表和頁表,可能引入TLB加速)。9.某系統(tǒng)物理內(nèi)存4GB(頁幀大小4KB),邏輯地址空間64位,采用三級頁表,頁表項大小8字節(jié)。計算各級頁表的頁號位數(shù)及頁表占用的內(nèi)存空間(假設(shè)每個頁表恰好占滿一個頁面)。物理內(nèi)存4GB=2^32B,頁幀大小4KB=2^12B,故物理地址需32位,其中頁內(nèi)偏移12位,幀號20位(32-12=20)。邏輯地址64位,三級頁表需將頁號分為三級(P1、P2、P3),剩余位為頁內(nèi)偏移(12位)。總頁號位數(shù)=64-12=52位,三級頁表均分52位(假設(shè)均分),則每級頁號約17-18位(實際可能根據(jù)頁表項數(shù)調(diào)整)。每個頁表項8字節(jié),一個頁面(4KB)可存放4KB/8B=512個頁表項,故每級頁號需9位(2^9=512)。三級頁號共27位(9×3),頁內(nèi)偏移12位,剩余64-27-12=25位(可能為擴展或保留)。每個頁表占4KB,三級頁表共需3×4KB=12KB(假設(shè)每個頁表僅一個頁面,實際可能更多,因邏輯地址空間大時頁表需多級展開)。10.簡述LRU(最近最久未使用)置換算法的實現(xiàn)方式,說明為何實際OS中常用其近似算法(如二次機會算法)。LRU需記錄每個頁面最后一次被訪問的時間,置換時選擇時間最舊的頁面。實現(xiàn)方式:①為每個頁表項添加訪問位(每訪問一次置1),定期掃描并記錄時間戳(硬件支持);②使用雙向鏈表,訪問頁面時移到鏈表頭部,置換時刪除尾部頁面。實際OS中,LRU需要維護嚴格的時間順序,硬件成本高(如需要為每個頁面維護64位時間戳),且掃描所有頁面的時間開銷大。近似算法(如二次機會)僅用訪問位(0或1),掃描時將訪問位為1的頁面置0并跳過,遇到訪問位為0的頁面置換,近似模擬LRU行為,降低實現(xiàn)復(fù)雜度。三、文件系統(tǒng)與I/O管理11.比較連續(xù)分配、鏈接分配、索引分配的優(yōu)缺點,說明UNIX文件系統(tǒng)(如ext4)采用的分配方式及優(yōu)化。連續(xù)分配:文件數(shù)據(jù)塊連續(xù)存放,支持順序和隨機訪問(直接計算物理地址),但易產(chǎn)生外部碎片(如文件刪除后留下無法利用的小空間),且文件擴展困難(需移動后續(xù)數(shù)據(jù))。鏈接分配:數(shù)據(jù)塊通過指針鏈接,無外部碎片,文件擴展靈活(添加新塊并修改前一塊指針),但僅支持順序訪問(需遍歷指針鏈),指針易損壞導(dǎo)致數(shù)據(jù)丟失。索引分配:通過索引塊記錄所有數(shù)據(jù)塊地址,支持隨機訪問(索引塊中直接查找),擴展靈活(添加新塊到索引塊),但索引塊本身占用空間(小文件需額外空間存儲索引)。ext4采用混合索引分配:i節(jié)點(索引節(jié)點)包含12個直接塊指針、1個一級間接塊指針(指向一個塊,該塊存64個數(shù)據(jù)塊指針,假設(shè)塊大小4KB,指針8字節(jié))、1個二級間接塊指針(指向一級間接塊的塊)、1個三級間接塊指針。小文件(≤12×4KB=48KB)直接用直接塊,大文件通過間接塊擴展,平衡了空間和訪問效率。12.磁盤調(diào)度算法中,SCAN與C-SCAN的區(qū)別是什么?某磁盤有200個磁道(0-199),當前磁頭在100,移動方向向磁道號增加方向,請求序列為10、50、150、180、120,分別用SCAN和C-SCAN計算總尋道長度。SCAN(電梯算法):磁頭沿一個方向移動,處理所有請求,到達端點后反向。C-SCAN:磁頭單向移動處理請求,到達端點后立即回到起點(不處理返回路徑的請求),模擬循環(huán)掃描。SCAN調(diào)度順序(方向→199):100→120→150→180(到180后,下一個請求是199方向無更高請求,反向→0)→50→10。尋道長度:(120-100)+(150-120)+(180-150)+(180-50)+(50-10)=20+30+30+130+40=250。C-SCAN調(diào)度順序:100→120→150→180(到180后,磁頭移動到199,然后立即回到0,處理剩余請求)→10→50。尋道長度:(120-100)+(150-120)+(180-150)+(199-180)+(199-0)+(10-0)+(50-10)=20+30+30+19+199+10+40=348(注:實際C-SCAN在到達端點后直接跳轉(zhuǎn),尋道長度為199-180(到端點)+(0-199)(跳轉(zhuǎn))+(10-0)+(50-10),但通常計算時忽略跳轉(zhuǎn)的物理移動,僅算處理請求的路徑,可能更合理的順序是100→120→150→180→199(端點)→0→10→50,尋道長度為(120-100)+(150-120)+(180-150)+(199-180)+(10-0)+(50-10)=20+30+30+19+10+40=149,需根據(jù)具體定義調(diào)整)。13.簡述SPOOLing技術(shù)的核心思想及在打印機管理中的應(yīng)用。SPOOLing(外部設(shè)備聯(lián)機并行操作)通過磁盤作為緩存,將獨占設(shè)備模擬為共享設(shè)備。核心思想:①輸入井/輸出井(磁盤上的緩沖區(qū))存儲I/O數(shù)據(jù);②輸入進程/輸出進程(守護進程)負責將數(shù)據(jù)從輸入設(shè)備→輸入井(預(yù)輸入),或從輸出井→輸出設(shè)備(緩輸出);③用戶進程只需與輸入井/輸出井交互,無需直接占用物理設(shè)備。打印機管理中,用戶進程提交打印任務(wù)時,先將數(shù)據(jù)寫入輸出井(磁盤),輸出進程按順序?qū)⑤敵鼍械臄?shù)據(jù)發(fā)送到打印機。這樣多個用戶可同時“共享”打印機(實際按序打?。?,避免了進程因等待打印機而阻塞,提高了CPU利用率。14.文件系統(tǒng)的一致性檢查(如fsck)主要檢查哪些內(nèi)容?舉例說明如何修復(fù)目錄項不一致的問題。一致性檢查內(nèi)容:①索引節(jié)點(i節(jié)點)的引用計數(shù)是否與目錄項中的硬鏈接數(shù)一致;②數(shù)據(jù)塊的分配位圖與實際占用情況是否一致(避免重復(fù)分配或未釋放);③目錄項的父目錄指針是否正確(防止循環(huán)目錄);④文件大小與實際占用的數(shù)據(jù)塊數(shù)是否匹配(避免元數(shù)據(jù)錯誤)。修復(fù)目錄項不一致:例如,某文件在目錄A中有一個條目(硬鏈接數(shù)1),但i節(jié)點的鏈接計數(shù)為2。檢查所有目錄,找到另一個指向該i節(jié)點的目錄B(可能是誤刪除的條目),若B存在則恢復(fù)其目錄項;若不存在則將i節(jié)點的鏈接計數(shù)減為1,避免數(shù)據(jù)塊被錯誤保留(可能導(dǎo)致空間泄漏)。四、并發(fā)與同步15.信號量機制中,P(wait)操作與V(signal)操作的原子性為何重要?若P操作不原子,可能導(dǎo)致什么問題?P操作(S.value--)的原子性確?!皺z查S.value≥0→若≥0則占用資源”的過程不可中斷,避免多個進程同時看到S.value>0而同時進入臨界區(qū),破壞互斥。若P操作不原子,假設(shè)S.value=1,進程A檢查到S.value≥0,尚未執(zhí)行S.value--時被進程B搶占,B也檢查到S.value≥0并執(zhí)行S.value--(S.value=0),此時A恢復(fù)執(zhí)行并再次S.value--(S.value=-1),兩個進程都進入臨界區(qū),導(dǎo)致數(shù)據(jù)不一致。16.用信號量解決讀者-寫者問題(寫者優(yōu)先),要求寫出信號量定義及偽代碼。信號量定義:mutex:互斥訪問讀者計數(shù)器(read_count),初始值1;write_lock:控制寫者進入,初始值1;read_preference:實現(xiàn)寫者優(yōu)先,初始值1(寫者到達時搶占該信號量,阻止新讀者進入)。偽代碼:寫者進程:wait(write_lock);寫操作;signal(write_lock);讀者進程:wait(read_preference);//寫者優(yōu)先,新讀者需等待read_preferencewait(mutex);read_count++;if(read_count==1)wait(write_lock);//第一個讀者阻止寫者signal(mutex);signal(read_preference);//釋放read_preference,允許后續(xù)讀者或?qū)懻吒偁幾x操作;wait(mutex);read_count--;if(read_count==0)signal(write_lock);//最后一個讀者釋放寫者signal(mutex);說明:寫者通過wait(write_lock)直接搶占,讀者需先獲取read_preference(寫者到達時會先搶占read_preference,阻止新讀者進入),確保寫者不會被連續(xù)到達的讀者餓死。17.比較互斥鎖(mutex)與條件變量(conditionvariable)的使用場景,說明如何用二者配合實現(xiàn)“當緩沖區(qū)滿時生產(chǎn)者等待”的邏輯。互斥鎖用于保護臨界區(qū)(確保同一時間只有一個線程訪問共享資源),條件變量用于線程間的協(xié)調(diào)(當某個條件不滿足時阻塞,條件滿足時被喚醒)。二者配合使用:互斥鎖保證對共享變量(如緩沖區(qū)狀態(tài))的原子訪問,條件變量傳遞條件變化的信號。實現(xiàn)生產(chǎn)者-消費者(緩沖區(qū)滿等待):定義:mutex:互斥鎖,初始化為1;cond_full:條件變量,初始化為0(表示緩沖區(qū)未滿);緩沖區(qū)大小N,當前計數(shù)count=0。生產(chǎn)者:lock(mutex);while(count==N){//檢查緩沖區(qū)是否滿wait(cond_full,mutex);//釋放mutex并阻塞,被喚醒時重新獲取mutex}將數(shù)據(jù)放入緩沖區(qū);count++;unlock(mutex);signal(cond_empty);//喚醒等待的消費者(假設(shè)cond_empty表示緩沖區(qū)非空)說明:wait操作原子地釋放mutex并阻塞線程,避免在等待條件時持有鎖導(dǎo)致其他線程無法修改條件。18.分析管程(monitor)與信號量的區(qū)別,為何管程更易于實現(xiàn)正確性?信號量通過P/V操作控制同步,邏輯分散在各個進程中,易因錯誤的P/V順序?qū)е滤梨i或競態(tài)條件(如忘記釋放信號量)。管程將共享變量及對其的操作封裝在一個模塊中,通過條件變量(condition)實現(xiàn)同步,同一時間僅一個進程進入管程,操作邏輯集中,減少了因分散控制導(dǎo)致的錯誤。例如,管程的入口由編譯器自動加鎖,退出時自動解鎖,程序員只需關(guān)注條件等待(wait)和條件通知(signal),降低了編程復(fù)雜度。五、操作系統(tǒng)安全19.比較自主訪問控制(DAC)與強制訪問控制(MAC)的核心區(qū)別,舉例說明Linux的文件權(quán)限(rwx)屬于哪種模型。DAC由資源所有者決定訪問權(quán)限(如用戶A創(chuàng)建文件,可設(shè)置用戶B的讀權(quán)限),靈活性高但易因所有者誤操作導(dǎo)致安全漏洞。MAC由系統(tǒng)強制實施全局策略(如多級安全策略,用戶按密級(秘密、機密、絕密)訪問對應(yīng)密級的資源),適用于高安全需求場景(如軍事系統(tǒng))。Linux的文件權(quán)限(用戶、組、其他的rwx位)屬于DAC,文件所有者可通過chmod命令修改權(quán)限(如設(shè)置文件為僅自己可寫)。20.操作系統(tǒng)如何通過地址空間隔離實現(xiàn)進程安全?以x86的保護模式為例說明段寄存器的作用。地址空間隔離確保進程只能訪問自己的地址空間,無法越界訪問其他進程或內(nèi)核空間。x86保護模式下,每個進程有獨立的頁表(CR3寄存器指向),用戶態(tài)進程的線性地址通過頁表轉(zhuǎn)換為物理地址時,若頁表項的用戶/超級用戶(U/S)位為0(內(nèi)核頁),用戶態(tài)訪問會觸發(fā)頁錯誤異常(PF),被內(nèi)核捕獲并終止非法訪問。段寄存器(如CS、DS)存放段選擇子,包含描述符表索引和特權(quán)級(RPL),通過訪問全局描述符表(GDT)或局部描述符表(LDT)獲取段基址、限長和權(quán)限,防止越界訪問段內(nèi)地址。21.簡述可信計算基(TCB)的定義,說明其在操作系統(tǒng)安全中的作用。TCB是系統(tǒng)中所有保護機制的集合(包括硬件、固件、軟件),負責實施安全策略。其作用是確保系統(tǒng)關(guān)鍵操作(如進程切換、內(nèi)存分配、文件訪問)符合安全策略,TCB的失效會直接導(dǎo)致系統(tǒng)安全漏洞。例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)法制教育試題及答案
- 社區(qū)志愿服務(wù)公益活動參與承諾書范文9篇
- 確保競爭公平性承諾書3篇范文
- 銷售數(shù)據(jù)分析報表工具增強市場洞察力
- 2026年國家公務(wù)員考試《行政職業(yè)能力測驗》真題庫及答案
- 《地理信息探索:初中地理空間思維訓(xùn)練教案》
- 市場調(diào)查問卷設(shè)計及分析模板
- 2025年外貿(mào)面試中譯英筆試及答案
- 2025年新興一中教資筆試及答案
- 2025年中公中醫(yī)執(zhí)業(yè)助理筆試及答案
- 安徽省六校2026年元月高三素質(zhì)檢測考試物理試題(含答案)
- 2025年西南醫(yī)科大學馬克思主義基本原理概論期末考試真題匯編
- (2025版)肥胖癥合并骨關(guān)節(jié)炎專家共識課件
- T-SUCCA 01-2025 二手摩托車鑒定評估技術(shù)規(guī)范
- 2025山西焦煤集團所屬華晉焦煤井下操作技能崗?fù)艘圮娙苏衅?0人筆試試題附答案解析
- 2026年南京交通職業(yè)技術(shù)學院單招職業(yè)技能考試題庫及答案詳解一套
- 2型糖尿病臨床路徑標準實施方案
- 二十四點大全
- TB-T 3263.1-2023 動車組座椅 第1部分:一等座椅和二等座椅
- 《研學旅行課程設(shè)計》課件-理解研學課程設(shè)計內(nèi)涵
- AQT 1089-2020 煤礦加固煤巖體用高分子材料
評論
0/150
提交評論