资源简介
1、在该实验中,采用可变分区方式完成对存储空间的管理(即存储空间的分配与回收工作)。
2、设计用来记录主存使用情况的数据结构:已分区表和空闲分区表或链表。
3、在设计好的数据结构上设计一个主存分配算法。
4、在设计好的数据结构上设计一个主存回收算法。其中,若回收的分区有上邻空闲分区和(或)下邻空闲分区,要求合并为一个空闲分区登记在空闲分区表的一个表项里。
5、(附加)若需要可以实现程序的浮动,对内存空间进行紧凑。
代码片段和文件信息
// OS3.cpp : Defines the entry point for the console application.
//
#include “stdafx.h“
#include
#include
#include
#include
#include
#define maxsize 1000 //定义原始分配区的大小。
#include
struct free
{
unsigned m_size;
char* m_addr;
struct free *next*prior;
}*head*start;
char * mmalloc(unsigned size){
struct free *current=start;
char * c;
do{
if(start->m_size>size)
{ //有足够大的空闲区,有余。
start->m_size-=size;
c=start->m_addr;
start->m_addr+=size;
return c;
}
else if(start->m_size==size)
{ //有正好大小的空闲区。
start->next->prior=start->prior;
start->prior->next=start->next;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4277 2011-05-11 21:28 OS 3\OS31.cpp
目录 0 2011-05-11 21:31 OS 3
----------- --------- ---------- ----- ----
4277 2
- 上一篇:局域网神探,探测IP地址
- 下一篇:redis-3.2.8.tar.gz
评论
共有 条评论