Linux--变量与虚拟内存】的更多相关文章

Linux进程的虚拟内存区域分为:代码区.只读常量区.全局区.BSS段.堆区.栈区 代码区:存储功能代码,函数名所在的区域 只读常量区:存放字符串常量,以及const修饰的全局变量 全局区/数据区:存放已经初始化的全局变量和已经初始化用static修饰的局部变量 BSS段:存放没有初始化的全局变量和未初始化静态局部变量,该区域会在main函数执行前进行自动清零 堆区:使用malloc/new free/delete函数处理的内存,该区域的内存需要程序员手动申请和释放 栈区:存放局部变量(包括函数…
前一段时间学习了一下linux的变量,现在总结有3点需要特别注意: linux变量和C/C++变量的区别 linux变量的引用 linux变量特有的命令替换 先说第一点,linux变量更像是宏定义,只是可以变换指代内容.也就是说,在C/C++中,变量是只能赋值成不同类型的数据,例如int, char, ptr.但是在linux中,变量是可以赋值成任意形式的内容,比如字符串,针对这点来说,它更像是C/C++中的宏定义. 由于变量包含的内容不同,linux和C/C++的变量引用自然不同.linux中…
Linux变量之$#, $*, $@含义 一.介绍 $# //是传给脚本的参数个数 $ //是脚本本身的名字 $1 //是传递给该shell脚本的第一个参数 $ //是传递给该shell脚本的第二个参数 $@ //是传给脚本的所有参数的列表 $* //是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 $$ //是脚本运行的当前进程ID号 $? //是显示最后命令的退出状态,0表示没有错误,其他表示有错误 $! //Shell最后运行的后台Process的PID ‘@’ 和…
Linux系统实现虚拟内存有两种方法:交换分区(swap分区)和交换文件 交换文件 查看内存:free -m , -m是显示单位为MB,-g单位GB 创建一个文件:touch /root/swapfile 使用dd命令,来创建大小为2G的文件swapfile: dd if=/dev/zero of=/root/swapfile bs=1M count=2048 //命令执行完需要等待一段时间 if表示input_file输入文件 of表示output_file输出文件 bs表示block_siz…
简介 用户进程的虚拟地址空间是Linux的一个重要的抽象:它为每个运行进程提供了同样的系统视图,这使得多个进程可以同时运行,而不会干扰到其他进程内存中的内容. 每个应用程序都有自己的线性地址空间,与所有其他应用程序隔开. 进程的虚拟地址空间 各进程虚拟地址空间起始于0,延伸到TASK_SIEZE-1,其上是内核地址空间. 用户程序只能访问整个地址空间的下半部分,不能访问内核部分.如果没有预先达成"协议",用户进程也不可能操作另外一个进程的地址空间,因为后者的地址空间对前者不可见. 虚拟…
阿铭linux学习笔记之swap分区 一.作用: swap分区是交换分区,在系统物理内存不足时与swap进行交换,对web服务器的性能影响极大,通过调整swap分区大小来提升服务器的性能,节省资源费用. 二.步骤: 1.先创建一个swap文件 命令如下: dd  if=/dev/zero of=/tmp/swap bs=1024k count=1000 查看现在的系统内存: free -m  :‘-m’ 是将结果以‘MB’的形式显示出来 2.格式化我们创建的swap文件 命令: mkswap -…
linux可以文件或者分区来当作虚拟内存. 首先查看当前的内存和swap 空间大小(默认单位为k, -m 单位为M): free -m 查看swap信息,包括文件和分区的详细信息 swapon -s或者cat /proc/swaps 如果都没有,我们就需要手动添加交换分区.注意,OPENVZ架构的VPS是不支持手动添加交换分区的. 添加交换空间有两种选择:添加一个交换分区或添加一个交换文件.推荐你添加一个交换分区:不过,若你没有多少空闲空间可用, 则添加交换文件. 增加swap交换文件 1.使用…
突然集群的2个节点挂了,通过top查看, 虚拟内存22G, 通过 pmap -x 8 | grep anon 一大堆64M Linux下glibc的内存管理机制用了一个很奇妙的东西,叫arena.在glibc分配内存的时候,大内存从从中央分配区分配,小内存则在线程创建时,从缓存区分配.为了解决分配内存的性能的问题,就引入了这个叫做arena的memory pool.而恰好,在64bit系统下面,它的缺省配置为64M.一个进程可以最多有cores*8个arena,假如服务器是4核的,那么最多有4*…
Swap用途:Swap意思是交换分区,通常我们说的虚拟内存,是从硬盘中划分出的一个分区.当物理内存不够用的时候,内核就会释放缓存区(buffers/cache)里一些长时间不用的程序,然后将这些程序临时放到Swap中,也就是说如果物理内存和缓存区内存不够用的时候,才会用到Swap.swap清理:swapoff -a && swapon -a注意:这样清理有个前提条件,空闲的内存必须比已经使用的swap空间大------------------------------------------…
变量赋值:var=var_value 变量引用:$var 算术运算:var=`expr $var1 + $var2` 字符串连接:var=str$var1 数值比较:-eq/-ne/-gt/-lt/-ge/-le/==/!= 字符串比较:=/!=/-z/-n/str/=~ 文件测试:-e/-r/-w/-x/-s/-d/-f/-c/-b 说明: 1.赋值运算符两边要没空格,比较运算符两边要有空格. 2.Linux中变量不区分数值数型和字符串类型,当变量值为纯数时可当数值类型用也可当字符串类型用.…