- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux内存管理实验概要
Linux内存管理实验
一、实验目的
1. 通过在Linux环境下对内存管理的基本操作,感性认识Linux如何对内存进行管理。
2. linux下的内存地址映射过程以及进程的虚拟地址空间。
二、实验内容与要求
(1)按照实验内容完成实验操作步骤,学习中的一些常用命令
(2)理解linux中的概念。
free命令显示显示内存的使用情况(使用的和空闲的),包括物理内存、交换区内存、内核缓冲区内存。不包括共享内存。free命令默认选项为-k
语法:
free [-bkmotV] [-s 间隔秒数]选项介绍:
-b: 以Byte为单位显示内存使用情况;
-k: 以KB为单位显示内存使用情况;
-m: 以MB为单位显示内存使用情况;
-o: 不显示缓冲区调节列;
-s间隔秒数: 每间隔指定时间执行一次free命令;
-t: 显示内存总和列;
-V: 显示版本信息;
(1)free -k: 以KB为单位显示内存使用情况;
解释:total: 内存总量: (k)
used: 已经使用的内存量: (k)
free: 空闲的内存量: (k)
shared: 当前已经废弃不用,总量是0(k)
buffers: (k)
Buffer Cache内存量: (k)
cached: Page Cache内存量: 21436(k)
(2)free –m -s 5:以M为单位,5秒显示以下内存信息
解释:以上为每隔5秒显示内存信息,由以上图可知:两次内存使用情况没有变化。
(3)free -o: 不显示缓冲区调节列;
解释:由以上可知Buffer Cache这一列没有显示出来。
(4)free -t: 显示内存总和列;
解释:如上所示,内存总和是(k),内存已使用为(k),内存空闲为(k)。
(5)free -V: 显示版本信息
解释:版本号为
2.swapon –s: 显示交换区的使用状况
解释:交换区名为:/dev/sda3,类型为partition,大小为425712,已使用为0,优先级为-1。
3. vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
解释:vmstat [-V] [-n] [delay [count]]
其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。对于vmstat输出各字段的含义,可运行man vmstat查看。
下面给出了各个参数的不同含义:
procs:
r--在运行队列中等待的进程数
b--在等待io的进程数
w--可以进入运行队列但被替换的进程
memoy
swap--现时可用的交换内存(k表示)
free--空闲的内存(k表示)
buff--被用来做为缓存的内存数,单位:KB
cache--被用来做为文件读写缓存的内存数,单位:KB
swap
si--从磁盘交换到内存的交换页数量,单位:KB/秒
so--从内存交换到磁盘的交换页数量,单位:KB/秒
IO
bi--磁盘块入
bo--磁盘块出
System
in--每秒的中断数,包括时钟中断
cs--每秒的环境(上下文)切换次数
CPU
按 CPU 的总使用百分比来显示
us--用户进程使用的时间
sy--系统进程使用的时间
id--cpu空闲的时间
pages
re--回收的页面
mf--非严重错误的页面
pi--进入页面数(k表示)
po--出页面数(k表示)
fr--空余的页面数(k表示)
de--提前读入的页面中的未命中数
sr--通过时钟算法扫描的页面
disk 显示每秒的磁盘操作。
s表示scsi盘,0表示盘号
fault 显示每秒的中断数
in--设备中断
sy--系统中断
cy--cpu交换1.搭建linux实验平台,并在搭建好的平台中用vi编辑器编写一个简单C程序:
/*test.c?*/??
??
#include
??
int?global_data?=?4;??
??
int?global_data_2;??
??
int?main(int?argc,?char?**argv)??
??
{??
??
int?local_data?=?3;??
??
????printf(HelloWorldn);??
??
????printf(global_data=?%dn,???global_data);??
??
?????printf(global_data_2=?%dn,?global_d
文档评论(0)