操作系統(tǒng)課后題挑選_第1頁
操作系統(tǒng)課后題挑選_第2頁
操作系統(tǒng)課后題挑選_第3頁
操作系統(tǒng)課后題挑選_第4頁
操作系統(tǒng)課后題挑選_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、操作系統(tǒng)課后題挑選整理GL1.4在下面舉出的三個功能中,哪個功能在下列兩種環(huán)境下,(a)手持裝置(b)實時系統(tǒng)需要操作系統(tǒng)的支持?(a)批處理程序(b)虛擬存儲器(c)分時Answer:對于實時系統(tǒng)來說,操作系統(tǒng)需要以一種公平的方式支持虛擬存儲器和分時系統(tǒng)。對于手持系統(tǒng),操作系統(tǒng)需要提供虛擬存儲器,但是不需要提供分時系統(tǒng)。批處理程序在兩種環(huán)境中都是非必需的。1.10中斷(interupt)的目的是什么?陷阱(trap)與中斷的區(qū)別是什么?陷阱可以被用戶程序(user program)有意地的產(chǎn)生嗎?如果可以,那目的是什么?Answer:中斷是一種在系統(tǒng)內(nèi)硬件產(chǎn)生的流量變化。中斷操作裝置是用來處

2、理中斷請求;然后返回控制中斷的上下文和指令。陷阱是軟件產(chǎn)生的中斷。中斷可以被用來標志 I/O的完成,從而排除設(shè)備投票站(device polling)的需要。陷阱可以被用來調(diào)用操作系統(tǒng)的程序或者捕捉到算術(shù)錯誤。1.11內(nèi)存存儲是被用于高速的I/O設(shè)備,其目的是為了避免增加CPU的過度運行。 (a)設(shè)備的CPU接口是怎樣與轉(zhuǎn)換器(transfer)協(xié)作的? (b)當內(nèi)存操作完全時,CPU是怎么知道的? (c)當DMA控制器正在轉(zhuǎn)換數(shù)據(jù)時,CPU是被允許運行其它程序的。這種進程與用戶程序的運行沖突嗎?如果沖突的話,試描述可能引起哪種沖突?Answer: CPU可以通過寫數(shù)據(jù)到可以被設(shè)備獨立存儲的寄

3、存器中來啟動DMA操作。當設(shè)備接收到來自CPU的命令時,啟動響應(yīng)的操作。當設(shè)備完成此操作時,就中斷CPU來說明操作已經(jīng)完成。設(shè)備和CPU都可以被內(nèi)存同時訪問。內(nèi)存控制器對這兩個實體以公平的方式給內(nèi)存總線提供存取。CPU可能不能同時以很快的速度配給給內(nèi)存操作,因為它必須去競爭設(shè)備而使得自己存取到內(nèi)存總線中去。1.12一些計算機系統(tǒng)沒有在硬件中提供個人模式(privileged mode)。對于這種計算機系統(tǒng)來說,可能構(gòu)成安全的操作系統(tǒng)嗎?對可能和不可能兩種情況分別給出理由。Answer:一種類型處理器的操作系統(tǒng)需要在任何時候都被控制(或監(jiān)測模式)。有兩種方法可以完成這個操作:a.所有用戶程序的軟

4、件翻譯(像一些BASIC,Java,LISP systems)。在軟件中,軟件解釋程序能夠提供硬件所不能提供的。b.要求所有程序都用高級語言編寫,以便于所以目標代碼都被編譯出來。編譯器將會產(chǎn)生硬件忽略的防護性檢查(in-line或功能調(diào)用)。1.15試描述一個機器裝置為了阻止一個程序避免修改與其它程序有聯(lián)系的內(nèi)存而執(zhí)行內(nèi)存保護。Answer:處理器可以追蹤哪個位置是與每個進程相聯(lián)系的以及限制進入一個程序的范圍的外面位置。信息與一個程序的內(nèi)存范圍有關(guān),它可以通過使用庫,限制寄存器和對每個進入內(nèi)存的信息執(zhí)行檢查來維持其本身。2.1操作系統(tǒng)提供的服務(wù)和功能可以分為兩個類別。簡單的描述一下這兩個類別并

5、討論他們的不同點。Answer:第一種操作系統(tǒng)提供的服務(wù)是用來保護在系統(tǒng)中同時運行的不同進程。進程只被允許獲得與它們地址空間有聯(lián)系的內(nèi)存位置。同樣,進程不允許破壞和其他用戶有關(guān)的文件。一個進程同樣不允許在沒有操作系統(tǒng)的干預下直接進入設(shè)備。第二種服務(wù)由操作系統(tǒng)提供的服務(wù)是提供一種新的功能,而這種功能并不直接被底層的硬件支持。虛擬存儲器和文件系統(tǒng)就是由操作系統(tǒng)提供的這種新服務(wù)的實例。2.2列出操作系統(tǒng)提供的五項服務(wù)。說明每項服務(wù)如何給用戶提供便利。說明在哪些情況下用戶級程序不能夠提夠這些服務(wù)。Answer: a.文件執(zhí)行.操作系統(tǒng)一個文件的目錄(或章節(jié))裝入到內(nèi)存并運行。一個用戶程序不能被信任,妥

6、善分配CPU時間。b.I/O操作. 磁盤,磁帶,串行線,和其他裝置必須在一個非常低的水平下進行通信。用戶只需要指定裝置和操作執(zhí)行要求,然后該系統(tǒng)的要求轉(zhuǎn)換成裝置或控制器的具體命令.用戶級程序不能被信任只在他們應(yīng)該獲得時獲得裝置和只使用那些未被使用的裝置。c.文件系統(tǒng)操作.在文件創(chuàng)建、刪除、分配和命名時有許多細節(jié)是用戶不能執(zhí)行的。磁盤空間塊被文件所使用并被跟蹤。刪除一個文件需要清除這個文件的信息和釋放被分派給這個文件的空間。用戶程序不僅不能夠保證保護方法的有效實施,也不能夠被信任只會分配空閑的空間和在刪除文件是清空空間。d.通信.信息在系統(tǒng)間交換要求信息轉(zhuǎn)換成信息包,送到網(wǎng)絡(luò)控制器中,通過通信媒

7、介進行傳播,并由目的地系統(tǒng)重新組裝。信息包調(diào)整和數(shù)據(jù)修改是一定會發(fā)生的。此外,用戶程序也許不能夠協(xié)調(diào)網(wǎng)絡(luò)裝置的取得,或者接收完全不同的其他進程的信息包。e.錯誤檢測.錯誤檢測在硬件和軟件水平下都會發(fā)生。在硬件水平下,所有數(shù)據(jù)轉(zhuǎn)移都必須仔細檢查以確保數(shù)據(jù)在運送中不會被破壞。在媒介中的所有數(shù)據(jù)都必須被檢查以確保他們在寫入媒介時沒有被改變。在軟件水平下,為了數(shù)據(jù),媒介不需不間斷的被檢查。例如,確保信息存儲中被分配和還未被分配的空間塊的數(shù)量和裝置中所有塊的數(shù)量的一致。進程獨立經(jīng)常有錯誤(例如,磁盤中數(shù)據(jù)的破壞),所以必須有一個統(tǒng)籌的程序(操作系統(tǒng))來處理各種錯誤。同樣,錯誤經(jīng)過操作系統(tǒng)的處理,在一個系

8、統(tǒng)中程序不再需要包含匹配和改正所遇可能錯誤的代碼。2.5操作系統(tǒng)關(guān)于文件管理的五個主要活動是什么?Answer:1.創(chuàng)建和刪除文件2.創(chuàng)建和刪除目錄3.提供操作文件和目錄的原語的支持4.將文件映射到二級存儲器上5.在穩(wěn)定(非易失的)的存儲媒介上備份文件。2.8通信的兩種模式是什么?這兩種模式的優(yōu)點和缺點是什么?Answer:通信的兩種模式是1)共享內(nèi)存,2)消息傳遞。這兩種模式的最基本的不同是在它們的性能上。一個內(nèi)存共享塊是通過系統(tǒng)調(diào)用創(chuàng)建的。然而,一旦內(nèi)存共享塊在兩個或更多的進程間建立,這些進程可以借助內(nèi)存共享塊來通信,不再需要內(nèi)核的協(xié)助。另一方面,當send()和receive()操作被調(diào)

9、用時,信息傳遞通常包含系統(tǒng)調(diào)用。因此,因為內(nèi)核是直接的包含在進程間通信的,一般而言,它的影響比內(nèi)存共享小。然而,消息傳遞可以用作同步機制來處理通信進程間的行動。也就是說,send()和receive()段可以用來協(xié)調(diào)兩個通信進程的動作。另一方面,內(nèi)存共享沒有提供這種同步機制的進程。2.12采用微內(nèi)核方法來設(shè)計系統(tǒng)的主要優(yōu)點是什么?在微內(nèi)核中如何使客戶程序和系統(tǒng)服務(wù)相互作用?微內(nèi)核方法的缺點是什么?Answer:優(yōu)點主要包括以下幾點:a)增加一個新的服務(wù)不需要修改內(nèi)核b) 在用戶模式中比在內(nèi)核模式中更安全、更易操作c) 一個簡單的內(nèi)核設(shè)計和功能一般導致一個更可靠的操作系統(tǒng)用戶程序和系統(tǒng)服務(wù)通過使

10、用進程件的通信機制在微內(nèi)核中相互作用,例如發(fā)送消息。這些消息由操作系統(tǒng)運送。微內(nèi)核最主要的缺點是與進程間通信的過度聯(lián)系和為了保證用戶程序和系統(tǒng)服務(wù)相互作用而頻繁使用操作系統(tǒng)的消息傳遞功能。2.13模塊化內(nèi)核方法的什么方式與分層方法相似?什么方式與分層方法不同?Answer:模塊化內(nèi)核方法要求子系統(tǒng)通過創(chuàng)建的一般而言狹隘(從功能方面來說是揭露外部模塊)的接口來相互作用。分層內(nèi)核方法在細節(jié)上與分層方法相似。但是,分層內(nèi)核必須要是有嚴格排序的子系統(tǒng),這樣的子系統(tǒng)在較低層次中不允許援引業(yè)務(wù)相應(yīng)的上層子系統(tǒng) 。在模塊化內(nèi)核方法中沒有太多的限制,模式在哪方面是隨意援引彼此的是沒有任何約束的。3.1 論述短

11、期,中期和長期調(diào)度之間的區(qū)別.Answer:a.短期調(diào)度:在內(nèi)存作業(yè)中選擇就緒執(zhí)行的作業(yè),并為他們分配CPU。b.中期調(diào)度:作為一種中等程度的調(diào)度程序,尤其被用于分時系統(tǒng),一個交換方案的實施,將部分運行程序移出內(nèi)存,之后,從中斷處繼續(xù)執(zhí)行。c.長期調(diào)度(作業(yè)調(diào)度程序):確定哪些作業(yè)調(diào)入內(nèi)存以執(zhí)行.它們主要的不同之處是它們的執(zhí)行的頻率。短期調(diào)度必須經(jīng)常調(diào)用一個新進程,由于在系統(tǒng)中,長期調(diào)度處理移動的作業(yè)時,并不頻繁被調(diào)用,可能在進程離開系統(tǒng)時才被喚起。3.2 描述一下內(nèi)核在兩個進程間進行上下文功換的動作.Answer:總的來說,操作系統(tǒng)必須保存正在運行的進程的狀態(tài),恢復進程的狀態(tài)。保存進程的狀態(tài)

12、主要包括CPU寄存器的值以及內(nèi)存分配,上下文切換還必須執(zhí)行一些確切體系結(jié)構(gòu)的操作,包括刷新數(shù)據(jù)和指令緩存。(書中答案)進程關(guān)聯(lián)是由進程的PCB來表示的,它包括CPU寄存器的值和內(nèi)存管理信息等。當發(fā)生上下文切換時,內(nèi)核會將舊進程的關(guān)聯(lián)狀態(tài)保存在其PCB中,然后裝入經(jīng)調(diào)度要執(zhí)行的新進程的已保存的關(guān)聯(lián)狀態(tài)。4.1舉兩個多線程程序設(shè)計的例子來說明多線程不比單線程方案提高性能答:1)任何形式的順序程序?qū)€程來說都不是一個好的形式。例如一個計算個人報酬的程序。2)另外一個例子是一個空殼程序,如C-shell和korn shell。這種程序必須密切檢測其本身的工作空間。如打開的文件、環(huán)境變量和當前工作目錄。

13、4.2描述一下線程庫采取行動進行用戶級線程上下文切換的過程答:用戶線程之間的上下文切換和內(nèi)核線程之間的相互轉(zhuǎn)換是非常相似的。但它依賴于線程庫和怎樣把用戶線程指給內(nèi)核程序。一般來說,用戶線程之間的上下文切換涉及到用一個用戶程序的輕量級進程(LWP)和用另外一個線程來代替。這種行為通常涉及到寄存器的節(jié)約和釋放。4.4以下程序中的哪些組成部分在多線程程序中是被線程共享的?a.寄存值b.堆內(nèi)存c.全局變量d.棧內(nèi)存答:一個線程程序的線程共享堆內(nèi)存和全局變量,但每個線程都有屬于自己的一組寄存值和棧內(nèi)存。5.1為什么對調(diào)度來說,區(qū)分I/0限制的程序和CPU限制的程序是重要的?答:I/0限制的程序有在運行I

14、/O操作前只運行很少數(shù)量的計算機操作的性質(zhì)。這種程序一般來說不會使用很多的CPU。另一方面,CPU限制的程序利用整個的時間片,且不做任何阻礙I/O操作的工作。因此,通過給I/O限制的程序優(yōu)先權(quán)和允許在CPU限制的程序之前運行,可以很好的利用計算機資源。5.2討論以下各對調(diào)度標準在某種背景下會有的沖突 a.CPU利用率和響應(yīng)時間 b.平均周轉(zhuǎn)時間和最大等待時間 c.I/O設(shè)備利用率和CPU利用率答:a.CPU利用率和響應(yīng)時間:當經(jīng)常性的上下文切換減少到最低時,CPU利用率增加。通過減少使用上下文切換程序來降低經(jīng)常性的上下文切換。但這樣可能會導致進程響應(yīng)時間的增加。b.平均周轉(zhuǎn)時間和最大等待時間:

15、通過最先執(zhí)行最短任務(wù)可以使平均周轉(zhuǎn)時間最短。然而,這種調(diào)度策略可能會使長時間運行的任務(wù)永遠得不到調(diào)度且會增加他們的等待時間。c.I/O設(shè)備利用率和CPU利用率:CPU利用率的最大化可以通過長時間運行CPU限制的任務(wù)和同時不實行上下文切換。I/O設(shè)備利用率的最大化可以通過盡可能調(diào)度已經(jīng)準備好的I/O限制的任務(wù)。因此,導致上下文切換。5.4考慮下列進程集,進程占用的CPU區(qū)間長度以毫秒來計算:假設(shè)在時刻0以進程P1,P2,P3,P4,P5的順序到達。a.畫出4個Gantt圖分別演示用FCFS、SJF、非搶占優(yōu)先級(數(shù)字小代表優(yōu)先級高)和RR(時間片1)算法調(diào)度時進程的執(zhí)行過程。b.在a里每個進程在

16、每種調(diào)度算法下的周轉(zhuǎn)時間是多少?c.在a里每個進程在每種調(diào)度算法下的等待時間是多少?d.在a里哪一種調(diào)度算法的平均等待時間對所有進程而言最???答:a.甘特圖略b.周轉(zhuǎn)時間FCFSRRSJF非搶占優(yōu)先級P110191916P211211P3137418P4144219P5191496c.等待時間FCFSRRSJF非搶占優(yōu)先級P10996P210100P3115216P4133118P514942d.SJF5.5下面哪些算法會引起饑餓a.先來先服務(wù)b.最短工作優(yōu)先調(diào)度c.輪換法調(diào)度d.優(yōu)先級調(diào)度答:最短工作優(yōu)先調(diào)度和優(yōu)先級調(diào)度算法會引起饑餓5.6考慮RR調(diào)度算法的一個變種,在這個算法里,就緒隊列里

17、的項是指向PCB的指針。a.如果把兩個指針指向就緒隊列中的同一個進程,會有什么效果?b.這個方案的主要優(yōu)點和缺點是什么?c.如何修改基本的RR調(diào)度算法,從而不用兩個指針達到同樣的效果?答.a.實際上,這個過程將會增加它的優(yōu)先權(quán),因為通過經(jīng)常得到時間它能夠優(yōu)先得以運行。 b.優(yōu)點是越重要的工作可以得到更多的時間。也就是說,優(yōu)先級越高越先運行。然而,結(jié)果將由短任務(wù)來承擔。 c.分配一個更長的時間給優(yōu)先級越高的程序。換句話說,可能有兩個或多個時間片在RR調(diào)度中。5.7考慮一個運行十個I/O限制任務(wù)和一個CPU限制任務(wù)的系統(tǒng)。假設(shè),I/O限制任務(wù)一次分配給一個I/O操作1毫秒的CPU計算,但每個I/O

18、操作的完成需要 10毫秒。同時,假設(shè)間接的上下文切換要0.1毫秒,所有的進程都是長進程。對一個RR調(diào)度來說,以下情況時CPU的利用率是多少: a.時間片是1毫秒 b.時間片是10毫秒答:a.時間片是1毫秒:不論是哪個進程被調(diào)度,這個調(diào)度都會為每一次的上下文切換花費一個0.1毫秒的上下文切換。CPU的利用率是1/1.1*100=92%。b.時間片是10毫秒:這I/O限制任務(wù)會在使用完1毫秒時間片后進行一次上下文切換。這個時間片要求在所有的進程間都走一遍,因此,10*1.1+10.1(因為每個I / O限定任務(wù)執(zhí)行為1毫秒,然后承擔上下文切換的任務(wù),而CPU限制任務(wù)的執(zhí)行10毫秒在承擔一個上下文切

19、換之前) 。因此,CPU的利用率是20、21.1*100=94%。5.9考慮下面的基于動態(tài)改變優(yōu)先級的可搶占式優(yōu)先權(quán)調(diào)度算法。大的優(yōu)先權(quán)數(shù)代表高優(yōu)先權(quán)。當一個進程在等待CPU時(在就緒隊列中,但未執(zhí)行),優(yōu)先權(quán)以速率改變;當它運行時,優(yōu)先權(quán)以速率改變。所有的進程在進入就緒隊列時被給定優(yōu)先權(quán)為0。參數(shù)和可以設(shè)定給許多不同的調(diào)度算法。a.0時所得的是什么算法?b.0時所得的是什么算法?答:a.FCFSb.LIFO5.10解釋下面調(diào)度算法對短進程編程度上的區(qū)別: a.FCFS b.RR c多級反饋隊列答:a.FCFS-區(qū)別短任務(wù)是因為任何在長任務(wù)后到達的短任務(wù)都將會有很長的等待時間。 b.RR-對所

20、有的任務(wù)都是能夠相同的(給它們相同的CPU時間區(qū)間),所以,短任務(wù)可以很快的離開系統(tǒng),只要它們可以先完成。 c. 多級反饋隊列和RR調(diào)度算法相似-它們不會先選擇短任務(wù)。6.3忙等待的含義是什么?在操作系統(tǒng)中還有哪些其他形式的等待?忙等待能完全避免嗎答:忙等待意味著一個進程正在等待滿足一個沒有閑置處理器的嚴格循環(huán)的條件?;蛘?,一個進程通過放棄處理器來等待,在這種情況下的塊等待在將來某個適當?shù)臅r間被喚醒。忙等待能夠避免,但是承擔這種開銷與讓一個進程處于沉睡狀態(tài),當相應(yīng)程序的狀態(tài)達到的時候進程又被喚醒有關(guān)。6.9證明如果獲得和釋放的信號量操作沒有動態(tài)地執(zhí)行,那么互斥會受干擾。答:收購操作自動遞減和信

21、號量有關(guān)的值。如果兩個收購操作在信號量的值為1的信號量上執(zhí)行,而且這兩種操作不是自動執(zhí)行的,那么這兩個操作在進展中會遞減信號量的值,從而干擾互斥。6.11理發(fā)師問題7.6假設(shè)系統(tǒng)中有四個相同類型的資源被三個進程共享。每個進程最多需要兩個資源。證明這個系統(tǒng)不會死鎖。假設(shè)該系統(tǒng)陷入死鎖。這意味著,每一個進程持有一個資源,并且正等待另一個資源。因為有三個進程和四個資源,一個進程就必須獲取兩個資源。這一進程并不需要更多的資源,因此當其完成時會返回其資源。7.7假設(shè)一個系統(tǒng)有m個資源被n個進程共享,進程每次只請求和釋放一個資源。證明只要系統(tǒng)符合下面兩個條件,就不會發(fā)生死鎖:a.每個進程需要資源的最大值在

22、1到m之間b.所有進程需要資源的最大值的和小于m+nAnswer:使用Section7.6.2的術(shù)語,可以有:a. _ni =1 Maxi m + nb. Maxi 1 for all iProof: Needi = Maxi ?Alloca tioniIf there exists a deadlock state then:c. _ni =1 Alloca tioni = mUse a. to get:_ Needi + _ Alloca tioni = _ Maxi m + nUse c. to get:_ Needi + m m + nRewrite to get:_ni =1 Nee

23、di =1,那么Pi進程至少有一個資源可以釋放。從而系統(tǒng)就不會進入死鎖狀態(tài)。8.3按順序給出5個部分的內(nèi)存,分別是100KB,500KB,200KB,300KB和600KB,用 first-fit,best-fit和worst-fit算法,能夠怎樣按順序分配進程212KB,417KB,112KB,426KB和426KB?哪個算法充分利用了內(nèi)存空間?Answer:a. First-fit:b. 212K is put in 500K partitionc. 417K is put in 600K partitiond. 112K is put in 288K partition (new par

24、tition 288K = 500K ?212K)e. 426K must waitf. Best-fit:g. 212K is put in 300K partitionh. 417K is put in 500K partitioni. 112K is put in 200K partitionj. 426K is put in 600K partitionk. Worst-fit:l. 212K is put in 600K partitionm. 417K is put in 500K partitionn. 112K is put in 388K partitiono. 426K m

25、ust waitBest-fit:算法充分利用了內(nèi)存空間。8.4在運行過程中,許多系統(tǒng)允許程序分配更多的內(nèi)存給它的地址空間。在程序堆中的數(shù)據(jù)分配是這種分配方式的一個實例。在下面的方案中,為了支持動態(tài)內(nèi)存分配的要求是什么?a.連續(xù)內(nèi)存分配b.純段式分配c.純頁式分配Answer:a.連續(xù)內(nèi)存分配:當沒有足夠的空間給程序去擴大它已分配的內(nèi)存空間時,將要求重新分配整個程序。b.純段式分配:當沒有足夠的空間給段去擴大它的已分配內(nèi)存空間時,將要求重新分配整個段。c.純頁式分配:在沒有要求程序地址空間再分配的方案下,新頁增加的分配是可能的。8.9考慮一個分頁系統(tǒng)在內(nèi)存中存儲著一張頁表。a.如果內(nèi)存的查詢需

26、要200毫秒,那么一個分頁內(nèi)存的查詢需要多長時間?b.如果我們加上相關(guān)聯(lián)的寄存器,75%的頁表查詢可以在相關(guān)聯(lián)的寄存器中找到,那么有效的查詢時間是多少?(假設(shè)如果入口存在的話,在相關(guān)的寄存器中找到頁表入口不花費時間)Answer:a.400毫秒:200毫秒進入頁表,200毫秒進入內(nèi)存中的字 b.有效進入時間=0.75*200毫秒+0.25*400毫秒=250毫秒8.129.4某個計算機給它的用戶提供了232的虛擬內(nèi)存空間,計算機有214B的物理內(nèi)存,虛擬內(nèi)存使用頁面大小為4094B的分頁機制實現(xiàn)。一個用戶進程產(chǎn)生虛擬地址11123456,現(xiàn)在說明一下系統(tǒng)怎么樣建立相應(yīng)的物理地址,區(qū)分一下軟件操

27、作和硬件操作。(第六版有翻譯)答:該虛擬地址的二進制形式是 0001 0001 0001 0010 0011 0100 0101 0110。由于頁面大小為212,頁表大小為220,因此,低12位的0100 0101 0110 被用來替換頁(page),而前20位0001 0001 0001 0010 0011被用來替換頁表(page table)。10.2 打開文件表被用以保持當前打開文件的信息,操作系統(tǒng)應(yīng)該為每個用戶保持一個單獨的表嗎?或者只是保持一個包含當前所有用戶訪問文件的引用的表?如果兩個不同程序或用戶訪問同樣的文件,在打開文件表中應(yīng)包含單獨的條目嗎?Answer: 保持一個中央的打開

28、文件表,操作系統(tǒng)可以執(zhí)行下列操作,否則不可執(zhí)行:假設(shè)一個當前有一個或一個以上進程訪問的文件。如果該文件被刪除,那么應(yīng)該直到所有正在訪問文件的進程關(guān)閉它時,它才能從磁盤上刪除。只要有正在訪問文件的進程數(shù)目的集中核算,該檢查就可以執(zhí)行。另一方面,如果兩個進程正在訪問該文件,則需要保持兩個單獨的狀態(tài)來跟蹤當前位置,其中部分文件正被兩個進程訪問。這就要求操作系統(tǒng)為兩個進程保持單獨的條目。10.9 有些系統(tǒng)文件提供文件共享時候只保留文件的一個拷貝,而另外的一個系統(tǒng)則是保留多個拷貝,對共享文件的每一個用戶提供一個拷貝,論述這種方法的相對優(yōu)點。答:在一個單一的復制,同時更新了一個文件可能會導致用戶獲得不正確

29、的信息,文件被留在了不正確的狀態(tài). 隨著多份拷貝,它會浪費存儲而且各種副本可能不一致。11.2使用FAT鏈合作區(qū)塊的檔案來進行變化相聯(lián)系的分配有哪些優(yōu)勢?答:它的優(yōu)勢是,在訪問塊是儲存在中間的文件時候,在FAT里跟蹤指針可以決定它的位置,而不是訪問所有個別區(qū)塊中的檔案順序的方式找到指針的目標塊。通常情況下,大多數(shù)的FAT可緩存在存儲器里,因此,指針可以通過記憶體確定,而不用通過磁盤塊。11.4有些檔案系統(tǒng)允許磁盤存儲將分配在不同級別的粒度。舉例來說,一個文件系統(tǒng)可以分配4 KB的磁盤空間作為單一的一個4字節(jié)的塊或8個512字節(jié)的塊。我們?nèi)绾文芾眠@種靈活性來提高性能?對自由空間管理做出哪些修改

30、以支持這一功能?答:此項計劃將減少內(nèi)部分裂。如果文件是5字節(jié),然后可以分配4 KB的區(qū)塊和兩個毗連的512字節(jié)的塊。除了維持一個位圖的自由塊,一個目前正在使用的區(qū)塊內(nèi)也將保持額外的狀態(tài)。當所有的分塊成為空閑時候,該分配器將不得不審查這筆額外分配狀態(tài)分塊和凝聚的分塊,以獲取更大的塊。11.6 設(shè)想一個在磁盤上的文件系統(tǒng)的邏輯塊和物理塊的大小都為512B。假設(shè)每個文件的信息已經(jīng)在內(nèi)存中,對3種分配方法(連續(xù)分配,鏈接分配和索引分配),分別回答下面的問題:A,邏輯地址到物理地址的映射在系統(tǒng)中怎么樣進行的?(對于索引分配,假設(shè)文件總是小于512塊長)B,假設(shè)現(xiàn)在處在邏輯塊10(最后訪問的塊是塊10),

31、限制想訪問塊4,那么必須從磁盤上讀多少個物理塊)答:設(shè)想Z是開始文件的地址(塊數(shù)),a.毗連。分裂邏輯地址由512的X和Y所產(chǎn)生的份額和其余的分別。1:將X加入到Z獲得物理塊號碼。 Y是進入該區(qū)塊的位移。2.:1b.聯(lián)系。分裂邏輯地址由511的X和Y所產(chǎn)生的份額和其余的分別。1.:找出聯(lián)系名單(將X + 1塊)。 Y + 1是到最后物理塊的位移2.:4c.收錄。分裂的邏輯地址由512的X和Y所產(chǎn)生的份額和其余的分別。1.:獲得該指數(shù)塊到內(nèi)存中。物理塊地址載于該指數(shù)在所在地塊10, Y是到理想的物理塊的位移。2.:212.2 假設(shè)一個錯哦盤驅(qū)動器有5000個柱面,從0到4999,驅(qū)動器正在為柱面

32、143的一個請求提供服務(wù),且前面的一個服務(wù)請求是在柱面125.按FIFO順序,即將到來的請求隊列是 86,1470,913,1774,948,1509,1022,1750,130從現(xiàn)在磁頭位置開始,按照下面的磁盤調(diào)度算法,要滿足隊列中即將到來的請求要求磁頭總的移動距離(按柱面數(shù)計)是多少?a. FCFS; b. SSTF; c. SCAN; d. LOOK; e. C-SCAN答a. FCFS的調(diào)度是143 , 86 , 1470 , 913 , 1774 , 948 , 1509 , 1022 , 1750 , 130 ??倢で缶嚯x是7081 。b. SSTF的調(diào)度是143 , 130 ,

33、86 , 913 , 948 , 1022, 1470, 1509, 1750, 1774。總尋求距離是1745。c. SCAN的調(diào)度是143 , 913 , 948 , 1022, 1470, 1509, 1750, 1774 , 4999 , 130 , 86 ??倢で缶嚯x是9769 。d. LOOK的調(diào)度是143 , 913 , 948 , 1022, 1470, 1509, 1750, 1774, 130 , 86 ??倢で缶嚯x是3319 。e. C-SCAN的調(diào)度是143 , 913 , 948 , 1022 , 1470 , 1509 , 1750 , 1774 , 4999 ,

34、86 , 130 。總尋求距離是9813 。f. C-LOOK的調(diào)度是143 , 913 , 948 , 1022 , 1470 , 1509 , 1750 , 1774 , 86 , 130 ??倢で缶嚯x是3363 。13.1; 13.3; 13.5 獨木橋問題:過橋時,同一方向的行人可連續(xù)過橋,當某一方有人過橋時,另一方向的行人必須等待;當某一方向無人過橋時,另一方向的行人可以過橋。試用信號量機制解決。(1) 需要設(shè)置幾個信號量?分別是互斥信號量還是同步信號量?初值設(shè)為多少?并說明設(shè)置它們的意義。(2) 寫出用信號量機制解決此問題的算法。答案:(1) 將獨木橋的兩個方向分別標記為A和B。用整型變量countA和countB分別表示A、B方向上已在獨木橋上的行人數(shù)。初值為0。需要設(shè)置三個初值都為1的互斥信號量:SA用來實現(xiàn)對countA的互斥訪問,SB用來實現(xiàn)對countB的互斥訪問,mutex用來實現(xiàn)對獨木橋的互斥使用。(2)A方向行人過橋:BeginP(SA); countA=countA+1; if (countA= =1) P(m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論