一、实验目的

通过编程进一步了解内存管理。

二、实验内容

在服务器上用Vim编写一个程序(在os_exp/exp6_mem/mem.c文件上编写):仿真实现某个内存管理算法,设计测试用例,给出结果,并对解释运行结果。

如何模拟内存管理:

  • 调用函数malloc函数,从实际内存中申请一块空间,对这块空间进行管理

三、实验要求

实验基本要求见:所有实验要求

截止时间:2023-05-30 23:00 (大概有三周时间可以做)

实验报告提交:提交到课堂派,同时上传pdf和markdown文档

四、评分

  • 本次基本实验满分10分
    • 记录内存空闲和使用情况,3分
    • 内存分配,3分
    • 内存释放,3分
    • 测试,1分
  • 挑战性任务,15分
    • 实现虚拟内存管理,分页、分段、段页式,不需要实现连续分配

五、实验报告

如果很尽力去做了,但代码运行不正确,或者部分功能未能实现。没关系,将你所做的努力写到报告里,依然可以得高分,因为实验重在展示你所做的努力,而非最后结果。

  • 做了什么
  • 碰到什么样的问题
  • 针对遇到的问题,你做了哪些努力

注:

  • 结合关键代码,解释代码背后的原理(对于别人不能一眼就能明白你代码要做什么的,你要给出解释)
  • 设计测试用例,给出测试结果,并解释运行结果
  • 文末,给出完整的源代码

六、一些提示

如果采用链表记录内存空闲区,不定长的,那么至少需要这些变量,从哪里开始、大小、指向下一个空闲链表指针,那么定义一个结构体,如下:

/*描述每一个空闲块的数据结构*/
typedef struct free block typet{
    int size;
    int start_addr;
    struct free block type *next;
}FBT;
本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2023-05-16 22:00

results matching ""

    No results matching ""