實驗
一、程序管理與程序同步
實驗目的:
了解程序管理的實現方法,理解和掌握處理程序同步問題的方法並完成程式設計。
實驗內容:
實現銀行家演算法、程序排程的過程模擬。
實驗步驟:
理解銀行家演算法的核心機制;
設計相應資料結構;
程式設計實現;
測試。理解程序的三狀態排程過程;
設計排程演算法;
程式設計實現;
測試。實驗結果:
所實現的系統提供乙個使用者介面,可以在上邊發出資源申請命令,系統應能給出是否可以接受申請,並且有結論輸出;
所實現的系統根據乙個程序排程命令檔案,模擬程序的各種排程過程,用適合的表達方式表示出來。
// 程序排程的過程模擬
//#include "stdafx.h"
#include "stdio.h"
#include
#include "trique.h"
#include "iostream.h"
int r[3]=;
void readfile(prdy &ready)
dowhile(true);
fclose(fp); }
void delfromready(prdy &ready)
void inserttosus()
void delfromsus()
void inserttoready(prdy &ready,prdy runque)
runque->next = null;
p->next = runque; }
void roundrun(prdy &ready)
delfromsus();
inserttoready(ready,runque);
}else
if(time == runque->rtm)
else
printf("/n任意鍵繼續... .../n");
//delfromrun(runque);
}while(p->next!=null); }
int main(int argc, char* argv)
實驗
二、儲存器管理
實驗目的:了解虛擬儲存器管理的方法,理解置換演算法的工作原理。
實驗內容:程式設計實現
lru等置換演算法,模擬實現虛擬儲存器的位址變換過程。
實驗步驟:
理解lru
等置換演算法
;理解虛擬儲存器的位址變換過程。
程式設計實現; 測試
實驗結果:所實現的系統應能形象地表示出置換演算法的運**況,以及將輸入的邏輯位址變換成實體地址的過程。
// #include "stdafx.h"
#include
int ye[10]=;
int yesize[3];
int i***ists(int key)
void exchange(int pos,int key)
void print(bool istype,int key)
int lru()
else
key ++; }
return 1; }
int main(int argc, char* argv)
作業系統課程設計
1 實驗內容 學習程序管理的設計與實現,學習和運用作業系統原理,設計乙個作業系統子系統的模擬系統。通過該系統的設計除錯可增加對作業系統實現的感知性。設計乙個允許n個程序併發執行的程序管理的模擬系統。該系統包括簡單的程序控制 同步及通訊機構,其程序排程演算法可任意選擇。分析系統所需的資料結構 演算法的...
作業系統課程設計 模擬作業系統
程序管理主要包括程序排程,程序的建立和撤銷 程序的阻塞和喚醒,中斷作用的實現。用全域性變數模擬重要暫存器,如cpu重要暫存器,程式狀態暫存器psw 指令暫存器ir,程式計數器pc,資料緩衝暫存器dr等。中斷的發現應該是硬體的工作,這裡在函式cpu中加檢測psw的方式來模擬。在cpu 函式中,每執行一...
作業系統課程設計題目
1.shell 程式設計實驗 實驗 編寫乙個shell指令碼檔案 e 1 自學命令 cut,grep,sort,test。編寫shell指令碼,將以下檔案d1和d2集成為檔案d3。e 2 編寫兩個shell 指令碼s1,s2,s1能夠啟動3個程序,程序名稱分別為a,b,c,每個程序的 如下 int ...