


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第四章 線程4.1舉兩個(gè)多線程程序設(shè)計(jì)的例子來說明多線程不比單線程方案提高性能答: 1 )任何形式的順序程序?qū)€程來說都不是一個(gè)好的形式。例如一個(gè)計(jì)算個(gè)人報(bào)酬的程序。2 )另外一個(gè)例子是一個(gè)“空殼”程序,如C-shell和 korn shell。這種程序必須密切檢測其本身的工作空間。如打開的文件、環(huán)境變量和當(dāng)前工作目錄。4.2描述一下線程庫采取行動(dòng)進(jìn)行用戶級線程上下文切換的過程答:用戶線程之間的上下文切換和內(nèi)核線程之間的相互轉(zhuǎn)換是非常相似的。但它依賴于線程庫和怎樣把用戶線程指給內(nèi)核程序。一般來說,用戶線程之間的上下文切換涉及到用一個(gè)用戶程序的輕量級進(jìn)程(LWP)和用另外一個(gè)線程來代替。這種行為
2、通常涉及到寄存器的節(jié)約和釋放。4.3在哪些情況下使用多內(nèi)核線程的多線程方案比單處理器系統(tǒng)的單個(gè)線程方案提供更好的性能。答:當(dāng)一個(gè)內(nèi)核線程的頁面發(fā)生錯(cuò)誤時(shí),另外的內(nèi)核線程會(huì)用一種有效的方法被轉(zhuǎn)換成使用交錯(cuò)時(shí)間。另一方面,當(dāng)頁面發(fā)生錯(cuò)誤時(shí),一個(gè)單一線程進(jìn)程將不能夠發(fā)揮有效性能。因此,在一個(gè)程序可能有頻繁的頁面錯(cuò)誤或不得不等待其他系統(tǒng)的事件的情況下,多線程方案會(huì)有比單處理器系統(tǒng)更好的性能。4.4以下程序中的哪些組成部分在多線程程序中是被線程共享的?a. 寄存值b. 堆內(nèi)存c. 全局變量d. 棧內(nèi)存答:一個(gè)線程程序的線程共享堆內(nèi)存和全局變量,但每個(gè)線程都有屬于自己的一組寄存值和棧內(nèi)存。4 5 一個(gè)采用
3、多用戶線程的多線程方案在多進(jìn)程系統(tǒng)中能夠取得比在單處理器系統(tǒng)中更好的性能嗎?答:一個(gè)包括多用戶線程的多線程系統(tǒng)無法在多處理系統(tǒng)上同時(shí)使用不同的處理器。操作系統(tǒng)只能看到一個(gè)單一的進(jìn)程且不會(huì)調(diào)度在不同處理器上的不同進(jìn)程的線程。因此,多處理器系統(tǒng)執(zhí)行多個(gè)用戶線程是沒有性能優(yōu)勢的。4.6就如 4.5.2 章節(jié)描述的那樣, Linux沒有區(qū)分進(jìn)程和線程的能力。且Linux 線程都是用相同的方法: 允許一個(gè)任務(wù)與一組傳遞給clone()系統(tǒng)調(diào)用的標(biāo)志的進(jìn)程或線程。但許多操作系統(tǒng),例如windows XP和 Solaris,對進(jìn)程和線程都是一視同仁?;旧?,這種使用 notation的系統(tǒng),一個(gè)進(jìn)程的數(shù)據(jù)結(jié)
4、構(gòu)包括一個(gè)指向?qū)儆谶M(jìn)程的不同線程的指針。區(qū)別建模過程和在內(nèi)核中線程的兩種方法。答:一方面,進(jìn)程和線程被視為相似實(shí)體的系統(tǒng)中,有些系統(tǒng)代碼可以簡化。例如,一個(gè)調(diào)度器可以在平等的基礎(chǔ)上考慮不同的進(jìn)程和線程,且不需要特殊的代碼,在調(diào)度中審查有關(guān)線程的進(jìn)程。另一方面,這種統(tǒng)一會(huì)使進(jìn)程資源限制更加困難。相反,一些額外的復(fù)雜性被需要,用來確定哪個(gè)線程與哪個(gè)進(jìn)程一致和執(zhí)行重復(fù)的計(jì)數(shù)任務(wù)。4.7由 4.11 給出的程序使用了Pthread的應(yīng)用程序編程接口(API ),在程序的第 c 行和第 p 行分別會(huì)輸出什么?答: c 行會(huì)輸出 5, p 行會(huì)輸出 0.4.8考慮一個(gè)多處理器系統(tǒng)和用多線程對多線程模式編寫
5、的多線程程序。讓程序中的用戶線程數(shù)量多于系統(tǒng)中的處理器的數(shù)量,討論下列情況下的性能意義:a. 由程序分配的內(nèi)核線程的數(shù)量比處理器少b. 由程序分配的內(nèi)核線程的數(shù)量與處理器相同c. 由程序分配的內(nèi)核線程的數(shù)量大于處理器數(shù)量但少于用戶線程的數(shù)量答:當(dāng)內(nèi)核線程的數(shù)量少于處理器時(shí),一些處理器將仍然處于空閑狀態(tài)。因?yàn)椋?調(diào)度圖中只有內(nèi)核線程的處理器,而不是用戶線程的處理器。當(dāng)程序分配的內(nèi)核線程的數(shù)量與處理器相同時(shí),那么有可能所有處理器將同時(shí)使用。然而,當(dāng)一個(gè)內(nèi)核塊內(nèi)的內(nèi)核(因頁面錯(cuò)誤或同時(shí)援引系統(tǒng)調(diào)用)相應(yīng)的處理器將閑置。當(dāng)由程序分配的內(nèi)核線程的數(shù)量大于處理器數(shù)量時(shí),封鎖一個(gè)內(nèi)核線程并調(diào)出,換入另一個(gè)準(zhǔn)
6、備執(zhí)行的內(nèi)核線程。因此,增加多處理器系統(tǒng)的利用率。第五章 CPU 調(diào)度5.1為什么對調(diào)度來說,區(qū)分I/0限制的程序和CPU 限制的程序是重要的?答: I/0限制的程序有在運(yùn)行I/O操作前只運(yùn)行很少數(shù)量的計(jì)算機(jī)操作的性質(zhì)。這種程序一般來說不會(huì)使用很多的CPU。另一方面, CPU 限制的程序利用整個(gè)的時(shí)間片,且不做任何阻礙I/O操作的工作。因此,通過給I/O限制的程序優(yōu)先權(quán)和允許在CPU 限制的程序之前運(yùn)行,可以很好的利用計(jì)算機(jī)資源。5.2討論以下各對調(diào)度標(biāo)準(zhǔn)在某種背景下會(huì)有的沖突a.CPU利用率和響應(yīng)時(shí)間b. 平均周轉(zhuǎn)時(shí)間和最大等待時(shí)間c.I/O設(shè)備利用率和CPU 利用率答:a.CPU 利用率和
7、響應(yīng)時(shí)間:當(dāng)經(jīng)常性的上下文切換減少到最低時(shí),CPU 利用率增加。通過減少使用上下文切換程序來降低經(jīng)常性的上下文切換。但這樣可能會(huì)導(dǎo)致進(jìn)程響應(yīng)時(shí)間的增加。b. 平均周轉(zhuǎn)時(shí)間和最大等待時(shí)間:通過最先執(zhí)行最短任務(wù)可以使平均周轉(zhuǎn)時(shí)間最短。然而,這種調(diào)度策略可能會(huì)使長時(shí)間運(yùn)行的任務(wù)永遠(yuǎn)得不到調(diào)度且會(huì)增加他們的等待時(shí)間。c.I/O設(shè)備利用率和 CPU 利用率: CPU 利用率的最大化可以通過長時(shí)間運(yùn)行CPU限制的任務(wù)和同時(shí)不實(shí)行上下文切換。I/O 設(shè)備利用率的最大化可以通過盡可能調(diào)度已經(jīng)準(zhǔn)備好的 I/O 限制的任務(wù)。因此,導(dǎo)致上下文切換。5.3考慮指數(shù)平均公式來預(yù)測下一次CPU 區(qū)間的長度,使用以下參數(shù)值
8、會(huì)有什么影響?a.a=0和 t=100 毫秒b.a=0.99和 t=10 毫秒答:當(dāng) a=0和 t=100毫秒時(shí),公式總是會(huì)預(yù)測下一次的CPU 區(qū)間為 100毫秒。當(dāng)a=0.99和 t=10毫秒時(shí), 進(jìn)程最近的行為是給予更高的重量和過去的就能成相比 。因此, 調(diào)度算法幾乎是無記憶的, 且簡單預(yù)測未來區(qū)間的長度為下一次的CPU 執(zhí)行的時(shí)間片。5.4考慮下列進(jìn)程集,進(jìn)程占用的CPU 區(qū)間長度以毫秒來計(jì)算:進(jìn)程區(qū)間時(shí)間優(yōu)先級P1031P112P323P414P525假設(shè)在時(shí)刻0 以進(jìn)程 P1, P2,P3, P4, P5 的順序到達(dá)。a.畫出 4 個(gè) Gantt 圖分別演示用FCFS、SJF、非搶占
9、優(yōu)先級(數(shù)字小代表優(yōu)先級高)和RR(時(shí)間片 1)算法調(diào)度時(shí)進(jìn)程的執(zhí)行過程。b.在 a 里每個(gè)進(jìn)程在每種調(diào)度算法下的周轉(zhuǎn)時(shí)間是多少?c.在 a 里每個(gè)進(jìn)程在每種調(diào)度算法下的等待時(shí)間是多少?d.在 a 里哪一種調(diào)度算法的平均等待時(shí)間對所有進(jìn)程而言最???答: a.甘特圖略b.周轉(zhuǎn)時(shí)間FCFSRRSJF非搶占優(yōu)先級P110191916P211211P3137418P4144219P5191496c.等待時(shí)間FCFSRRSJF非搶占優(yōu)先級P10996P210100P3115216P4133118P514942d.SJF5.5下面哪些算法會(huì)引起饑餓a. 先來先服務(wù)b. 最短工作優(yōu)先調(diào)度c. 輪換法調(diào)度d.
10、 優(yōu)先級調(diào)度答:最短工作優(yōu)先調(diào)度和優(yōu)先級調(diào)度算法會(huì)引起饑餓5. 6 考慮 RR 調(diào)度算法的一個(gè)變種,在這個(gè)算法里,就緒隊(duì)列里的項(xiàng)是指向PCB 的指針。a.如果把兩個(gè)指針指向就緒隊(duì)列中的同一個(gè)進(jìn)程,會(huì)有什么效果?b.這個(gè)方案的主要優(yōu)點(diǎn)和缺點(diǎn)是什么?c.如何修改基本的 RR 調(diào)度算法,從而不用兩個(gè)指針達(dá)到同樣的效果?答 .a. 實(shí)際上,這個(gè)過程將會(huì)增加它的優(yōu)先權(quán),因?yàn)橥ㄟ^經(jīng)常得到時(shí)間它能夠優(yōu)先得以運(yùn)行。b. 優(yōu)點(diǎn)是越重要的工作可以得到更多的時(shí)間。也就是說,優(yōu)先級越高越先運(yùn)行。然而,結(jié)果將由短任務(wù)來承擔(dān)。c. 分配一個(gè)更長的時(shí)間給優(yōu)先級越高的程序。換句話說,可能有兩個(gè)或多個(gè)時(shí)間片在RR調(diào)度中。5.7
11、 考慮一個(gè)運(yùn)行十個(gè)I/O 限制任務(wù)和一個(gè)CPU限制任務(wù)的系統(tǒng)。假設(shè),I/O 限制任務(wù)一次分配給一個(gè)I/O 操作 1 毫秒的 CPU計(jì)算,但每個(gè)I/O 操作的完成需要10 毫秒。同時(shí),假設(shè)間接的上下文切換要0.1 毫秒,所有的進(jìn)程都是長進(jìn)程。對一個(gè)RR調(diào)度來說,以下情況時(shí)CPU的利用率是多少:a.時(shí)間片是 1 毫秒b.時(shí)間片是 10 毫秒答:a. 時(shí)間片是 1 毫秒: 不論是哪個(gè)進(jìn)程被調(diào)度,這個(gè)調(diào)度都會(huì)為每一次的上下文切換花費(fèi)一個(gè) 0.1 毫秒的上下文切換。CPU的利用率是 1/1.1*100=92% 。b. 時(shí)間片是 10 毫秒:這 I/O限制任務(wù)會(huì)在使用完1 毫秒時(shí)間片后進(jìn)行一次上下文切換。
12、這個(gè)時(shí)間片要求在所有的進(jìn)程間都走一遍,因此,10*1.1+10.1( 因?yàn)槊總€(gè) I / O限定任務(wù)執(zhí)行為 1 毫秒,然后承擔(dān)上下文切換的任務(wù),而CPU限制任務(wù)的執(zhí)行 10 毫秒在承擔(dān)一個(gè)上下文切換之前 ) 。因此, CPU的利用率是 20、 21.1*100=94% 。5.8 考慮一個(gè)實(shí)施多層次的隊(duì)列調(diào)度系統(tǒng)。什么策略能夠使一個(gè)計(jì)算機(jī)用戶使用由用戶進(jìn)程分配的最大的 CPU時(shí)間片。答:這個(gè)程序可以使分配給它的沒有被完全利用的CPU時(shí)間最大化。 它可以使用分配給它的時(shí)間片中的絕大部分,但在時(shí)間片結(jié)束前放棄CPU,因此提高了與進(jìn)程有關(guān)的優(yōu)先級。1. 5.9 考慮下面的基于動(dòng)態(tài)改變優(yōu)先級的可搶占式優(yōu)先
13、權(quán)調(diào)度算法。大的優(yōu)先權(quán)數(shù)代表高優(yōu)先權(quán)。當(dāng)一個(gè)進(jìn)程在等待CPU 時(shí)(在就緒隊(duì)列中,但未執(zhí)行),優(yōu)先權(quán)以 速率改變;當(dāng)它運(yùn)行時(shí),優(yōu)先權(quán)以速率 改變。所有的進(jìn)程在進(jìn)入就緒隊(duì)列時(shí)被給定優(yōu)先權(quán)為0。參數(shù) 和 可以設(shè)定給許多不同的調(diào)度算法。a. >>0 時(shí)所得的是什么算法?b. < <0 時(shí)所得的是什么算法?答: a.FCFSb.LIFO5.10 解釋下面調(diào)度算法對短進(jìn)程編程度上的區(qū)別:a.FCFSb.RRc 多級反饋隊(duì)列答:a.FCFS- 區(qū)別短任務(wù)是因?yàn)槿魏卧陂L任務(wù)后到達(dá)的短任務(wù)都將會(huì)有很長的等待時(shí)間。b.RR-對所有的任務(wù)都是能夠相同的(給它們相同的CPU時(shí)間區(qū)間) ,所以,
14、短任務(wù)可以很快的離開系統(tǒng),只要它們可以先完成。c.多級反饋隊(duì)列和RR調(diào)度算法相似它們不會(huì)先選擇短任務(wù)。5.11 用 Window XP 的調(diào)度算法,下列什么是數(shù)字優(yōu)先的線程。a.相對優(yōu)先級的值為REALTIME_PRIORITY_CLASS的屬于實(shí)體優(yōu)先類型的線程b.相對優(yōu)先級的值為NORMAL_PRIORITY_CLASS的屬于 NORMAL類型的線程c. 相對優(yōu)先級的值為HIGH_PRIORITY_CLASS的屬于 ABOVE_NORMAL類型的線程答: a.26b.8c.145 12 考慮在 Solaris操作系統(tǒng)中的為分時(shí)線程的調(diào)度算法:a: 一個(gè)優(yōu)先權(quán)是10 的線程的時(shí)間片是多少?優(yōu)
15、先權(quán)是55 的呢?b: 假設(shè)優(yōu)先權(quán)是 35 的一個(gè)線程用它所有的時(shí)間片在沒有任何阻止的情況下,這調(diào)度算法將會(huì)分配給這個(gè)線程什么樣新的優(yōu)先權(quán)?c: 假設(shè)一個(gè)優(yōu)先權(quán)是 35 的線程在時(shí)間片結(jié)束前阻止 I/O 操作。這調(diào)度算法將會(huì)分配給這個(gè)線程什么樣新的優(yōu)先權(quán)?答: a:160 和 40b:35C:545.13 傳統(tǒng) UNIX 調(diào)度在優(yōu)先數(shù)和優(yōu)先級間成反比關(guān)系:數(shù)字越高,優(yōu)先權(quán)越低。該調(diào)度進(jìn)程利用下面的方程重新計(jì)算進(jìn)程的優(yōu)先權(quán)一次一秒:優(yōu)先權(quán) = (最近 CPU使用率 / 2) + 基本數(shù)這里的基本數(shù) = 60, 最近的 CPU 使用率是指一個(gè)表明優(yōu)先權(quán)從上一次重新計(jì)算后開始進(jìn)程被CPU使用的情況。
16、假設(shè)最近進(jìn)程 p1 的 CPU使用率是 40 個(gè), p2 是進(jìn)程的新的優(yōu)先權(quán)是什么?在此信息的基礎(chǔ)上,傳統(tǒng)18, p3 是 10。當(dāng)優(yōu)先權(quán)重新計(jì)算后這三個(gè)UNIX 的調(diào)度會(huì)不會(huì)提高或降低CPU限制的進(jìn)程的相對優(yōu)先權(quán)?答 : 分配給這些進(jìn)程的優(yōu)先權(quán)分別是80,69 和65. 這調(diào)度降低了CPU限制的進(jìn)程的相對優(yōu)先權(quán)。第六章管程6.1 第一個(gè)著名的正確解決了兩個(gè)進(jìn)程的臨界區(qū)問題的軟件方法是Dekker設(shè)計(jì)的。兩個(gè)進(jìn)程 P0 和 P1 共享以下變量:boolean flag2;/*initially false*/int turn;進(jìn)程 Pi(i=0或 1) 和另一個(gè)進(jìn)程Pj(j=0或 1) 的結(jié)構(gòu)見圖7.27 。證明這個(gè)算法滿足臨界區(qū)問題
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新冠疫情健康教育宣傳防護(hù)手冊56課件
- 文化創(chuàng)意產(chǎn)業(yè)園區(qū)建設(shè)項(xiàng)目規(guī)劃設(shè)計(jì)報(bào)告
- 農(nóng)業(yè)廢棄物轉(zhuǎn)化為生物柴油技術(shù)鑒定報(bào)告(2025年)
- 車工工藝與技能課件:車內(nèi)槽和圓弧軸肩槽
- 氣切護(hù)理換紗布操作指南
- 教育類畢業(yè)設(shè)計(jì)答辯
- 呼吸訓(xùn)練模式體系構(gòu)建
- 精神衛(wèi)生保健講座
- 胃脘疼痛患者的中醫(yī)健康教育
- 肝臟疾病影像表現(xiàn)
- 人教版小學(xué)英語各年級重點(diǎn)單詞、短語及句型
- 玖玖電玩城消防安全管理制度
- 煙道內(nèi)噴涂施工方案
- 口腔影像學(xué)名詞解釋
- 水電站運(yùn)維管理
- 微積分基本公式
- 材料的斷裂(1)
- 被子植物門分科檢索表
- 監(jiān)理預(yù)驗(yàn)收表格(共11頁)
- 中國電信移動(dòng)終端營銷策略
- 百勝餐飲HIC高效能的輔導(dǎo)
評論
0/150
提交評論