

























存储隔离,又称为存储保护。确保不同进程、用户空间与内核空间之间的内存互不干扰,防止非法访问或数据破坏。
在操作性系统早期发展的阶段。经常使用两种寄存器来实现隔离。
这些寄存器用于非分页 / 非分段的连续内存分配(如固定分区、动态分区),通过基址 + 限长的方式隔离进程地址空间
它们存在很大的局限性,保护粒度较粗(基于整个程序地址空间,无法细粒度到页或段)。
因此,随着页/段的,线程等现代操作系统概念的普及。基本上已经被淘汰,取而代之的是更加复杂的现代内存管理,也就是上一篇文中讲到的,页/段/段页机制。
x86架构的段描述符仍包含 段基址 和 段界限,可用于实现类似上下限寄存器的功能(如隔离用户空间和内核空间),但分段在现代系统中更多是兼容性设计,核心保护依赖分页。

在文件读写中,文件的数据是离散存储在硬盘中的。读写文件需要如下几步:
这里的操作就很繁琐,程序员需要自己移动指针,然后读写数据。
按照现在的说法来说,什么都要自己亲历亲为(面向过程),一点都不OOP(面向对象)。
因此,内存映射文件(Memory-Mapped Files)就应运而生。
通过将磁盘文件的内容直接映射到进程的虚拟地址空间,使进程可以像访问内存一样读写文件数据,无需显式执行传统的输入输出(I/O)操作(如read/write)。

利用内存映射文件,操作步骤就简化为:

这样,多个进程可以映射同一个文件,实现共享。
优点如下:
在此基础上,还演化出不关联任何磁盘文件,直接分配一段可共享的内存区域,实现进程间的内存共享。
常作为临时数据缓冲区
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。