首页 > 系统相关 >为什么Linux需要虚拟内存 [转载好文]

为什么Linux需要虚拟内存 [转载好文]

时间:2022-10-17 11:01:31浏览次数:86  
标签:操作系统 访问 好文 内存 Linux 进程 CPU 虚拟内存

操作系统中的 CPU 和主内存(Main memory)都是稀缺资源,所有运行在当前操作系统的进程会共享系统中的 CPU 和内存资源,操作系统会使用 CPU 调度器分配 CPU 时间1并引入虚拟内存系统以管理物理内存,本文会分析操作系统为什么需要虚拟内存。

在回答虚拟内存存在的必要性之前,我们需要理解操作系统中的虚拟内存是什么,它在操作系统中起到什么样的作用。正如软件工程中的其他抽象,虚拟内存是操作系统物理内存和进程之间的中间层,它为进程隐藏了物理内存这一概念,为进程提供了更加简洁和易用的接口以及更加复杂的功能。

虚拟内存作为系统与应用程序的中间层

现代的操作系统都引入了虚拟内存,进程持有的虚拟地址(Virtual Address)会经过内存管理单元(Memory Mangament Unit)的转换变成物理地址2,然后再通过物理地址访问内存:

CPU使用虚拟地址通过MMU访问物理内存

操作系统以页为单位管理内存,当进程发现需要访问的数据不在内存时,操作系统可能会将数据以页的方式加载到内存中,这个过程是由上图中的内存管理单元(MMU)完成的。操作系统的虚拟内存作为一个抽象层,起到了以下三个非常关键的作用:

  • 虚拟内存可以利用内存起到缓存的作用,提高进程访问磁盘的速度;
  • 虚拟内存可以为进程提供独立的内存空间,简化程序的链接、加载过程并通过动态库共享内存;
  • 虚拟内存可以控制进程对物理内存的访问,隔离不同进程的访问权限,提高系统的安全性;

 

标签:操作系统,访问,好文,内存,Linux,进程,CPU,虚拟内存
From: https://www.cnblogs.com/vaughnhuang/p/16798440.html

相关文章

  • linux日志:zlog
    一、简述zlog是一个C语言的日志函数库,具有高可靠性、高性能、线程安全、灵活、概念清晰等优势。另外,开发者可以通过灵活的配置,实现日志记录同时向控制台输出、控制单个日......
  • 在应用程序中替换Linux中Glibc的malloc的四种方法_转
    转自:在应用程序中替换Linux中Glibc的malloc的四种方法--csdn打算优化系统的内存分配,接管glibc提供的内存管理,但是整个工程的代码量很大,使用malloc、realloc、calloc和free......
  • Linux 常用命令学习
    1、ls命令就是list的缩写,通过ls命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。常用参数搭配:ls-a......
  • 20201302姬正坤Linux第四章学习笔记
    第四章并发编程一、并行计算导论1、顺序算法与并行算法在描述顺序算法中,常用一个begin-end代码块列出算法。该代码块中的所有步骤都是通过某个任务依次执行的。而并行......
  • Linux结构化命令
    结构化命令定义可用于执行流程控制和改变执行顺序与语句ifcommand语句(命令退出状态码)if...thenif根据command命令返回码来判断是否执行,如果返回码的值为0,就执......
  • linux命令随笔
    用于记录平时遇到的比较有用的命令。Vim命令查找​ vim进入编辑模式之后,如果想在文件中查找某个关键字的话可以用/关键字,随后回车,文件中的关键字会高亮显示,摁n可以调......
  • LiveGBS流媒体服务平台国标GB28181级联上级如何抓包分析windows抓包和Linux抓包
    LiveGBS流媒体服务平台国标GB28181级联上级如何抓包分析windows抓包和Linux抓包​​1、第一步:抓包工具准备​​​​1.1、Linux​​​​1.2、windows​​​​2、第二步:找到级......
  • Linux学习笔记 | Bash基本命令
    (一)历史命令<history>格式:history[选项][历史命令保存文件]选项: -c:   清空历史命令 -w:  把缓存中的历史命令写入历史命令保存文件(~/.bash_history) 历史命令......
  • archlinux + i3wm 使用 tauri 开发者模式 (react + ts) 预览白屏 解决方法
    在我这台机器只需将tauri.conf.json的devPath的localhost改成127.0.0.1即可参考来源https://github.com/tauri-apps/tauri/issues/1140......
  • Linux专项练习
    grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是GlobalRegularExpressionPrint,表示全局正则表达式版本,它的使用权限是......