- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.4 linux用户程序的内存管理(90分钟).doc
1.4 Linux用户程序的内存管理
(实验估计时间:90分钟)
背景知识
实验目的
工具/准备工作
实验内容与步骤
背景知识
现代操作系统允许多个程序同时运行,因此,内存中需要同时存放这些程序。操作系统采用的存储管理方案主要有分区式存储管理、分页式存储管理、分段式存储管理和段页式存储管理等。
本实验以一个Linux实例程序说明应用程序如何通过系统调用来管理自己用的空闲内存,目的在于加深读者对操作系统存储管理内容的理解。
本实验实例由my-malloc.h、my-malloc.c和test.c三个文件组成。为阅读程序方便,对其中的主要函数作了说明,读者可结合程序注释理解该程序。
实验目的
1) 了解通过利用操作系统调用实现用户程序分配内存以及回收所用内存的程序过程,加深对操作系统存储管理机制的理解。
2) 通过阅读和分析Linux实验程序,学习Linux程序设计、调试和运行的方法。
工具/准备工作
在开始本实验之前,请回顾教科书的相关内容。
需要准备一台运行Linux操作系统的计算机。
实验内容与步骤
本实验程序主要定义了一个描述自由存储块的结构,每一个自由块都包含块的大小、指向下一块的指针以及块区本身,所有的自由块以地址增加顺序排列,并用链表链接起来。这一链表是本程序维护的一个空闲区域,对于操作系统的当前记录来说是已分出去的区域。因为本程序是运行在用户态的程序。
步骤1:单击红帽子,在“GNOME帮助”菜单中单击“附件”-“文本编辑器”命令,在文本编辑中键入清单5-4程序并保存为my-malloc.h。
清单5-4 my-malloc.h文件
# include stdlib.h
typedef long Align; /* for alignment to long boundary */
union header { /* block header: */
struct {
union header *next; /* next block if on Free list */
unsigned int size; /* size of this block */
} s;
Align x; /* force alignment of blocks */
} ;
typedef union header Header;
# define NALLOC 10 /* minimum #units to request */
static Header * morecore(unsigned int nu) ;
void * Malloc(unsigned int nbytes) ;
void Free(void *ap) ;
步骤2: 单击红帽子,在“GNOME帮助”菜单中单击“附件”-“文本编辑器”命令,在文本编辑中键入清单5-5程序并保存为my-malloc.c。
清单5-5 my-malloc.c文件
# include unistd.h
# include “my_malloc.h”
static Header base; /* empy list to get started */
static Header * free_list = NULL; /* start of free list */
/* Malloc: general-purpose storage allocator */
void * Malloc(unsigned int nbytes)
{
Header *p, *prev;
unsigned int nunits;
nunits = (nbytes + sizeof(Header) -1) / sizeof(Header) + 1;
if ( (prev = free_list) = = NULL) { /* no free list yet */
base.s.next = free_list = prev = base;
base.s.size = 0;
}
for (p = prev - s.next; ; p
您可能关注的文档
最近下载
- (某某公司)某某煤矿灾害治理三年规划(OA).docx VIP
- 幼儿园办园章程加入党建工作【3篇】.doc VIP
- 新外研版高二英语选择性必修二unit3Emoji a new language课件.pptx
- 天翼云从业者认证练习试题.doc
- 哈弗-哈弗H6-产品使用说明书-哈弗H6 1.5T自动两驱精英型-CC6460RM07-哈弗H6(升级版)-使用说明书-中文-01-16.01-01M.pdf
- 毕业论文(设计)薄壁筒型零件的工艺研究.doc VIP
- 《施耐德变频器ATV71说明书》.pdf
- 汉语言文学(师范)《修辞学》课程教学大纲.pdf
- 钢材运输航行船舶货物系固手册.docx VIP
- 2024知识考核消防设施操作员中级监控操作方向真题考试(含答案).docx
文档评论(0)