linux内存管理实验.ppt_第1页
linux内存管理实验.ppt_第2页
linux内存管理实验.ppt_第3页
linux内存管理实验.ppt_第4页
linux内存管理实验.ppt_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内存管理实验,掌握linux下内存管理相关的API 动态申请内存、调整及释放,实验目的,内存管理相关系统调用,void *malloc(int size); 动态申请内存 int* p,p1; p= (int *) malloc (sizeof(int); void free(void *block); 释放由malloc申请的内存 free(p); extern void *realloc(void *mem_address, unsigned int newsize);重新申请内存 p1=(int*)realloc(p, sizeof(int)*10); void* alloca(int

2、len); 半自动分配内存 p=(int*) alloca(sizeof(int)*10);,内存管理基本概念,下面是C语言可执行程序的基本情况 在linux下编译完,得到一个可执行程序后,这个可执行文件的信息可以用ls、file、size等命令来查看它的信息: $ gcc hello.c -o hello $ ls -lh hello -rwxrwxr-x 1 sice sice 7.2K 11月 20 11:07 hello $ file hello hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynam

3、ically linked (uses shared libs), for GNU/Linux 2.6.24, BuildIDsha1=0 x1c527b5f182525b11b81119597baf1aacbb97703, not stripped 说明:32位的小端格式的可执行文件,基于intel 80386平台,等信息。,内存管理基本概念,$ size hello 说明: text :代码段的大小 data :已初始化数据段大小 bss:未初始化数据段大小 dec:文件大小(十进制表示) hex:文件大小(十六进制表示) filename:文件名,内存管理基本概念(2),代码区(text

4、 segment):存放CPU执行的机器指令,包括操作码和操作数,可共享、通常只读。 全局初始化数据区/静态数据区(data):包含明确被初始化的全局变量、静态变量和常量数据。只初始化一次。 未初始化数据区(BSS):存入的是全局未初始化变量。在运行时改变其值。,C程序的内存布局,可执行代码(代码区),已初始化全局变量、静态变量和常量数据(数据区),未初始化全局变量(BSS,用零初始化),堆区(向上增长),栈区(向下增长),低地址,运行时的5个区域,高地址,用于动态分配内存,由编译器自动分配,存放函数的参数值、局部变量的值。,简单示例,#include #include int a=0; /a

5、在全局已初始化数据区 char *p1; /p1在BSS区(未初始化全局变量) main() int b; /b在栈区(局部变量) char s=“abc”; /s为数组变量,在栈区(局部变量) /” abc”为字符串常量,在已初始化数据区 char *p1,*p2; / p1,p2在栈区 static int c=0; /c为全局静态数据,在已初始化数据区 p1=(char*)malloc(10); /分配得来的10个字节在堆区 p2=(char*)malloc(20); /分配得来的20个字节在堆区 free(p1); free(p2);,Linux 内存查看命令free(补充),功能说明

6、:显示内存状态。语法: free -bkmotV-s 补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。参数:-b 以Byte为单位显示内存使用情况。-k 以KB为单位显示内存使用情况。-m 以MB为单位显示内存使用情况。-o 不显示缓冲区调节列。-s 持续观察内存使用状况。-t 显示内存总和列。-V 显示版本信息。 也可以用vmstat命令查看内存情况 也可以用cat /proc/meminfo查看,实验1 申请、使用、释放内存,Linux下编写一个C程序,申请一块大小为10字节的内存,存放” 123456789”,输出字符串及存放地址。(动态申请内存malloc)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论