您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页实验3:存储管理

实验3:存储管理

来源:好走旅游网


操作系统实验报告

实验题目:存储管理

专 业 学 生 姓 名 班 级 学 号 指 导 教 师 沙超 指 导 单 位 计算机学院 日 期

-

教 师 评 语 教师签名: 年 月 日 成绩评定 备注-

一、实验目的

1、理解操作系统存储管理原理

操作系统的发展使得系统完成了大部分的内存管理工作。对于程序员而言,这些内存管理的过程完全透明不可见。因此,程序员开发时从不关心系统如何为自己分配内存,而且永远认为系统可以分配给程序所需要的内存。在程序开发时,程序员真正需要做的就是:申请内存、使用内存、释放内存,其他一概无需过问。

2、研读Linux 内存管理所用到的文件include/linux/mm.h,主要包括两个数据结构:mem_map、free_area

3、在Linux 下,用malloc()函数实现cat或copy命令。

二、实验指导

1、相关函数

1)内存动态分配函数 #include

void *malloc(size_t size)

该函数分配指定大小size个字节的内存空间,成功时返回分配内存的指针(即所分配内存的地址)。该内存区域没有清空。 2) void free(void * addr);

该函数释放由malloc()分配的内存,addr是要释放内存空间的起始地址,并且addr必须是被以前malloc( )调用返回的。

2、参考程序

例程1:申请内存、使用内存以及释放一块内存 #include #include #include int main(void) {

char * str;

if ((str=(char*)malloc(10))==NULL) {

printf(\"not enough memory to allocate buffer\\\\n\"); exit(1); }

strcpy(str,\"hello\");

printf(\"string is %s\\\\n\free(str); return 0; }

(要求:1、以自己的学号命名C程序;2、能够输出内存空间无法分配的信息)

-

例程2:在打开文件后,通过fstat()获得文件长度,然后通过malloc()系统调用申请响应大小的内存空间,通过read()将文件内容完全读入该内存空间,并显示出来。 #include

#include #include #include #include main() {

int fd,len; void *tp;

struct stat ps;

fd=open(“/home/jf03/try”,0); fstat(fd,&ps); len=ps.st_size; tp=malloc(len); read(fd,tp,len);

printf(“%s\\\\n”,tp); close(fd); }

(要求:1、以自己的姓名拼音命名C程序;2、能够输出你所要打开的文件大小)

三、实验步骤(附操作截图)

-

四、运行结果及其结果分析(附结果截图)

五、思考题

1、为什么需要动态存储分配?

-

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务