![湖南大學(xué)操作系統(tǒng)作業(yè)(2)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/aad563df-afda-40d9-ba6e-3fee5fd74f38/aad563df-afda-40d9-ba6e-3fee5fd74f381.gif)
![湖南大學(xué)操作系統(tǒng)作業(yè)(2)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/aad563df-afda-40d9-ba6e-3fee5fd74f38/aad563df-afda-40d9-ba6e-3fee5fd74f382.gif)
![湖南大學(xué)操作系統(tǒng)作業(yè)(2)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/aad563df-afda-40d9-ba6e-3fee5fd74f38/aad563df-afda-40d9-ba6e-3fee5fd74f383.gif)
![湖南大學(xué)操作系統(tǒng)作業(yè)(2)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/aad563df-afda-40d9-ba6e-3fee5fd74f38/aad563df-afda-40d9-ba6e-3fee5fd74f384.gif)
![湖南大學(xué)操作系統(tǒng)作業(yè)(2)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/aad563df-afda-40d9-ba6e-3fee5fd74f38/aad563df-afda-40d9-ba6e-3fee5fd74f385.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、操作系統(tǒng)第二次作業(yè)第三章3.1 Describe the differences among short-term, medium-term,and long-term scheduling.描述短程,中程和長(zhǎng)程調(diào)度的區(qū)別答:長(zhǎng)程調(diào)度從作業(yè)池中選取進(jìn)程,并裝入內(nèi)存開(kāi)始執(zhí)行,它的執(zhí)行頻率較慢,短程調(diào)度從準(zhǔn)備執(zhí)行的進(jìn)程中選擇進(jìn)程并分配CPU時(shí)間片,這種調(diào)度方式必須頻繁地為CPU分配新的進(jìn)程,且有一定量的時(shí)間浪費(fèi)在CPU的上下文切換上,而中程調(diào)度使用的是交換的策略,將進(jìn)程從CPU競(jìng)爭(zhēng)中移出,以降低多道程序設(shè)計(jì)的程度。被交換出的進(jìn)程會(huì)保存信息,并在換入時(shí)繼續(xù)執(zhí)行3.2 Describe the act
2、ions taken by a kernel to context-switch between pro-cesses.描述系統(tǒng)內(nèi)核在上下文切換時(shí)的動(dòng)作答:在執(zhí)行上下文切換時(shí),在某個(gè)進(jìn)程的掛起時(shí)(由中斷或系統(tǒng)調(diào)用引起),先保存該進(jìn)程狀態(tài)至該進(jìn)程控制塊PCB中,包括進(jìn)程的狀態(tài),編號(hào),程序計(jì)數(shù)器PC,寄存器等等,而在程序從掛起狀態(tài)重新執(zhí)行時(shí)(由中斷或系統(tǒng)調(diào)用引起),需要從對(duì)應(yīng)的PCB表中讀取信息,并從上次中斷處繼續(xù)執(zhí)行。3.4 Using the program shown in Figure 3.24, explain what will be output at Line A.使用3.24的程
3、序,解釋LINE A的可能輸出答:因?yàn)樽舆M(jìn)程會(huì)復(fù)制父進(jìn)程的堆棧信息,在生成子進(jìn)程前,堆棧中已經(jīng)存放全局變量value=5的信息,然后子進(jìn)程的修改只是在其獨(dú)有堆棧中,而父進(jìn)程的打印操作打印的是父進(jìn)程的value值,故沒(méi)有被修改過(guò),為53.5 The correct producer-consumer algorithm in the ppt,allows only n-1 buffers to be full at any one time .Modify the algorithm to allow all buffers to be utilized fully.課件中的代碼只能存儲(chǔ)n-1個(gè)
4、緩存空間,要求修改代碼實(shí)現(xiàn)所有緩存都能被利用答:本題是一個(gè)數(shù)據(jù)結(jié)構(gòu)問(wèn)題,在上學(xué)期的數(shù)據(jù)結(jié)構(gòu)課中有所探討,對(duì)于一個(gè)順序隊(duì)列來(lái)說(shuō),隊(duì)空和隊(duì)滿(mǎn)的判斷條件其實(shí)都是front=rear,所以書(shū)上采取的措施是舍棄一個(gè)存儲(chǔ)單元,當(dāng)隊(duì)列中只剩下一個(gè)單元時(shí)就認(rèn)為隊(duì)滿(mǎn)。本題有兩個(gè)解決思路,分別是:1通過(guò)增加flag位修正隊(duì)滿(mǎn)條件 2 增加count值來(lái)判定隊(duì)列中元素個(gè)數(shù),我在此處使用方法1來(lái)完成對(duì)于代碼的修改。/使用flag記錄最后一個(gè)對(duì)隊(duì)列的操作,當(dāng)判斷頭尾指針相等時(shí),如果標(biāo)志記錄為刪除,則隊(duì)列空,如果標(biāo)志記錄上一個(gè)操作為插入,則隊(duì)列滿(mǎn)int flag=0; /0代表空,1代表滿(mǎn),2代表不空
5、不滿(mǎn)While(1) /生產(chǎn)者While (flag=1) /do nothing/隊(duì)列滿(mǎn) 等待bufferin=nextProduced; in=(in+1)%BUFFER_SIZE; /否則,存入下一個(gè)空位,移動(dòng)指針if(in=out) flag=1;else flag=2;/如果生產(chǎn)之后in=out,則隊(duì)滿(mǎn) While(1)/消費(fèi)者 While(flag=0)
6、160; /do nothing/隊(duì)空時(shí)無(wú)操作nextconsumed=bufferout; out=(out+1)%buffer_size; /否則,取出第一個(gè)信息,移動(dòng)指針if(in=out) flag=0; / 如果消費(fèi)之后in=out 則隊(duì)空else flag=2; 第四章作業(yè)4.1 Provide two programming examples in which multithreading does not provide better performance than a single-threaded solution.舉2個(gè)例子說(shuō)明
7、多線(xiàn)程不比單線(xiàn)程處理方式優(yōu)良的情況答:1 對(duì)于單核機(jī)器,執(zhí)行一個(gè)具有兩個(gè)線(xiàn)程的進(jìn)程耗時(shí)要大于執(zhí)行同一個(gè)線(xiàn)程兩次,這是因?yàn)樵诰€(xiàn)程的切換過(guò)程中有上下文切換的耗時(shí),另一方面,線(xiàn)程的創(chuàng)建和銷(xiāo)毀也有較多的耗時(shí)。2 單核機(jī)器下,對(duì)于計(jì)算密集型的程序(即IO操作較少),多線(xiàn)程會(huì)囿于線(xiàn)程切換的耗時(shí)表現(xiàn)不如單線(xiàn)程3 對(duì)于一個(gè)要求順序很強(qiáng)的程序來(lái)說(shuō),比如對(duì)于一個(gè)文件的操作,要求先讀,后寫(xiě),這時(shí)如果采用多線(xiàn)程則會(huì)涉及到對(duì)于信號(hào)的保護(hù),比如寫(xiě)的時(shí)候不能讀,讀的時(shí)候不能寫(xiě)等問(wèn)題,所以這時(shí)多線(xiàn)程的表現(xiàn)也會(huì)不如單線(xiàn)程。4.2 Describe the actions taken by a thread library to
8、 context switch between user-level threads.描述線(xiàn)程庫(kù)在用戶(hù)級(jí)線(xiàn)程上下文切換時(shí)的動(dòng)作答:通過(guò)輕量級(jí)進(jìn)程LWP,LWP表現(xiàn)為一種應(yīng)用程序可以調(diào)度用戶(hù)線(xiàn)程來(lái)運(yùn)行的虛擬處理器,通過(guò)調(diào)用線(xiàn)程庫(kù)中的函數(shù),將用戶(hù)級(jí)線(xiàn)程通過(guò)LWP和內(nèi)涵線(xiàn)程建立起連接,我的理解是,用戶(hù)線(xiàn)程通過(guò)LWP向內(nèi)核線(xiàn)程發(fā)送消息,內(nèi)核線(xiàn)程接收消息并作出調(diào)度,將當(dāng)前線(xiàn)程掛起并給予另一個(gè)線(xiàn)程CPU資源,這個(gè)信息也通過(guò)LWP傳給另一個(gè)將要被切換至的線(xiàn)程,從而導(dǎo)致該線(xiàn)程得以運(yùn)行。4.3 Under what circumstances does a multithreaded solution usin
9、g multiple kernel threads provide better performance than a single-threaded solution on a single-processor system?什么情況下多核多線(xiàn)程比單核單處理器系統(tǒng)提供更好的表現(xiàn)?答:一個(gè)應(yīng)用程序可能需要執(zhí)行多個(gè)相似任務(wù),例如網(wǎng)頁(yè)服務(wù)器接收用戶(hù)關(guān)于網(wǎng)頁(yè),圖像,聲音的請(qǐng)求,一個(gè)忙碌的網(wǎng)頁(yè)服務(wù)器可能有多個(gè)客戶(hù)并發(fā)訪問(wèn)它,如果網(wǎng)頁(yè)服務(wù)器作為傳統(tǒng)單個(gè)線(xiàn)程的進(jìn)程來(lái)執(zhí)行,那么一次只能處理一個(gè)請(qǐng)求,這樣客戶(hù)必須等待很長(zhǎng)的等待時(shí)間。4.5 Can a multithreaded solution using
10、multiple user-level threads achieve better performance on a multiprocessor system than on a single-processor system?相比單處理器系統(tǒng),多線(xiàn)程使用多用戶(hù)線(xiàn)程的解決方案在一個(gè)多用戶(hù)系統(tǒng)上面能夠?qū)崿F(xiàn)更好的表現(xiàn)嗎答:在多用戶(hù)線(xiàn)程的多線(xiàn)程系統(tǒng)中,操作系統(tǒng)不能調(diào)度不同處理器上的其他用戶(hù)進(jìn)程的線(xiàn)程,這和多任務(wù)的初衷相違背,因此多處理器多用戶(hù)線(xiàn)程無(wú)法獲得性能提高。4.9 Write a multithreaded Java, Pthreads, or Win32 program that out
11、puts prime numbers. This program should work as follows: The user will run the program and will enter a number on the command line. The program will then create a separate thread that outputs all the prime numbers less than or equal to the number entered by the user.編寫(xiě)多線(xiàn)程的java,pthreads或者win32程序輸出素?cái)?shù),
12、程序的功能如下:用戶(hù)運(yùn)行程序并輸入數(shù)字指令,程序如何創(chuàng)建一個(gè)線(xiàn)程輸出小于等于他的所有素?cái)?shù)。答:整體代碼結(jié)構(gòu)和書(shū)上無(wú)異,只需要更改線(xiàn)程內(nèi)的函數(shù)體即可,代碼后附,以下為運(yùn)行結(jié)果 傳入?yún)?shù)均為100Win32程序運(yùn)行環(huán)境 DEVC+ 5.11Java程序運(yùn)行環(huán)境 Mars.2 Release (4.5.2)Win32代碼#include<windows.h>#include<stdio.h>#include<math.h>DWORD flag;DWORD WINAPI Prime(LPVOID Param)DWORD num =*(DWORD*)Param;pri
13、ntf("2 ");for(DWORD i=3;i<=num;i+ )flag=1; for(DWORD j=2;j<=sqrt(i)+1;j+)if(i%j=0)flag=0;break; if(flag)printf("%d ",i);return 0; int main(int argc,char *argv)DWORD ThreadID;HANDLE ThreadHandle;int Param;if(argc!=2)fprintf(stderr,"未傳參給main函數(shù)n");return -1;Param = a
14、toi(argv1);if(Param<2)fprintf(stderr,"整數(shù)要大于2n"); return -1;ThreadHandle = CreateThread(NULL,0,Prime,&Param,0,&ThreadID);if(ThreadHandle != NULL)WaitForSingleObject(ThreadHandle,INFINITE);CloseHandle(ThreadHandle);Java代碼/* * author zhoudawei * version 創(chuàng)建時(shí)間:2016年10月15日 下午8:48:01 *
15、 version 完成時(shí)間:2016年10月16日 上午11:57:01*/class PrimesThread implements Runnable/定義實(shí)現(xiàn)runnable接口的類(lèi)private int num;private int primeNums;public PrimesThread(int num) if (num < 2)throw new IllegalArgumentException();this.num = num;public void run() /定義run函數(shù),實(shí)現(xiàn)run函數(shù)的代碼被作為一個(gè)獨(dú)立的線(xiàn)程執(zhí)行if(num>=2)System.out.print("2 ");for(int x=2;x<num;x+)int flag=1;for(int i=2;i<Math.sqrt(x)+1;i+)if (x%i=0)flag=0;if (flag=1)Syste
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人抵押貸款合同季度范本
- 臨街店鋪購(gòu)買(mǎi)合同范本
- 二次供水設(shè)備采購(gòu)合同
- 專(zhuān)業(yè)服裝管理軟件經(jīng)銷(xiāo)合同書(shū)
- 上海市股權(quán)轉(zhuǎn)讓合同標(biāo)準(zhǔn)范本
- 二手房銷(xiāo)售代理合同協(xié)議
- 中外合作種植戰(zhàn)略合作合同
- 云計(jì)算服務(wù)提供商數(shù)據(jù)保密合同
- 返聘人員協(xié)議書(shū)
- IT行業(yè)員工培訓(xùn)勞動(dòng)合同范本
- 【大學(xué)課件】機(jī)電設(shè)備管理技術(shù)概論
- (2024)甘肅省公務(wù)員考試《行測(cè)》真題及答案解析
- 醫(yī)院醫(yī)務(wù)人員醫(yī)德考評(píng)標(biāo)準(zhǔn)
- 小紅書(shū)種草營(yíng)銷(xiāo)師(初級(jí))認(rèn)證考試真題試題庫(kù)(含答案)
- 癲癇病人的護(hù)理(課件)
- 企業(yè)資產(chǎn)管理培訓(xùn)
- 2024年WPS計(jì)算機(jī)二級(jí)考試題庫(kù)350題(含答案)
- 2024年4月27日浙江省事業(yè)單位招聘《職業(yè)能力傾向測(cè)驗(yàn)》試題
- 2024年6月浙江省高考地理試卷真題(含答案逐題解析)
- 醫(yī)院培訓(xùn)課件:《如何撰寫(xiě)護(hù)理科研標(biāo)書(shū)》
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試 數(shù)學(xué) 含答案
評(píng)論
0/150
提交評(píng)論