📄 display.c
字号:
//display.c 显示一些菜单
//2007.12.12
extern int mem_size;
extern int ma_algorithm;
extern struct free_block_type* free_block;
extern struct allocated_area* allocated_block;
//显示菜单
display_menu()
{
printf("\n\n 虚拟内存管理\n");
printf("_______________________________________________________\n\n");
printf("\t1 设置内存大小\n\t2 设置分配算法\n\t3 创建新进程\n\t4 删除进程\n\t5 显示内存使用情况\n\t6 概况\n\t0 退出\n");
printf("_______________________________________________________\n");
printf("\t\n请选择:");
return 0;
}
//显示内存使用情况
page_c()
{
int i=25;
for(;i>0;i--)
printf("\n");
return 0;
}
display_mem_usage(struct free_block_type *fb,struct allocated_area *ab)
{
int i;
//显示空闲内存
i=0;
page_c();
printf("\n 内存使用情况\n");
printf("---------------------------------------------------------------------\n");
//可用内存
printf("\n当前可用内存\n");
printf("---------------------------------------------------------------------\n");
printf("%-20s%-20s%-20s%-20s\n","序号","起始地址","结束地址","区域大小");
while(fb!=NULL)
{
i++;
printf("%-20d%-20d%-20d%-20d\n",i,fb->start_addr,(fb->start_addr+fb->size-1),fb->size);
fb=fb->next;
}
//已用内存
printf("\n当前已用内存\n");
printf("---------------------------------------------------------------------\n");
printf("%-20s%-20s%-20s%-20s\n","进程号","起始地址","结束地址","区域大小");
while(ab!=NULL)
{
printf("%-20d%-20d%-20d%-20d\n",ab->pid,ab->start_addr,(ab->start_addr+ab->size-1),ab->size);
ab=ab->next;
}
printf("\n\n任意键继续...");
getch();
return 0;
}
//显示概况
display_all()
{
int free_m;
char *p[3]={"FF(最先适应算法)","BF(最佳适应算法)","WF(最坏适应算法)"};
free_m=free_memery();
page_c();
printf(" 概况\n");
printf("-------------------------------------------------------------\n");
printf("内存总大小: %d\t",mem_size);
printf("内存分配算法: %s\n\n",*(p+ma_algorithm-1));
printf("当前使用量: %d\t\t",mem_size-free_m);
printf("可用内存大小: %d\n\n",free_m);
printf("当前进程数: %d\n",process_count());
printf("-------------------------------------------------------------\n\n");
printf("任意键继续...");
getch();
return 0;
}
int free_memery()
{
int mem=0;
struct free_block_type* fb;
fb=free_block;
while(fb!=NULL)
{
mem+=fb->size;
fb=fb->next;
}
return mem;
}
int process_count()
{
int pro=0;
struct allocated_area* ab;
ab=allocated_block;
while(ab)
{
ab=ab->next;
pro++;
}
return pro;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -