资源简介
借用外存空闲分区管理中位示图的方法来表示主存分配情况,实现主存空间的分配和回收。
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
struct bitGraph{
int a[8][8];
int freebit;
}BG;
struct Process{
char name[10];
int *pagetable;
int size;
Process *pre;
Process *nxt;
}*head;;
int Show(char *name)
{
int flag = 0;
Process *p;
for(p = head;p != NULL;p = p->nxt)
{
if(strcmp(p->name name)==0)
{
cout << endl;
cout << “-----------------“ << endl;
cout << “ 进程名 “ << endl;
cout << “-----------------“ << endl;
cout << “ 页号 块号“ << endl;
cout << “- - - - - - - - -“ << endl;
for(int i = 0; i < p->size; i ++){
cout << “ “ << i << “ “ << p->pagetable[i] << endl;
flag = 1;
}
cout << “-----------------“ << endl;
}
}
if(flag == 0)
cout << “没有该进程!“ << endl;
}
int getMalloc(){
int k = 0 flag = 0;
Process *process;
process = (Process *)malloc(sizeof(Process));
process->nxt = head->nxt;
if(head->nxt != NULL)
head->nxt->pre = process;
head->nxt = process;
process->pre = head;
cout << “请输入进程名:“;
cin >> process->name;
cout << “请输入进程所需内存大小:“;
cin >> process->size;
if(process->size > BG.freebit){
cout << “对不起,空闲空间不足以分配如此多内存给该进程。“ << endl;
return 0;
}
else{
process->pagetable = new int [process->size];
for(int i= 0; i < 8 && flag == 0; i ++)
for(int j = 0; j < 8 && flag == 0; j ++){
if(!BG.a[i][j]){
BG.a[i][j] = 1;
BG.freebit--;
process->pagetable[k] = 8 * i + j;
k ++;
if(k == process->size)
flag = 1;
}
}
}
cout << endl << “位示图:“ << endl;
for(int i = 0; i < 8; i ++)
{
for(int j = 0; j < 8; j ++)
cout << BG.a[i][j] << “ “;
cout << endl;
}
cout << endl;
cout << “当前空闲快数: “ << BG.freebit << endl;
Show(process->name);
}
int Free()
{
char name[10];
int flag = 0;
Process *p;
cout << “请输入需要回收的进程名:“;
cin >> name;
for(p = head;p != NULL; p = p->nxt)
{
if(strcmp(p->name name) == 0){
flag = 1;
for(int i = 0; i < p->size; i ++){
int m = p->pagetable[i] / 8;
int n = p->pagetable[i] % 8;
BG.a[m][n] = 0;
BG.freebit ++;
}
if(p->pre != NULL){
- 上一篇:天津理工C++实验报告齐全
- 下一篇:小区水电费管理系统
相关资源
- 软件工程课程设计--自动排课排课系统
- C语言程序设计第四版谭浩强课后习题
- 《算法珠玑》Java版本 一个最精简的题
- 《计算机常用数值算法与程序C++版》
- Virtual Machine Design and Implementation in C
- 物流管理系统数据库+后台ssh
- C语言在线考试系统
-
C++ ATL控件与ja
vasc ript交互 -
C++与ja
vasc ript交互 - 源代码——MFC的WebBrowser控件 C++与ja
- 基于SSH框架的在线考试系统165944
- Visual C++开发GIS系统第2版
- C++实现的JPEG压缩算法
- C++从入门到精通第三版 清华大学出版
- 校园导航c++实现
-
C++中使用CWebPage调用ja
vasc ript - 看病预约系统C++
- OpenCV 中文API官方帮助文档.rar
- C++ MFC调用Javascrip函数
- 排序算法经典大合集C++(数据全部测
-
ja
vasc ript实现的CRC16源码非查表法 - CHTMLDome2
- 分数的加减乘除及化简c++
评论
共有 条评论