当前位置: 首页 > 教程 >正文

linux的虚拟内存机制(linux虚拟内存原理)

linux的虚拟内存机制, Linux是一种类似UNIX的操作系统,可以免费使用和自由传播。它是一个独立且非常强大的系统,拥有众多粉丝。那么我们今天就来了解一下它独特的虚拟内存机制。

linux的虚拟内存机制

linux的虚拟内存机制:

1.每个进程都有自己独立的4G内存空间,每个进程的内存空间都有类似的结构。

Linux内存管理采用页面管理和多级页表。当动态地址转换机制、主存和辅存共同实现虚拟内存新进程的建立时,

会建立自己的内存空间,这个进程的数据和代码会从磁盘复制到自己的进程空间,数据在哪里,

它由进程控制表中的task_struct、task_struct中的链表和记录中的内存空间分配来记录。

哪些地址有数据,哪些地址没有数据,哪些可以读取,哪些可以写入,可以通过这个链表记录每个进程分配的内存空间,这些内存空间与相应的磁盘空间进行映射。

linux的虚拟内存机制

2.每个程序都可以看到一个完整而连续的地址空间,它与物理内存没有直接关系,而是操作系统提供的内存的抽象概念。

使每个进程都有一个连续完整的地址空间,然后在程序运行过程中完成虚拟地址到物理地址的转换。

我们也知道一个进程的地址空间是分段的,有所谓的数据段、代码段、bbs段、堆、栈等等。每个片段都有特定的功能。

同时电脑没有那么多内存(N个进程需要对应的n*4G内存)。要构建一个进程,需要将磁盘上的程序文件复制到进程对应的内存中。

对于一个程序对应多个进程的情况,它会浪费内存。

linux的虚拟内存机制

3.每个进程的4G内存空间只是一个虚拟内存空间。每次访问内存空间中的地址时,都需要将地址转换为实际的物理地址。所有进程共享相同的物理内存。

每个进程只将它需要的虚拟内存空间映射和存储到物理内存中。该进程需要知道哪些内存地址在物理内存中,哪些不在物理内存中,以及它们在哪里。

需要记录在页表中的页表的每个条目被分成两部分。第一部分记录页面是否在物理内存中,第二部分记录物理内存的地址。当进程访问虚拟地址时,

检查页表,如果相应的数据不在物理内存中,缺页异常处理过程是将该过程所需的数据从磁盘复制到物理内存中。

如果内存已满且没有空余空间,则找到一页进行覆盖。当然,如果被覆盖的页面已被修改,则需要将其写回磁盘。

linux的虚拟内存机制

4.每个进程的内存空间是一致且固定的,因此链接器可以在链接执行文件时设置内存地址,而不管这些数据的最终实际内存地址。

这就是拥有独立内存空间的好处。当不同的进程使用相同的代码(例如库文件中的代码)时,物理内存中只能存储该代码的一个副本。

不同的进程只需要映射自己的虚拟内存来节省内存。当程序需要分配连续的内存空间时,

您只需要在虚拟内存空间中分配连续空间,但在实际物理内存中不需要连续空间,因此可以使用碎片。

linux的虚拟内存机制

linux的虚拟内存机制,以上就是本文为您收集整理的linux的虚拟内存机制最新内容,希望能帮到您!更多相关内容欢迎关注。

相关文章:
  • 天际通怎么用(天际通怎么用有什么用)
  • 《快手》设置添加桌面组件方法(快手界面在哪里设置)
  • 《支付宝》2023蚂蚁庄园8月21日答案最新(支付宝蚂蚁庄园2021年8月23日答案)
  • 喊着响亮的口号是什么歌(喊着响亮的口号什么歌好听)
  • office2010每次打开都要配置进度解决方法(win10 office2010每次打开都要配置进度)
  • 《番茄畅听》下载小说方法及位置介绍(番茄畅听怎么阅读小说)
  • 《imovie》快放视频方法(imovie怎么快放)
  • soul如何通过手机号找人(soul上面怎么用手机号找到对方)
  • 《手机微博》定时发送微博设置方法(手机微博怎么定时发送消息)
  • 小米手机价格大全2021价格表(小米手机价格一览表)