磁盘概述、磁盘缓存、虚拟内存及虚拟内存与内存的交换方式

news/2024/11/29 20:44:50/

目录

一、认识磁盘

程序不读入内存就无法运行

二、磁盘缓存

三、虚拟内存

四、虚拟内存与内存的交换方式


一、认识磁盘

        磁盘和内存都具有存储功能,它们都是存储设备。区别在于,内存是通过 电流 来实现存储;磁盘则是通过 磁记录技术 来实现存储。内存是一种高速,造价昂贵的存储设备;而磁盘则是速度较慢、造价低廉的存储设备;电脑断电后,内存中的数据会丢失,而磁盘中的数据可以长久保留。内存是属于 内部存储设备 ,硬盘是属于 外部存储设备 。一般在计算机中,磁盘和内存是相互配合共同作业的

        一般内存指的是主存(负责存储CPU中运行的程序和数据);早起的磁盘指的是软磁盘(soft disk,简称软盘),如下图:

6b4c89515c384fa5bf5e3e1d45ec9f36.png

 如今常用的磁盘是硬磁盘(hard disk,简称硬盘),如下图:

ab51363eba0045c0bcc0d9f00a01e07c.png

程序不读入内存就无法运行

        内存的运行机制就是把程序保存在存储设备中,通过使用CPU读入来实现程序指令的执行。这种机制称为 存储程序方式,现在看来这种方式是理所当然,但在以前程序的运行都是通过改变计算机的布线来读写指令的

        计算机注意的存储部件是内存和磁盘。磁盘中存储的程序必须加载到内存中才能运行,在磁盘中保存的程序是无法直接运行的,这是因为负责解析和运行程序内容的CPU是需要通过程序计数器来指定内存地址从而读出程序指令的

程序运行示意图:

3fedd1c7ace84ea5bfd2f19a80ca5ba9.png

二、磁盘缓存

        磁盘往往和内存是互利共生的关系,相互协作,彼此有良好的合作关系。每次内存都需要从磁盘中读取数据,比如会读到相同的内存,所以一定会有一个角色负责存储我们经常需要读到的内容。我们在做软件的时候经常会用到 缓存技术,那么硬件层面也不例外,磁盘也有缓存,磁盘的缓冲叫做 磁盘缓存

        磁盘缓存指的是把从磁盘中读出的数据存储到内存的方式,这样一来,当接下来需要读取相同内容时,就不会再通过实际的磁盘,而是通过磁盘缓存来读取。某一技术或者框架的出现势必要解决某种问题,那么磁盘缓存就大大改善了磁盘访问的速度

使用磁盘存储读取数据:

162925dfbdf9467d92d585ebbbc0bf30.png

        Windows操作系统提供了磁盘缓存技术,不过,对于大部分用户来说是感受不到磁盘缓存的,并且随着计算机的演进,对硬盘的访问速度也在不断演进,实际上磁盘缓存到Windows 95/98 就已经不怎么使用了

        把低速设备的数据保存在高速设备中,需要时可以直接将其从高速设备中读出,这种缓存方式在web中应用比较广泛,web浏览器是通过网络来获取远程web服务器的数据并将其显示出来。因此在读取较大图片的时候,会耗费不少时间,这时web浏览器可以把获取的数据保存在磁盘中,然后根据需要显示数据,再次读取的时候就不同重新加载了

三、虚拟内存

        虚拟内存 是内存和磁盘交互的第二个媒介。虚拟内存是指把磁盘的一部分作为 假想内存 来使用。这与磁盘缓存是假想的磁盘(实际上是内存)相对,虚拟内存是假想的内存(实际上是磁盘)

        虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有 连续可用 的内存(一个完整的地址空间),但是实际上,它通常被分割成多个物理碎片,还有部分存储在外部磁盘管理器上,必要时进行数据交换。

        计算机中的程序都要通过内存来运行,如果程序占用内存很大,就会将内存空间消耗殆尽。为了解决这个问题,WINDOWS操作系统运用了虚拟内存技术,通过拿出一部分硬盘来当作内存使用,来保证程序耗尽内存仍然有可以存储的空间。虚拟内存在硬盘上的存在形式就是 PAGEFILE. SYS 这个页面文件。

        通过借助虚拟内存,在内存不足时仍然可以运行程序。例如,在只剩5MB 内存空间的情况下仍然可以运行10MB的程序。由于CPU只能执行加载到内存中的程序,因此,虚拟内存的空间就需要和内存中的空间进行 置换(swap),然后运行程序。

四、虚拟内存与内存的交换方式

        刚才我们提到虚拟内存需要和内存中的部分内容做置换才可让CPU继续执行程序,那么做置换的方式是怎样的呢?又分为哪几种方式呢?

        虚拟内存的方法有 分页式分段式 两种。Windows采用的是分页式。该方式是指在不考虑程序构造的情况下,把运行的程序按照一定大小的页进行分割,并以为单位进行置换。在分页式中,我们把磁盘的内容读到内存中称为 Page In,把内存的内容写入磁盘称为 Page Out 。Windows 计算机的页大小为4KB,也就是说,需要把应用程序按照 4KB 的页来进行切分,以页(page)为单位放到磁盘中,然后进行置换。

程序中Page In 和 Page Out:

990fd412317b44e893cec72c2b63f350.png

        为了实现内存功能,Windows在磁盘上提供了虚拟内存使用的文件(Page file ,页文件)。该文件由Windows 生成和管理,文件的大小和虚拟内存大小相同,通常大小是内存的1 - 2 倍

 


http://www.ppmy.cn/news/541674.html

相关文章

虚拟化之——内存虚拟化

转载自: 内存虚拟化(内存地址转换) (qq.com)https://mp.weixin.qq.com/s/A9FtVxzmf2LEPhvR1xm4VQ 前言 操作系统中的内存管理很复杂,涉及到了很多知识,最重要的就是虚拟内存。虚拟内存一方面是用来扩充空间&#xf…

如何扩展虚拟内存

虚拟内存,顾名思义就是虚拟的而不是实际的硬件,是为满足程序的运行要求,扩大可用“内存”空间而设置的。 在系统区根目录下有一个pagefile.sys文件,这就是windows使用的虚拟内存的文件。 通常情况下,使用时都是按照系…

在github上创建个人主页的方法【2023更新版】

01-进入github的网站,链接 https://github.com/ ,然后注册,登陆,注意登陆时设置的用户名(username)就是将来你个人主页的三级域名,所以这里一定要慎重填写username。如下图所示: 02-注册完成后进入个人主…

nmap常用扫描命令

1. nmap扫描一台机器 nmap 192.168.133.672. nmap扫描一台机器,查看打开端口及详细信息 nmap -v 192.168.133.673. nmap 指定端口/端口范围扫描 nmap -p 1-65535 192.168.133.67nmap -p 1-100,135,8080,443 192.168.133.67 <

【算法证明 五】深入理解广度优先搜索

看了算法导论&#xff0c;才知道自己理解的深搜、广搜有多肤浅。 接下来两篇文章将深入探索图搜索算法的方方面面&#xff0c;不再局限于做出简单的图搜索算法&#xff0c;而是站在图搜索算法上深入思考。本问将证明广度优先搜索求最短路的正确性。而下一篇文章将使用深度优先搜…

【Leetcode60天带刷】day30回溯算法——332.重新安排行程 , 51. N皇后 ,37. 解数独

​ 题目&#xff1a; 332. 重新安排行程 给你一份航线列表 tickets &#xff0c;其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK&#xff08;肯尼迪国际机场&#xff09;出发的先生&#xff0c;…

基于模拟退火算法的旅行商问题优化(matlab程序)

0.代码链接 基于模拟退火算法的旅行商问题优化&#xff08;matlab程序&#xff09;资源-CSDN文库 1.简述 金属退火是将金属加热到一定温度&#xff0c;保持足够时间&#xff0c;然后以适宜速度冷却(通常是缓慢冷却&#xff0c;有时是控制冷却)的一种金属热处理工艺。模拟退…

全媒体营销:多渠道推广、全方位沟通的未来之道

随着移动互联网的发展和智能手机的普及&#xff0c;网络营销的主战场从PC端向移动端转移&#xff0c;伴随着双微一抖小红书的蓬勃发展&#xff0c;网络营销的方法和渠道也随之发生变化&#xff0c;新型的全媒体营销就是在如此的背景下兴起且被广泛应用。 什么是全媒体营销&…