概述
1.物理内存和虚拟内存
①物理内存
物理内存是系统硬件提供的内存,是真正的内存。系统的物理内存被划分为许多相同大小的部分,也称作内存页。内存页的大小取决于CPU的架构和操作系统的配置,一般为4KB。
物理内存的使用主要分为以下几方面:
1)内核使用
操作系统启动时,位于/boot目录下的压缩内核文件会被加载到内存中并解压。这部分内容在系统允许期间都会常驻在内存的起始位置。
2)进程使用
除去内核使用的部分,所有的进程都需要分配物理内存页给它们的代码、数据和堆栈。进程消耗的这些物理内存被称为“驻留内存”,RSS。
3)页缓存page cache
除去内核和进程使用的部分,物理内存剩下的部分被称为页缓存page cache。引入页缓存的目的是为了提高Linux操作系统对磁盘访问的性能。因为磁盘IO的速度远远低于内存的访问速度,所以Cache层在内存中缓存了磁盘上的部分数据。当数据请求到达时,如果在Cache中存在该数据则直接将数据传递给用户程序,避免了对底层磁盘的操作,提高了性能。
页缓存的大小是在一直动态变化的。当系统内存充足时,页缓存会一直增大;当系统内存不足时,这时如果有进程申请内存,操作系统会从page cache中回收内存页进行分配,如果page cache也已不足,那么系统会将当期驻留在内存中的数据置换到事先配置在磁盘上的swap空间中,然后空出来的这部分内存就可以用来分配了。这就是swap交换。swap交换往往会带来磁盘IO的大量消耗,严重影响到系统正常的磁盘io。出现大量的swap交换说明系统已经快要不行了,需要重点关注。
page cache实际上是内核中的物理内存,
最后
以上就是能干钥匙为你收集整理的Android mmap+Binder○的全部内容,希望文章能够帮你解决Android mmap+Binder○所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复