Day12 虚拟记忆体的介绍

前言

前几天都在讲实体记忆体(physical memory)该如何分配,但是在有越来越多行程同时运行的状况下,记忆体再多都没办法好好地放下所有程序的资料,因此因应这些问题产生的机制就是虚拟记忆体,虚拟记忆体的产生,让工程师再也不用担心程序过大会造成记忆体不足没办法运转,也让同时可以进行的程序变得更多了。

虚拟记忆体(virtual memory )

虚拟记忆体到底是什麽? 来自wiki 的这段话最能够好好解释虚拟记忆体

In computing, virtual memory, or virtual storage is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a very large (main) memory".

简单来说就是将计算机可用的储存空间包含记忆体、硬碟虚拟化,让使用者觉得记忆体的空间是无限的。
下方这张图来自恐龙书,图解了虚拟记忆体与实体记忆体或硬碟的关系

可以看到想要取得一个虚拟记忆体的资料,就需要先经过memory map将虚拟位址转换成实体位址,再藉由实体位址判断究竟这个位址的资料在不在实体记忆体中,如果不存在实体记忆体,就会到硬碟将实际的资料搬出。

待解决的问题

  1. 在哪里判断资料是否已经在记忆体中了
  2. 如何知道memory map 的Table是对的

<<:  D27 - 如何用 Apps Script 自动化地创造与客制 Google Sheet?(四)蒐集大量试算表中的回应

>>:  Day12. UX/UI 设计流程之二: Flow Chart (以 Axure RP 实作)

【Day 22】Class 类别

前言 在学习程序语言的过程中,应该都有听过物件导向程序设计(Object-oriented prog...

[Day01] Python 入门,总是可以多学到一点

写在前面 基本上分享会很随意, 主要就是纪录一些我觉得有趣或是 Kaggle 这系列想传达一些 py...

[Day 22] Python 视觉化解释数据 - Plotly Express

Plotly Express 今日学习目标 安装 plotly 手把手实作视觉化鸢尾花朵资料集 直方...

关於计算机,你必须知道的事: CPU 快取

本文目标 记忆体层接 介绍快取的组成 常见的快取机制 使用快取需要面对的同步问题 进入正题 CPU ...

[Day03] Vue i18n - Message Format Syntax

红框中的句子 Welcome to Your Vue.js App 如果我们想要将其中的 Vue....