虚拟内存:从昂贵硬件到智能核心,计算革命的隐形引擎

mysmile 1个月前 (04-14) 行业资讯 70 0
虚拟内存:从昂贵硬件到智能核心,计算革命的隐形引擎

虚拟内存技术的前世今生

你是否想过,在20世纪60年代,计算机内存昂贵如金,而软件却日益庞大?怎么办?虚拟内存技术应运而生,它让内存耗量大的软件也能在内存小的计算机上运行,开启了计算新纪元。不仅如此,后续引入的安全及可靠性特性,更让它赢得市场青睐。

回到1940-50年代,大型程序必须自行管理主存和辅存,比如使用Overlaying技术。虚拟内存的诞生不止扩展了主存,更让编程变得简单。早期系统如PDP-10,常通过分配内存给多程序来实现多任务,而非虚拟内存。

1956年,虚拟内存概念首次由德国物理学家Fritz-Rudolf Güntsch在其博士论文中提出:他描述了一台机器,主存仅6100字,地址空间却达1000100字,硬件自动在内存和辅存间搬移数据块。

换页技术——虚拟内存的核心——首次在曼彻斯特大学实现,用于扩展Atlas计算机的内存,将16384字主存与98304字辅存结合。Atlas于1962年发布,但原型早在1959年完成。1961年,Burroughs Corporation独立推出首台商用虚拟内存计算机B5000,采用段式而非页式技术。

虚拟内存融入主流操作系统前,挑战重重:动态地址转换需要昂贵硬件,初期甚至拖慢内存速度。许多人担心系统层算法效率不如应用层。直到1969年,IBM研究团队由David Sayre带领,证明虚拟内存overlay系统优于手动控制,终结争议。1970年代,IBM 370基于虚拟内存的操作系统,让商业用户将老系统迁移到更强大大型机,性价比飙升。首台虚拟内存小型机是Norwegian NORD-1,随后其他机型纷纷跟进。

X86架构中,Intel 80286首次引入虚拟内存,但段交换技术效果有限;Intel 80386才真正支持换页技术。

虚拟内存:从昂贵硬件到智能核心,计算革命的隐形引擎

虚拟内存技术发展时间线

虚拟内存作为内存管理技术,通过软硬件将程序虚拟地址映射到物理地址,实现:

程序可独占全部虚拟地址空间:各程序地址不冲突,同样虚拟地址可映射不同物理地址;程序可拥有连续地址空间:将零碎物理地址整合为连续空间。

操作系统管理映射关系,依赖CPU的内存管理单元(MMU)自动转换地址。

虚拟内存的最大好处是让应用免于内存管理,提升安全性,并突破物理内存限制。

但注意,现代操作系统虽让进程独占地地空间,嵌入式系统却常弃用虚拟内存。原因:它可能引发不可预知延时(如从辅存读数据),且需要硬件支持,而嵌入式CPU未必具备。

虚拟地址空间大于物理内存,必然触发内存与外部存储的数据交换。1960年代早期,虚拟内存交换整个应用,而非按页替换,运行中程序先挂起。对大程序,可分割成多份在不同时间共享内存,但这并非换页。后续架构使用内存分段,整体交换代码或数据段,但需解决内存碎片问题。页表的发明让处理器工作在抽象连续空间,页成为交换基本单位。

当软件访问不在内存的页时,处理器触发Page fault,控制权转给操作系统,操作系统则:

1. 定位硬盘数据;

2. 获取RAM空页帧;

3. 加载数据;

4. 更新页表;

5. 返回控制权,重执行指令。

若无空页帧,操作系统选择一页驱逐。若页帧“脏”(数据被修改),需先回写硬盘。程序后续引用该页,会再次触发Page fault和切页。

1960年代大型机和1980年代中期个人电脑操作系统多无虚拟内存,但例外包括:

· Altas的Altas Supervisor

· Electrologica X8的THE multiprogramming system(纯软件虚拟内存)

· Burroughs B5000的MCP

· IBM System/360 Model 67的MTS,TSS/360,CP/CMS

· GE 645的Multics

· RCA Spectra 70/46的Time Sharing Operating System

以及个人电脑Apple Lisa的操作系统。

虚拟内存技术如何重塑你的计算体验?分享你的见解,探索更多科技奥秘!

相关问答

电脑的虚拟内存是什么?怎么电脑老是说我虚拟内存满?还说自动...

虚拟内存在计算机中作用关键:所有运行程序都需经内存执行,若程序过大或过多,内存会耗尽。虚拟内存解此困局...

提高虚拟存储空间有什么用?-ZOL问答

提高虚拟内存用途:1、内存少(1G-2G)时防系统出错;2、内存大(4G以上)则意义不大;3、合理设置提升性能...

设置虚拟内存有什么作用?-懂得

如何设置虚拟内存:虚拟内存补足物理内存,当程序需求过大时,系统调用硬盘空间暂代,确保流畅运行...

什么叫虚拟内存?怎么把它转移?

虚拟内存别称虚拟存储器:程序运行均需内存,若占用过大,内存会耗尽。Windows用虚拟内存解此难题...

虚拟内存真的有用吗?

有用。虚拟内存用于内存不足时,系统自动调用硬盘空间暂代工作。但硬盘速度慢于真实内存,需权衡使用...

虚拟内存有什么有用?

内存在计算机中作用重大,所有运行程序都需经内存执行。若程序过大或过多,内存会耗尽。虚拟内存为此而生...

什么是虚拟内存?如何设置?-懂得

虚拟内存:借助硬盘扩展内存空间,计算机将运行程序和数据分页或分段,暂不用的部分存于外存,需时调入...

虚拟内存的好处和坏处?

虚拟内存好处:扩展可用内存,坏处:硬盘读写慢可能拖慢系统。设置需根据硬件灵活调整...

虚拟内存是什么?虚拟内存是什么?

虚拟内存是计算机内存管理技术:借助硬盘等外存扩大内存空间,程序和数据被分页或分段,部分存于外存...

虚拟内存是什么?

虚拟内存是计算机内存管理技术:借助外存空间扩大内存,程序和数据被分页或分段,暂存外存,优化性能...

扫描二维码

手机扫一扫添加微信