学习内核的内存管理如果脱离了MMU的硬件原理,只去学习其软件逻辑,真的很难懂。说到底,软件代码的逻辑是为硬件服务,只是为了充分发挥硬件的各项功能,因此学习linux的内存管理机制,首先要学习下该处理器架构下MMU的工作原理,这样对我们理解页表机制的逻辑很有帮助...
分类:
系统相关 时间:
2016-04-05 17:46:52
阅读次数:
327
面试被问到虚拟内存,回答的感觉不够。于是重新总结一下。程序猿对内存的要求都是:私有的、速度快、容量无限大。对应现在的现况:使用一块物理内存、容量有限、并且速度有限,需要cpu多级缓存。物理内存暴露给进程存在问题:1.如果可以寻址内存的每个字节,容易破坏操作系统以..
分类:
系统相关 时间:
2016-03-27 00:00:15
阅读次数:
454
Linux-0.11内存管理模块是源码中比較难以理解的部分,如今把笔者个人的理解发表 先发Linux-0.11内核内存管理get_free_page()函数分析 有时间再写其它函数或者文件的:) /* *Author : DavidLin *Date : 2014-11-11pm *Email :
分类:
系统相关 时间:
2016-03-01 17:24:51
阅读次数:
401
在Linux中常常发现空暇内存非常少,似乎全部的内存都被系统占用了。表面感觉是内存不够用了,事实上不然。这是Linux内存管理的一个优秀特性,在这方面,差别于Windows的内存管理。主要特点是,不管物理内存有多大。Linux 都将其充份利用。将一些程序调用过的硬盘数据读入内存,利用内存读写的快速特
分类:
系统相关 时间:
2016-02-07 13:30:43
阅读次数:
229
当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法。那么我来谈谈这个问题。一、通常情况先来说说free命令:引用[root@server ~]# free -m total
分类:
系统相关 时间:
2016-01-31 02:56:06
阅读次数:
280
一.内存对齐的初步解说内存对齐能够用一句话来概括:“数据项仅仅能存储在地址是数据项大小的整数倍的内存位置上”比如int类型占用4个字节,地址仅仅能在0,4,8等位置上。例1:#include struct xx{ char b; int a; int c; char d;};int main(){ ...
Hi ,我是 Zorro 。这是我的微博地址,我会不定期在这里更新文章,如果你有兴趣,可以来关注我呦。另外,我的其他联系方式:Email:mini.jerry@gmail.comQQ:30007147本文PDF在聊 cgroup 的内存限制之前,我们有必要先来讲解一下:Linux 内存管理基础知识f...
分类:
系统相关 时间:
2016-01-11 22:16:38
阅读次数:
315
Linux 应用程序的内存分配中,是用 segment(段)进行区别的,使用 size 命令进行查看: size a.out text data bss dec hex filename 1639 264 8 1911 777 a.out 可...
分类:
系统相关 时间:
2015-12-28 23:12:53
阅读次数:
256
我会尽力以最简洁清晰的思路来写这篇文章。所谓内存寻址也就是从写在指令里的地址,转化为实际物理地址的过程。因为操作系统要兼顾许多东西,所以也就变得复杂。逻辑地址 →线性地址→物理地址逻辑地址 = 段 + 偏移量因为:最开始cpu中的alu宽度只有16位,但地址总线宽度有20位。所以设置四个段寄存器:c...
分类:
系统相关 时间:
2015-12-15 21:14:17
阅读次数:
267
SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)也就是通常所说的内存。内存的工作原理、控制时序、及相关控制器的配置方法一直是嵌入式系统学习、开发过程中的一个难点。我们从其硬件的角度来分析其原理,然后再引出SDRAM的驱动编写过程。内存...
分类:
系统相关 时间:
2015-12-15 08:58:11
阅读次数:
284