資源簡介
伙伴系統的簡單實現,是操作系統的課程設計,看看吧。
代碼+文檔+心得。

代碼片段和文件信息
#include?
#include?
#include?
int?buddy[10]={2481632641282565121024};??//分區大小?2的k次冪
int?free1[10]={0000000001};??//空閑分區的個數???初始內存大小1024
int?use[100][2]={0};???//已分配分區表??最多為100個進程分配?記錄已分配分區大小,內存地址
int?free_addr[10][50]={0};??//空閑分區的首地址?[i][j]表示2的i+1次方大小的空閑分區的第j個分區的首地址
int?maxsize=9;??//最大空閑分區?初始為1024
int?usenum=0;???//進程數?初始為0
void?menu();?????????//?多級菜單函數
void?showMemory();???//輸出內存占用情況
void?showFreeMemory();?//輸出空閑分區情況
void?showUseMemory();?//輸出已分配區情況
void?allocBuddy();????//分配內存
void?reclaimBuddy();???//回收內存
void?menu()
{
printf(“?*******************??????歡迎使用伙伴系統模擬程序??????**************\n“);
????printf(“?*********************************************************************\n“);
????printf(“?*********************************************************************\n“);
????printf(“?*******************?????????1.申請內存?????????????????**************\n“);
????printf(“?*******************?????????2.釋放內存?????????????????**************\n“);
????printf(“?*******************?????????3.查看內存占用情況?????????**************\n“);
printf(“?*******************?????????0.退出?????????????????????**************\n“);
????printf(“?*********************************************************************\n“);
????printf(“?*********************************************************************\n“);
????printf(“?*********************************************************************\n“);
int?n;
????lab1:
fflush(stdin);???//刷新緩沖區
printf(“請輸入(0-3)選擇:“);
scanf(“%d“&n);
switch(n)
{
????case?1:system(“cls“);
???showFreeMemory();
???allocBuddy();
???printf(“分配成功,按任意鍵返回!“);
???getch();
???system(“cls“);
???menu();
???break;
case?2:system(“cls“);
???if(usenum!=0)
???{
???????showUseMemory();
???????reclaimBuddy();
???????printf(“回收成功,按任意鍵返回!“);
???}
???else
???{
???????????????????printf(“未分配內存,請先申請內存!按任意鍵返回!“);
???}
???getch();
???system(“cls“);
???menu();
???break;
case?3:system(“cls“);
???showMemory();
???printf(“按任意鍵返回!“);
???getch();
???system(“cls“);
???menu();
???break;
case?0:printf(“按任意鍵退出!“);
???getch();
???break;
????????default:printf(“輸入錯誤,請重新輸入!\n“);
????goto?lab1;
}
}
void?showMemory()???//輸出內存使用情況
{
????int?ij;
printf(“空閑分區剩余情況:\n“);
for(i=0;i<10;i++)
{
printf(“空閑區大小%4d:有%d個空閑塊,內存起始地址分別為:“buddy[i]free1[i]);
for(j=0;j {
printf(“%4d~%4d?“free_addr[i][j]free_addr[i][j]+buddy[i]-1);
}
printf(“\n“);
}
printf(“內存已分配區情況:\n“);
for(i=0;i {
printf(“%2d:分區大小:%4d??內存起始地址為:%4d~%4d\n“i+1buddy[use[i][0]]use[i][1]use[i][1]+buddy[use[i][0]]-1);
}
}
void?showFreeMemory()?//輸出空閑分區情況
{
????int?ij;
printf(“空閑分區剩余情況:\n“);
for(i=0;i<10;i++)
{
printf(“空閑區大小%4d:有%d個空閑塊,內存起始地址分別為:“buddy[i]free1[i]);
for(j=0;j {
printf(“%4d~%4d?“free_addr[i][j]free_addr[i][j]+b
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6926??2012-06-21?21:54??伙伴系統的設計與實現\伙伴系統\companionSystem.cpp
?????文件???????3509??2012-06-17?11:09??伙伴系統的設計與實現\伙伴系統\companionSystem.dsp
?????文件????????538??2012-06-17?11:11??伙伴系統的設計與實現\伙伴系統\companionSystem.dsw
?????文件??????50176??2012-06-21?21:54??伙伴系統的設計與實現\伙伴系統\companionSystem.ncb
?????文件??????48640??2012-06-21?21:54??伙伴系統的設計與實現\伙伴系統\companionSystem.opt
?????文件???????1526??2012-06-21?21:47??伙伴系統的設計與實現\伙伴系統\companionSystem.plg
?????文件?????204867??2012-06-21?21:47??伙伴系統的設計與實現\伙伴系統\Debug\companionSystem.exe
?????文件?????308544??2012-06-21?21:47??伙伴系統的設計與實現\伙伴系統\Debug\companionSystem.ilk
?????文件??????19363??2012-06-21?21:47??伙伴系統的設計與實現\伙伴系統\Debug\companionSystem.obj
?????文件?????222152??2012-06-21?21:33??伙伴系統的設計與實現\伙伴系統\Debug\companionSystem.pch
?????文件?????525312??2012-06-21?21:47??伙伴系統的設計與實現\伙伴系統\Debug\companionSystem.pdb
?????文件??????41984??2012-06-21?21:49??伙伴系統的設計與實現\伙伴系統\Debug\vc60.idb
?????文件??????86016??2012-06-21?21:47??伙伴系統的設計與實現\伙伴系統\Debug\vc60.pdb
?????文件?????467456??2012-06-21?19:19??伙伴系統的設計與實現\伙伴系統.doc
?????文件??????29184??2012-06-21?21:19??伙伴系統的設計與實現\心得體會\孫磊-操作系統心得.doc
?????文件??????31744??2012-06-21?19:51??伙伴系統的設計與實現\心得體會\張銀銀-操作系統心得.doc
?????文件??????30208??2012-06-21?21:14??伙伴系統的設計與實現\心得體會\張飛操作系統心得.doc
?????文件??????32256??2012-06-21?21:55??伙伴系統的設計與實現\心得體會\章風云-操作系統心得.doc
?????文件??????33280??2012-06-21?21:31??伙伴系統的設計與實現\心得體會\趙小龍-操作系統心得.doc
?????文件??????33280??2012-06-21?20:10??伙伴系統的設計與實現\心得體會\趙育坤-操作系統心得.doc
?????文件??????31744??2012-06-21?20:48??伙伴系統的設計與實現\心得體會\趙飛-操作系統心得.doc
?????文件????????452??2012-06-21?10:19??伙伴系統的設計與實現\說明.txt
????..AD...?????????0??2012-11-11?10:02??伙伴系統的設計與實現\伙伴系統\Debug
????..AD...?????????0??2012-11-11?10:02??伙伴系統的設計與實現\伙伴系統
????..AD...?????????0??2012-11-11?10:02??伙伴系統的設計與實現\心得體會
????..AD...?????????0??2013-04-23?16:00??伙伴系統的設計與實現
-----------?---------??----------?-----??----
??????????????2209157????????????????????26
- 上一篇:GPS_INS位置組合程序
- 下一篇:pfc模擬裂紋開展
評論
共有 條評論