資源簡介
代碼基于LINUX環境,一共包含5次實驗報告
實驗1:熟悉Linux系統
實驗2:進程狀態
實驗3:進程同步和通信
實驗4:進程的管道通信
實驗5:頁面置換算法
源碼包括:FIFO_LRU、IPC、os、producer
代碼片段和文件信息
#include??
#include??
#include??
#include??
#include?
#include?
#include?
#include?
#include?
#define?frame_num?4
#define?total_instruction?12
struct?one_frame
{
int?page_no;
char?flag;
};
struct?one_frame?M_frame[frame_num];
int?Acess_Series[total_instruction];
float?hitTime?hitRate?=?0;
void?FIFO()?{
hitTime?=?0;
hitRate?=?0;
//數據結構M_frame的初始化
for?(int?i?=?0;?i?ame_num;?i++)?{
M_frame[i].page_no?=?0;
}
int?pos?=?0;?//0?<=?pos?ame_num?-?1?記錄最先進入的位置
printf(“執行FIFO頁面置換算法:\n“);
for?(int?i?=?0;?i? {
printf(“調入頁面是%d??“?Acess_Series[i]);
for?(int?j?=?0;?j?ame_num;?j++)
{
if?(Acess_Series[i]?==?M_frame[j].page_no)?{
hitTime++;?
printf(“命中????“);?
break;?
}
if?(M_frame[j].page_no?==?0)
{
M_frame[j].page_no?=?Acess_Series[i];
printf(“未命中??“);
break;
}
if?(j?==?frame_num?-?1)
{
M_frame[pos].page_no?=?Acess_Series[i];
pos++;
if?(pos?==?frame_num)?{
pos?=?0;
}
printf(“未命中??“);
}?
}
printf(“內存情況為:%d?|%d?|%d?|%d\n“?M_frame[0].page_no?M_frame[1].page_no?M_frame[2].page_no?M_frame[3].page_no);
}
hitRate?=?hitTime?/?total_instruction;
printf(“命中次數:%f\n“?hitTime);
printf(“命中率:%f\n“?hitRate);
}
void?BE()?{
hitTime?=?0;
hitRate?=?0;
struct?one_frame?BE_frame[frame_num+1];
//數據結構M_frame的初始化
for?(int?i?=?0;?i?ame_num+1;?i++)?{
M_frame[i].page_no?=?0;
}
int?pos?=?0;?//0?<=?pos?ame_num?-?1?記錄最先進入的位置
printf(“執行BE置換測試:\n“);
for?(int?i?=?0;?i? {
printf(“調入頁面是%d??“?Acess_Series[i]);
for?(int?j?=?0;?j?ame_num+1;?j++)
{
if?(Acess_Series[i]?==?M_frame[j].page_no)?{
hitTime++;?
printf(“命中????“);?
break;?
}
if?(M_frame[j].page_no?==?0)
{
M_frame[j].page_no?=?Acess_Series[i];
printf(“未命中??“);
break;
}
if?(j?==?frame_num)
{
M_frame[pos].page_no?=?Acess_Series[i];
pos++;
if?(pos?==?frame_num+1)?{
pos?=?0;
}
printf(“未命中??“);
}?
}
printf(“內存情況為:%d?|%d?|%d?|%d?|%d?\n“?M_frame[0].page_no?M_frame[1].page_no?M_frame[2].page_no?M_frame[3].page_noM_frame[4].page_no);
}
hitRate?=?hitTime?/?total_instruction;
printf(“命中次數:%f\n“?hitTime);
printf(“命中率:%f\n“?hitRate);
}
void?LRU()?{
hitTime?=?0;
hitRate?=?0;
//數據結構M_frame的初始化
for?(int?i?=?0;?i?ame_num;?i++)?{
M_frame[i].page_no?=?0;
}
printf(“執行LRU頁面置換算法:\n“);
for?(int?i?=?0;?i? {
printf(“調入頁面是%d??“?Acess_Series[i]);
for?(int?j?=?0;?j?ame_num;?j++)
{
if?(M_frame[j].page_no?==?Acess_Series[i])//命中
{
M_frame[j].flag?=?frame_num;
hitTime++;
printf(“命中????“);
for?(int?n?=?0;?n?ame_num;?n++)?{
M_frame[n].flag?-=?1;
}
break;
}
if
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-05-29?23:38??實驗\
?????文件??????251661??2018-05-07?22:52??實驗\2.pptx
?????文件??????275420??2018-05-07?22:52??實驗\3.pptx
?????文件??????281517??2018-05-15?12:48??實驗\5.pptx
?????文件????????4783??2018-05-14?20:08??實驗\FIFO_LRU.cpp
?????文件????????1676??2018-05-07?23:23??實驗\IPC.cpp
?????文件????????4764??2018-04-08?16:42??實驗\os.cpp
?????目錄???????????0??2018-05-14?23:06??實驗\os_lab\
?????文件??????????93??2018-03-29?21:27??實驗\os_lab\.~lock.1.doc#
?????文件??????????93??2018-03-29?21:27??實驗\os_lab\.~lock.head.odt#
?????文件??????????93??2018-03-29?21:27??實驗\os_lab\.~lock.linux.sxw#
?????文件??????????74??2018-03-29?21:27??實驗\os_lab\1.c
?????文件??????????74??2018-03-29?21:27??實驗\os_lab\1.cpp
?????文件????????7340??2018-03-29?21:27??實驗\os_lab\1.out
?????文件???????12288??2018-03-29?21:27??實驗\os_lab\11.doc
?????文件???????????0??2018-03-29?21:27??實驗\os_lab\2.c
?????文件??????676352??2018-03-29?21:27??實驗\os_lab\2.odp
?????文件???????11824??2018-03-29?21:27??實驗\os_lab\2.out
?????文件??????698368??2018-03-29?21:27??實驗\os_lab\3.odp
?????文件??????747520??2018-03-29?21:27??實驗\os_lab\4.odp
?????文件????????7340??2018-03-29?21:27??實驗\os_lab\4.out
?????文件??????586972??2018-03-29?21:27??實驗\os_lab\4_new.odp
?????文件??????691200??2018-03-29?21:27??實驗\os_lab\5.odp
?????文件???????11824??2018-03-29?21:27??實驗\os_lab\5.out
?????文件???????????0??2018-03-29?21:27??實驗\os_lab\8.c
?????文件????????6667??2018-03-29?21:27??實驗\os_lab\head.odt
?????文件????????8881??2018-03-29?21:27??實驗\os_lab\linux.sxw
?????文件????????9193??2018-03-29?21:27??實驗\os_lab\linux0.odt
?????文件????????4737??2018-03-29?21:27??實驗\os_lab\pcb.c
?????文件???????16169??2018-03-29?21:27??實驗\os_lab\實驗說明.odp
?????文件????????3067??2018-04-17?20:30??實驗\producer.cpp
............此處省略19個文件信息
評論
共有 條評論