交通計算機考研操作系統復習-實驗指導_第1頁
交通計算機考研操作系統復習-實驗指導_第2頁
交通計算機考研操作系統復習-實驗指導_第3頁
交通計算機考研操作系統復習-實驗指導_第4頁
交通計算機考研操作系統復習-實驗指導_第5頁
免費預覽已結束,剩余24頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

12022年10月27日北京交通大學計算機學院主講教師:何永忠聯系電話:電子郵件:(交助教)制作人:制作單位:北京交通大學計算機學院《操作系統實驗指導》22022年10月27日北京交通大學計算機學院教學要求待續一、完成三個必做實驗課題,并提交相應完整的實驗課題電子版,含實驗報告、源程序和可執行系統(截至16周周五)。二、實驗報告應給出實驗目的、實驗設計、源程序清單和說明、算法及關鍵數據結構設計、實驗問題回答、實驗過程中間結果屏幕截圖、疑難解惑及經驗教訓。建議自組和光盤方式自評與教評相結合32022年10月27日北京交通大學計算機學院教學要求續完三、電子版目錄結構要求:

1、以自己的學號姓名為一級目錄名

2、以課題簡稱為二級目錄名

3、以源程序、可執行系統為三級目錄名

4、實驗報告文檔存放在二級目錄下示例:05281101岳飛

|--線程同步算法---------------實驗報告文檔.doc|--內存管理算法|--源程序

|--文件系統模擬∟可執行系統

42022年10月27日北京交通大學計算機學院線程同步機制52022年10月27日北京交通大學計算機學院線程同步機制實驗目的通過觀察共享數據資源但不受控制的兩個線程的并發運行輸出結果,體會同步機制的必要性和重要性。然后利用現有操作系統提供的同步機制編程實現關于該兩個線程的有序控制,同時要求根據同步機制的Peterson軟件解決方案嘗試自己編程實現同步機制和用于同一問題的解決,并基于程序運行時間長短比較兩種同步機制。62022年10月27日北京交通大學計算機學院線程同步機制課題基本要求1基于給定銀行賬戶間轉賬操作模擬代碼作為線程執行代碼,在主線程中創建兩個并發線程,編程實現并觀察程序運行結果和予以解釋說明。利用Windows互斥信號量操作函數解決上述線程并發問題,并分析、嘗試和討論線程執行體中有關信號量操作函數調用的正確位置。72022年10月27日北京交通大學計算機學院線程同步機制課題基本要求2根據同步機制的Peterson軟件解決方案嘗試自己編程實現線程同步機制和用于上述線程并發問題的解決,并基于程序運行時間長短將其與基于Windows互斥信號量的線程同步機制的效率展開比較。其間,可規定線程主體代碼循環執行1000000次。82022年10月27日北京交通大學計算機學院共享數據資源的并發線程代碼示例intnAccount1=0,nAccount2=0;//主線程創建的全局變量intnLoop=0;intnTemp1,nTemp2,nRandom;do{ nTemp1=nAccount1; nTemp2=nAccount2; nRandom=rand(); nAccount1=nTemp1+nRandom; nAccount2=nTemp2-nRandom; nLoop++;}while((nAccount1+nAccount2)==0);printf("循環次數為%d\n",nLoop);銀行賬戶間轉賬操作模擬92022年10月27日北京交通大學計算機學院Windows線程編程知識1線程函數原型及框架DWORDWINAPIThreadExecutive(LPVOIDlpParameter){ …… return0;}#include<windows.h>102022年10月27日北京交通大學計算機學院Windows線程編程知識2線程創建函數原型HANDLECreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes,DWORDdwStackSize,LPTHREAD_START_ROUTINElpStartAddress,LPVOIDlpParameter,DWORDdwCreationFlags,LPDWORDlpThreadId);112022年10月27日北京交通大學計算機學院Windows線程編程知識3等待線程函數原型DWORDWaitForMultipleObjects(DWORDnCount,CONSTHANDLE*lpHandles,BOOLfWaitAll,DWORDdwMilliseconds);122022年10月27日北京交通大學計算機學院Windows線程編程知識4互斥信號量創建函數原型HANDLECreateMutex(LPSECURITY_ATTRIBUTESlpMutexAttributes,BOOLbInitialOwner,LPCTSTRlpName);132022年10月27日北京交通大學計算機學院Windows線程編程知識5互斥信號量釋放喚醒函數原型BOOLReleaseMutex(HANDLEhMutex);142022年10月27日北京交通大學計算機學院Windows線程編程知識6互斥信號量申請(上鎖/等待)函數原型DWORDWaitForSingleObject(HANDLEhHandle,DWORDdwMilliseconds);152022年10月27日北京交通大學計算機學院Windows線程編程知識7線程掛起函數原型VOIDSleep(DWORDdwMilliseconds);162022年10月27日北京交通大學計算機學院Windows時間編程知識系統時間獲取函數原型DWORDGetTickCount(VOID)172022年10月27日北京交通大學計算機學院線程同步機制

相關知識說明182022年10月27日北京交通大學計算機學院利用軟件方法解決進程互斥問題進程互斥算法1設置訪問編號進程互斥算法2設置訪問標志進程互斥算法3設置訪問標志進程互斥算法4編號+標志問題Peterson解決方案192022年10月27日北京交通大學計算機學院進程互斥算法1設置訪問編號Varturn:integer:=i;repeat……

whileturnidono_op;

臨界區

turn:=j;……untilfalse;202022年10月27日北京交通大學計算機學院進程互斥算法2設置訪問標志Varflagi,flagj:boolean:=false,false;repeatwhileflagjdono_op;flagi:=true;

臨界區

flagi:=false;untilfalse;212022年10月27日北京交通大學計算機學院進程互斥算法3設置訪問標志Varflagi,flagj:boolean:=false,false;repeatflagi:=true;

whileflagjdono_op;

臨界區

flagi:=false;untilfalse;222022年10月27日北京交通大學計算機學院進程互斥算法4編號+標志Varflagi,flagj:boolean;

turn:integer;repeatflagi:=true;turn:=j;

while(flagjandturn=j)dono_op;

臨界區

flagi:=false;untilfalse;232022年10月27日北京交通大學計算機學院利用硬件方法解決進程互斥問題完全利用軟件方法解決諸進程互斥進入臨界區的問題,有一定難度,且有很大局限性,因而現代很少采用此方法。針對這一點,現在許多計算機已提供了一些特殊的硬件指令,相關指令允許對一個字中的內容進行檢測和修正或交換兩個字的內容,故可用于解決臨界區問題。Test-and-Set指令Swap指令242022年10月27日北京交通大學計算機學院Test-and-Set指令functionTS(varlock:boolean):boolean;beginTS:=lock;lock:=true;end252022年10月27日北京交通大學計算機學院利用Test-and-Set指令實現互斥Varlock:boolean:=false;repeat……whileTS(lock)doskip;

臨界區

lock:=false;

……untilfalse;262022年10月27日北京交通大學計算機學院Swap指令procedureSwap(vara,b:boolean);Vartemp:boolean;begintemp:=a;a:=b;b:=temp;end272022年10月27日北京交通大學計算機學院利用Swap指令實現互斥Varlock:boolean:=false;repeat

key:=true;repeatSwap(lock,key);untilkey=false;

臨界區

lock:=false;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論