问题

有没有一种可能,做出来512g内存的计算机,这样就不需要外存了,那os这门课是不是内容可以少点?

回答
你想着要是内存大得离谱,比如512GB,那电脑是不是就不用硬盘这种东西了?理论上,这确实会改变我们对计算机工作方式的认知,甚至可能让像“操作系统”这样课程中的一些内容变得不那么核心。

想象一下,一台电脑拥有512GB的内存。这意味着什么?现在我们日常使用的电脑,即便是高端型号,内存通常也就是8GB、16GB,最多32GB。硬盘容量呢,从256GB到1TB,甚至2TB都是很常见的。而你提出的512GB内存,这个数字已经远远超过了绝大多数人的总存储需求,包括操作系统、运行中的应用程序、以及用户的数据文件。

如果真的有这么大的内存,那么理论上,你完全可以将操作系统、所有你想要使用的软件,以及你当前正在处理的所有数据都直接加载到内存中。计算机的中央处理器(CPU)可以直接、飞速地访问这些信息,不再需要像现在这样,频繁地从速度相对慢很多的硬盘或者固态硬盘(SSD)中读取数据。这种“永远在线”的内存状态,意味着启动速度会是瞬时的,切换程序也会是无缝的,几乎感觉不到任何延迟。

那么,对于“操作系统”这门课来说,哪些内容可能会变得不那么重要呢?

首先,文件系统的管理。目前操作系统课程中,关于文件系统的部分会详细讲解磁盘的结构、文件如何存储、如何查找、目录的管理、磁盘的空间分配和回收等等。这些内容都是为了解决存储空间有限、数据需要持久化存储而产生的。如果一切都在内存中,那么“文件”的概念可能会发生根本性的改变,也许不再是存储在某个物理介质上的固定集合,而更像是内存中的一个动态区域。磁盘的碎片整理、文件系统的完整性校验这些操作,因为没有了物理磁盘,也就失去了存在的意义。

其次,虚拟内存和页面置换算法。这是操作系统课程中非常重要也是非常复杂的一部分。它解决了物理内存不足以容纳所有运行进程的问题,通过将部分数据暂时移到硬盘(交换空间)来实现。如果512GB内存足以应对所有可能的场景,那么虚拟内存的存在就没有必要了,也就无需学习LRU、FIFO这些算法了。这部分内容占了操作系统课程相当大的比重,学习者可以省去很多精力。

再者,I/O(输入/输出)管理,尤其是与存储设备的交互部分。现在操作系统需要管理硬盘的读写请求、缓存策略、DMA(直接内存访问)等等,以优化数据传输效率。如果所有数据都在内存中,那么CPU可以直接访问内存,I/O管理将主要集中在用户输入设备(键盘、鼠标)、输出设备(显示器、打印机)以及网络接口上,对存储设备的I/O管理会大大简化。

还有,进程和线程的管理,虽然CPU调度、进程通信这些核心概念依然重要,但与内存分配和保护相关的部分可能会有所调整。因为所有东西都在一个巨大的内存池里,进程之间的内存隔离和保护的机制可能会有不同的实现方式,不再是“划分磁盘空间”的概念,而是更纯粹的内存地址空间管理。

然而,这并不意味着操作系统课程的内容会“少很多”,而是核心内容会发生转移。

即使有了512GB的内存,操作系统依然需要负责:

CPU调度:确保多个任务(进程和线程)能够合理地使用CPU资源,保证公平性和效率。
进程管理:创建、终止进程,进程间通信(IPC)依然是基础。
内存管理:虽然没有了虚拟内存,但操作系统仍然需要为每个进程分配和管理内存区域,防止它们相互干扰,并确保内存的有效利用。即便是如此巨大的内存,也需要一种结构化的方式来管理,避免混乱。
设备管理:用户与计算机交互的设备(键盘、鼠标、显示器)以及网络通信,这些I/O的管理依然是必不可少的。
安全性和权限管理:即使所有东西都在内存里,也需要防止恶意软件或者一个进程访问不属于它的数据。
用户界面和应用程序接口(API):操作系统为应用程序提供服务,这是其本质功能。

所以,与其说内容会“少点”,不如说是侧重点会发生变化。操作系统课程会更加聚焦于如何高效地利用这巨大的内存空间,如何实现更复杂的并发和并行计算,如何保障系统的稳定性和安全性,以及如何为用户提供更友好的交互体验。一些与“慢速存储”相关的技术细节会被更高级的、更抽象的内存管理和并发控制机制所取代。

总而言之,512GB内存确实能极大地改变计算机的运作模式,让许多与硬盘打交道的操作系统设计原则变得不再必要,从而让一部分课程内容变得“陈旧”或“不那么核心”。但这并不意味着操作系统本身变得简单了,而是其复杂性体现在了对更高效、更智能的内存利用和更高级的并发处理上。

网友意见

user avatar

题主的设想还可以更大胆点,512GB内存?瞧谁不起呢,现在的平台能支持的内存已经来到PB级了哦~[1]

(tips:1PB = 1024TB)


看了下这个问题比较新都没啥人答,大晚上的睡不着就抛砖引个玉。

@Naoki 所言,内存和磁盘的区别是什么?速度是一方面,还一方面是volatility,易失性。

简单来说,就是你拔了电内存里的东西就没了,但磁盘里的东西还有的。所以任你内存再大,没有non-volatile的介质也是白搭的(总不能一拔电你的系统、数据文件都全删了吧)。

那么我来预判下题主的下一个问题(假如还在知乎上问的话):

有没有一种可能,我们造出来一种介质,具有内存的访问特性和速度,但又是non-volatile的,做出来512g这种介质的计算机 这样就不需要外存了,那os这门课是不是内容可以少点?

好吧,这其实是三个问题,简短地回答就是:

(1)有没有这种介质:有,被称为Persistent Memory或者Non-volatile Memory(不是什么名不见经传的小作坊哦,是intel生产的),而且已经commercial avaliable了,这一点 @Naoki 也提到了。

(2)是不是就不需要外存(磁盘)了:可以,这也是现在的研究热点

(3)os课的内容是不是可以少点:很可惜,会更多。

知乎上关于PM(NVM、非易失存储)的讨论现在还比较少,而我现在的研究方向跟这个有关,下面就想到哪说到哪了,看见的权当图个乐,有错误也请指正~


先大体描述下PM的特点,即 “What is PM?”

如上所述,Persistent Memory既non-volatile,又“具有内存的访问特性和速度”。non-volatile很好理解,就掉电不丢呗,“具有内存的速度”也好理解,反正就贼拉的快就完了,什么ssd都靠边站,可什么叫“具有内存的访问特性”呢?

这就可以引申出一个问题,如果一种ssd特别特别快,那它是不是也可以称之为PM设备呢,毕竟ssd也是non-volatile的。

不行,因为ssd是非byte-addressable的。

翻译成人话就是,ssd只能以block为单位访问,不能“我只要访问某几个字节”。

而上面提到的真正的PM,是字节可寻址,也即byte-addressable的。

不像其他高速设备那样走PCIE总线,这种byte-addressability使得它也被插在内存总线上,像内存一样可以直接通过CPU的load/store指令访问。

这样一来,你就可以扔掉那块怎么看怎么不顺眼的SSD/HDD,在你心爱的主板上插上那么1TB的PM,开机运行了~(开个玩笑

其实现在PM还是比较贵的,而且只能在特定的平台上跑(因为内存控制器、外围io等等也要相应地支持)。我们实验室前段时间购入了一套intel的PM主板+1TB的PM,就是intel在售的intel Optane DC PM,十几万就进去了,所以一般人(家境贫寒)还是不太能接触不到这类产品的。

好,既然只用PM扔掉磁盘是可行的,那这个PM到底性能怎么样呢?

我这里引一下HeMem[2]SOSP' 21和Spitfire[3]SIGMOD'21里的数据

读写latency/bandwidth与存储密度对比
多线程下顺序/随机访问的读写带宽
DRAM/NVM(也就是PM)/SSD对比

可以从latency、bandwith、price三个角度来看

从latency的角度,NVM和DRAM其实已经很相近了,起码已经控制在大一个数量级以内了,而SSD虽然不像HDD那样毫秒级那么夸张,但仍然也要μs级,这就奔着两三个数量级去了。

这是个什么概念呢?假如LLC发生miss,访问一次DRAM的latency约70-80ns,对3Ghz左右主频的CPU,这就意味着200-300个CPU cycle,对NVM就是400-1200个CPU cycle,而SSD的page fault(注意这只是传输第一个字节的latency)就是30000+个CPU cycle。

latency对随机访存的性能至关重要,从这一点上NVM已经算是合格了。

大容量访问的带宽,虽然在随机写的bandwidth上NVM比较拉跨,但在顺序读、顺序写、随机读方面,SSD相比NVM还是不够看的。

当然,越快的设备单位GB就越贵,从这一点上大容量存储SSD还是占优势的。

这就引出来了NVM的一个potential:更高的集成密度。

DRAM集成密度上不去的一个原因是高密度复刷带来的散热压力,印象中最近DDR5内存才有单条128G的新闻出来,但可能还要专门给内存上弄个风扇散热(笑)。而NVM是non-volatile、不需要复刷的,所以没有散热压力,单条128GB起步跟玩儿一样。对于memory footprint比较大(数百GB)的application,很明显NVM是具有极大潜力的。

从研究的角度,NVM也给操作系统、文件存储栈带来很大的可能,这两年系统、存储领域NVM真的非常热,比如纯基于NVM的文件系统(NOVA[4]FAST'16)、NVM与磁盘组成的存储系统(Ziggurat[5]FAST'19)、用NVM加速kernel的anonymous page cache(HeMem[2]SOSP'21)、也有用NVM来做kernel的file-backed page cache的(FR[6]USENIX ATC'21),甚至18年的Linux kernel 4.18就已经支持用NVM给文件系统作writeback cache了(19年intel才真的推出第一款commercial的NVM产品)

所以os课的内容不会变少,反而也要开始拥抱新的一级存储层次了~

参考

  1. ^ Frank T. Hady, Annie P. Foong, Bryan Veal, and Dan Williams. 2017. Platform Storage Performance With 3D XPoint Technology. Proc. IEEE 105, 9 (2017).
  2. ^ a b Amanda Raybuck, Tim Stamler, Wei Zhang, Mattan Erez, and Simon Peter. 2021. HeMem: Scalable Tiered Memory Management for Big Data Applications and Real NVM. In Proceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles (SOSP '21). Association for Computing Machinery, New York, NY, USA, 392–407. DOI:https://doi.org/10.1145/3477132.3483550
  3. ^ Xinjing Zhou, Joy Arulraj, Andrew Pavlo, and David Cohen. 2021. Spitfire: A Three-Tier Buffer Manager for Volatile and Non-Volatile Memory. Proceedings of the 2021 International Conference on Management of Data. Association for Computing Machinery, New York, NY, USA, 2195–2207. DOI:https://doi.org/10.1145/3448016.3452819
  4. ^ Jian Xu and Steven Swanson. 2016. NOVA: a log-structured file system for hybrid volatile/non-volatile main memories. In Proceedings of the 14th Usenix Conference on File and Storage Technologies (FAST'16). USENIX Association, USA, 323–338.
  5. ^ Shengan Zheng, Morteza Hoseinzadeh, and Steven Swanson. Ziggurat: A Tiered File System for NonVolatile Main Memories and Disks. In Proceedings of the USENIX Conference on File and Storage Technologies (FAST), 2019.
  6. ^ Hyunsub Song, et al. "First Responder: Persistent Memory Simultaneously as High Performance Buffer Cache and Storage." 2021 USENIX Annual Technical Conference (USENIX ATC 21). USENIX Association, 2021.
user avatar

有没有一种可能,现在已经有了512g内存的计算机


4月9日更新

给刚来的同学指南一下,回答本身不是重点,重点是评论区这个979楼的评论

大致内容是一位正在码操作系统的大佬对我等民科的谆谆教育。

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有