• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-01-01
  • 语言: C/C++
  • 标签:

资源简介

在linux操作系统下模拟linux操作系统内存管理以及分配,学习操作系统内存管理以及分配,代码用c++示例。

资源截图

代码片段和文件信息

#include 
#include “my_malloc.h“

static Header base; /* 定义空闲链头,存储块划分的最小单位 */
static Header *free_list = NULL; /* 定义空闲链查询起始指针 free_list */


/* Malloc: 通用存储区分配函数 */
void* 
Malloc(unsigned int nbytes)
{
Header *p *prev;

unsigned int nunits;

nunits = (nbytes + sizeof(Header) - 1) / sizeof(Header) + 1;
if ( (prev = free_list) == NULL) { /* 空闲链上无任何空闲区块,定义空闲链 */
base.s.next = free_list = prev = &base;
base.s.size = 0;
}
for (p = prev->s.next; ; prev = p p = p->s.next) {
if (p->s.size >= nunits) { /* 够大 */
if (p->s.size == nunits) /* 整好 */
prev->s.next = p->s.next;
else {
p->s.size -= nunits;
p += p->s.size;
p->s.size = nunits;
}
free_list = prev;
return (void *)(p + 1);
}
if (p == free_list)
if ( (p = morecore(nunits)) == NUL

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2252  2011-12-01 12:44  my_malloc.c

     文件        407  2011-12-01 12:39  my_malloc.h

     文件        607  2002-12-15 13:02  test.c

     文件        135  2003-06-15 12:48  makefile

----------- ---------  ---------- -----  ----

                 3401                    4


评论

共有 条评论

相关资源