2014/2015 學年第 2 學期
系別計算機學院
專業電腦科學與技術
班級 2014級專公升本
姓名蔡圓圓
學號 1410211014
授課老師趙群禮
實驗一:熟悉linux基本命令及程式設計環境
實驗總結:
編寫程式: gedit編輯器;
編寫程式 .c 存放;
//gcc:linux c程式編譯工具
當前資料夾:ls
編譯:gcc 源檔名 –o 目標檔名
執行: ./ 目標檔名
實驗二: 程序管理
一、實驗目的
(1)理解程序的概念,掌握父、子程序建立的方法。
(2)認識和了解併發執行的實質,掌握程序的併發及同步操作。
二、實驗環境
微型計算機,ubuntu linux10.04 ,gedit,gcc
三、實驗內容
1.編寫一c語言程式,實現在程式執行時通過系統呼叫fork( )建立兩個子程序,使父、子三程序併發執行,父親程序執行時螢幕顯示「i am father」,兒子程序執行時螢幕顯示「i am son」,女兒程序執行時螢幕顯示「i am daughter」。
2.多次連續反覆執行這個程式,觀察螢幕顯示結果的順序,直至出現不一樣的情況為止。記下這種情況,試簡單分析其原因。
3.修改程式,在父、子程序中分別使用wait()、exit()等系統呼叫「實現」其同步推進,並獲取子程序的id號及結束狀態值。多次反覆執行改進後的程式,觀察並記錄執行結果。
四、實驗結果
(1)(2) 第1次:
第2次:
第3次:
第4次:
(3)第1次
第2次:
第3次:
第4次:
五、源**
(1)///fork.c
#include
#include
#include
#include
int main()
else if (pid == 0)
else
else if (pid == 0)
}for (;n>0;n--)
exit(0);
}(2)
//nice.c
#include
#include
#include
#include
int main()
else if (pid == 0)
else
else if (pid == 0)
}for (;n>0;n--)
exit(0);
}(3)
//wait.c
#include
#include
#include
#include
#include
int main()
else if (pid == 0)
else
else if (pid == 0)
}for (;n>0;n--)
if(pid !=0)
exit(exit_code);
}實驗三: 程序排程
一、實驗目的
(1)理解程序控制塊和程序組織方式;
(2)掌握時間片輪轉排程演算法實現處理機排程。
二、實驗環境
微型計算機,ubuntu linux10.04 ,gedit,gcc
三、實驗內容
1.建立合理的pcb資料結構,建立含有8個程序結點的就緒佇列,每個程序的要求執行時間隨機產生,要求每個程序的要求執行時間不大於15。
2 .設定時間片大小(3~6),使用時間片輪轉排程演算法實現處理機排程。
四、實驗結果
五、源**
#include
#include
#include
#include
#define num 8
#define len sizeof(pcb)
typedef struct pcb
pcb;
void main ()
{ int timeslice=6,i;
pcb *runqueue;//執行佇列指標 1個
pcb *top,*tail,*temp;//就緒佇列指標 3個
srand((int)time(0));
for(i=0;i {
temp=(pcb*)malloc(len);
作業系統實驗報告
電腦科學與應用系 課程設計報告 作業系統原理 目錄1 題目簡述 2 2 需求分析 2 2.1設計思想 2 2.2要求 2 2.3任務 3 2.4執行環境 3 2.5開發工具 3 3 概要設計與詳細設計 3 3.1系統流程圖 3 3.2演算法流程圖 5 4 編碼與實現 10 4.1資料結構和演算法設計...
作業系統實驗報告
實驗名稱 哲學家就餐問題 班級 通訊1202班 學號 u201213584 姓名 趙越 指導老師 許毅平 一 實驗目的 1.熟練使用vc 6.0編譯環境,除錯並正確執行程式,更加熟練地利用c語言解決問題 2.了解哲學家就餐的基本原理,掌握死鎖的必要條件。3.理解源程式中產生和防止的演算法,及相關視窗...
作業系統實驗報告
實驗報告 一 實驗名稱 程序排程的設計與實現 二 實驗目的 1 綜合應用下列知識點設計並實現作業系統的程序排程 鄰接表,布林數 組,非阻塞輸入,圖形使用者介面 gui,程序控制塊,程序狀態轉換,多 級反饋佇列程序排程演算法。2 加深理解作業系統程序排程的過程。3 加深理解多級反饋佇列程序排程演算法。...