在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中。这个沙盘就是虚拟地址空间(virtual address space)。
1 32位虚拟内存布局
在32位模式下虚拟地址空间总是一个4GB的内存地址块。这些虚拟地址通过页表(page table)映射到物理内存,页表由操作系统维护并被处理器引用。每一个进程拥有一套属于它自己的页表,但是还有一个隐情。只要虚拟地址被使用,那么它就会...
分类:
其他好文 时间:
2014-07-05 23:59:37
阅读次数:
399
关于LMA和VMA,这个问题,有点点小复杂,不过,此处,我会把我的理解,尽量通过通俗的方式解释出来,以方便理解。当然,鄙人水平有限,难免有错,希望各位批评指正。
一般提及LMA和VMA,多数情况都是和ld,链接器相关的。在了解这两个名词的详细含义之前,有些基本知识和前提要说一下:
[基础知识]
1。从你写的源代码到执行你的程序,一般经历了这几个过程:源代码编辑 -> 编译 ->...
分类:
其他好文 时间:
2014-07-05 23:39:47
阅读次数:
179
本文主要介绍了Linux中进程管理的相关命令,涉及到的主要命令有top,vmstat等.(1)top①功能:用来查看CPU,内存以及进程的状态。②用例:③相关注释:loadaverage表示负载,三个数值分别表示第1分钟,第5分钟,第10分钟Cpu中us表示用户空间程序占用百分比,sy表示内核模式占用..
分类:
系统相关 时间:
2014-07-02 16:01:10
阅读次数:
393
Redis与Memcached的比较.1.Memcached是多线程,而Redis使用单线程.2.Memcached使用预分配的内存池的方式,Redis使用现场申请内存的方式来存储数据,并且可以配置虚拟内存。3.Redis可以实现持久化,主从复制,实现故障恢复。4.Memcached只是简单的key...
分类:
其他好文 时间:
2014-07-01 20:34:13
阅读次数:
248
践踏堆栈-缓冲区溢出漏洞
打算写这篇文章是因为在网上看过一篇论文,讲了缓冲区溢出破坏堆栈来执行恶意程序的漏洞。该论文请见参考资料1。这篇文章会涉及一些汇编的基础知识,以及虚拟内存的一些基本概念等。当然用来调试程序的系统是linux,工具是gcc。很久没有看过汇编和C语言了,错漏之处,还请指正。
1.概要
文章标题有提到堆栈和缓冲区,那么就先来探讨下这几个名词的定义。这里的缓冲区,指的就是计算...
分类:
其他好文 时间:
2014-06-30 10:22:25
阅读次数:
176
1、移走虚拟内存文件到非系统盘 大家都知道,为了加快系统的执行,Windows提供了虚拟内存机制,而在Windows7中,默认是开启这项功能的,并且虚拟内存文件在系统盘。比方一台2G内存的机器,虚拟内存文件大小就是2G,我们全然能够将他移走,为系统盘剩下空间。 详细设置过程: 第一步,右...
<p>Windows变慢原因分析及解决方法<br/><br/><br/><br/>谁都希望计算机一开机就可以立即进入Windows系统而不用等待,或者是系统在使用的时候不会越来越慢,但由于种种原因常常使这些愿望不能实现,甚至一开机就死机或者用着用着就越来越慢的情况..
右键单击我的电脑--->>属性--->>高级->设置->就可以设置虚拟内存的最大值和最小值了。如果实在要用windows,看看下面的,没有经过实践,仅供参考右键单击我的电脑--->>属性--->>高级--->>启动和故障修复--->>设置--->>编辑--->>将最后一行multi(0)disk(0...
分类:
其他好文 时间:
2014-06-20 20:29:52
阅读次数:
242
iOS开发多线程网络———多线程概念及GCD一.多线程的概念1.什么是进程? a.正在进行中的程序被称为进程,负责程序运行的内存分配 b.每一个进程都有自己独立的虚拟内存空间2.什么是线程? a.线程是进程中一个独立的执行路径(控制单元) b.一个进程中至少包含一条线程,即主线程 (在i...
分类:
移动开发 时间:
2014-06-14 08:45:18
阅读次数:
357