美文网首页hadoop 大数据底层理解
linux 虚拟内存的作用?

linux 虚拟内存的作用?

作者: Tim在路上 | 来源:发表于2020-08-29 11:48 被阅读0次

虚拟内存可以用来管理物理内存,进程直接和虚拟内存进行打交道而不是物理内存,为什么这样设计?

什么是虚拟内存?

虚拟内存 = 物理内存 + 磁盘

使用页置换技术,地址转换技术,使得进程认为它拥有连续的可用内存,而实际上,它会被分割为多个物理内存碎片。

1. 虚拟内存的作用

  1. 利用磁盘起到的缓存的作用,提高进程访问磁盘的速度。
  2. 虚拟内存可以为进程提供独立的内存空间,并通过动态链接库共享内存。
  3. 虚拟内存可以控制进程对物理内存的访问,隔离权限,提高系统安全性,

缓存

虚拟内存是使用内存空间,同时将磁盘上访问频发的加载到内存,来增快访问速度,使得占用很小内存空间,看起来很大。

在其中使用的就是局部性原理,当操作系统访问未被缓存的页,就会发生缺页中断,操作系统需要将磁盘上未被缓存的虚拟页加载到物理内存中。

而另一个概念虚拟存储器,也是使用局部性原理,将程序部分载入内存,这样的情况下4G内存,可以运行比4G大的程序,看起来内存大了,实际是部分程序还在磁盘中。

内存管理

进程最终都需要访问到具体的物理地址,而不是虚拟内存提供的逻辑地址,其中会经过一层层转换,主要是通过MMU和TLB实现。

通过增加虚拟内存,避免了程序直接访问任意内存,修改了其他程序使用的数据导致程序崩溃,虚拟内存可以将不同进程使用的虚拟地址彼此隔离。

目前linux系统,采用四层页表结构页表结构,每个9位,最低12位作为偏移量。

虚拟内存可以结合磁盘和物理内存的优势为进程提供看起来速度足够快并且容量足够大的存储;
虚拟内存可以为进程提供独立的内存空间并引入多层的页表结构将虚拟内存翻译成物理内存,进程之间可以共享物理内存减少开销,也能简化程序的链接、装载以及内存分配过程;
虚拟内存可以控制进程对物理内存的访问,隔离不同进程的访问权限,提高系统的安全性;

相关文章

  • linux 虚拟内存的作用?

    虚拟内存可以用来管理物理内存,进程直接和虚拟内存进行打交道而不是物理内存,为什么这样设计? 什么是虚拟内存? 虚拟...

  • 进程虚拟内存

    Linux虚拟内存空间分布Linux虚拟内存空间描述linux进程虚拟内存 .text(代码段)可执行文件加载到内...

  • 操作系统内存

    Linux 内存 一、虚拟内存 这个虚拟内存指的是“进程的虚拟内存”,或者说是虚拟地址空间,注意与” Linux ...

  • JVM系列(2) JVM监控工具

    1.JVM调优工具 1.1 常用linux分析命令 命令作用与特点vmstat进程,虚拟内存,页面交换,IO读写,...

  • Binder IPC - 基础知识

    基础知识 Linux 内存模型 MMU MMU即内存管理单元,其主要作用是实现虚拟内存到物理内存的映射,其工作原理...

  • linux交换分区调整

      SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成...

  • Linux内存知识点简单总结

    写在开头:本文为Linux内存相关知识点简单总结。 1. 虚拟地址 Linux采用虚拟内存管理技术,利用虚拟内存技...

  • Linux下的swap分区

    在Linux有一个交换空间,也就是Windows常说的虚拟内存,就是swap分区,这个分区有什么作用呢。1.存放内...

  • shell -- 基础

    Linux 内核的作用: 系统内存管理、软件程序管理、硬件管理、文件系统管理 系统内存管理: 最主要的是对虚拟内存...

  • 修改树莓派交换分区 SWAP 的大小

    SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存...

网友评论

    本文标题:linux 虚拟内存的作用?

    本文链接:https://www.haomeiwen.com/subject/obydsktx.html