资源简介

伙伴系统的简单实现,是操作系统的课程设计,看看吧。 代码+文档+心得。

资源截图

代码片段和文件信息

#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


评论

共有 条评论