Linux内存优化实战教程(五)有哪些关键点?

2026-05-27 19:450阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3859个文字,预计阅读时间需要16分钟。

Linux内存优化实战教程(五)有哪些关键点?

Linux内存工作原理,内存映射为每个进程提供独立的虚拟空间,且该空间是连续的。这样,进程可以方便地访问内存,确切地说,是访问虚拟内存。

一、Linux内存工作原理 1,内存映射

  Linux内核给每个进程都提供了一个独立的虚拟空间,并且这个地址空间是连续的。这样,进程就可以很方便地访问内存,更确切地说是访问虚拟内存。

  虚拟地址空间的内部又被分为内核空间用户空间两部分,不同字长(也就是单个CPU指令可以处理数据的最大长度)的处理器,地址空间的范围也不同。比如常见的32位和64位系统

  

  • 32位系统的内核空间占用1G,位于最高处,剩下的3G是用户空间
  • 64位系统的内核空间和用户空间都是128T,分别占据整个内存空间的最高处和最低处,剩下的中间部分是未定义的。

  进程在用户态时,只能访问用户空间内存;只有进入内核态后,才可以访问内核空间内存。虽然每个进程的地址空间都包含了内核空间,但这些内核空间其实关联的都是相同的物理内存。这样,进程切换到内核态后,就可以很方便地访问内核空间内存。既然每个进程都有一个这么大的地址空间,那么所有的虚拟内存加起来,自然要比实际的物理内存大很多。所以,并不是所有的虚拟内存都会分配物理内存,只有那些实际使用的虚拟内存才分配物理内存,并且分配后的物理内存,是通过内存映射来管理的。

  内存映射,其实就是将虚拟内存地址映射到物理内存地址。

阅读全文

本文共计3859个文字,预计阅读时间需要16分钟。

Linux内存优化实战教程(五)有哪些关键点?

Linux内存工作原理,内存映射为每个进程提供独立的虚拟空间,且该空间是连续的。这样,进程可以方便地访问内存,确切地说,是访问虚拟内存。

一、Linux内存工作原理 1,内存映射

  Linux内核给每个进程都提供了一个独立的虚拟空间,并且这个地址空间是连续的。这样,进程就可以很方便地访问内存,更确切地说是访问虚拟内存。

  虚拟地址空间的内部又被分为内核空间用户空间两部分,不同字长(也就是单个CPU指令可以处理数据的最大长度)的处理器,地址空间的范围也不同。比如常见的32位和64位系统

  

  • 32位系统的内核空间占用1G,位于最高处,剩下的3G是用户空间
  • 64位系统的内核空间和用户空间都是128T,分别占据整个内存空间的最高处和最低处,剩下的中间部分是未定义的。

  进程在用户态时,只能访问用户空间内存;只有进入内核态后,才可以访问内核空间内存。虽然每个进程的地址空间都包含了内核空间,但这些内核空间其实关联的都是相同的物理内存。这样,进程切换到内核态后,就可以很方便地访问内核空间内存。既然每个进程都有一个这么大的地址空间,那么所有的虚拟内存加起来,自然要比实际的物理内存大很多。所以,并不是所有的虚拟内存都会分配物理内存,只有那些实际使用的虚拟内存才分配物理内存,并且分配后的物理内存,是通过内存映射来管理的。

  内存映射,其实就是将虚拟内存地址映射到物理内存地址。

阅读全文