虚拟存储技术:逻辑上扩充内存的解决方案
需积分: 33 136 浏览量
更新于2024-08-06
收藏 27.24MB PDF 举报
"虚拟存储器的基本概念-三菱plc fx通讯modbus用户手册"
虚拟存储器是一种操作系统中的内存管理技术,它的主要目标是在物理内存有限的情况下,通过逻辑上扩展内存容量来使得程序能够运行得如同拥有更大的内存一样。这种技术解决了由于内存容量不足导致的大程序无法运行或多个程序同时运行的问题。
在传统的内存管理方式中,一个程序必须完全装入内存才能运行。然而,当程序太大,超过了实际的内存容量,或者当有多作业需要同时运行而内存不足以容纳所有作业时,就会出现问题。为了解决这个问题,虚拟存储器的概念应运而生。它并不依赖于物理内存的大小,而是借助于硬盘等外部存储设备,创建了一个“虚拟”的内存空间。
虚拟存储器的工作原理通常包括以下几个关键组件:
1. 分页或分段机制:内存被划分为固定大小的块,称为页或段。程序的地址空间也是以同样的方式进行划分,这样就可以将程序的不同部分分散在物理内存和外存之间。
2. 地址转换:虚拟地址到物理地址的转换是通过页表或段表来实现的。操作系统维护这些表格,记录每个虚拟页或段对应的物理页或段。
3. 页面替换算法:当所有物理内存都被占用时,操作系统会选择一些不常使用的页面将其换出到外存,腾出空间给新的或更活跃的页面。
4. 缺页中断:当程序试图访问已被换出到外存的页面时,会产生缺页中断,操作系统会暂停程序执行,将所需页面重新载入内存,然后恢复程序执行。
虚拟存储器的引入带来了诸多好处:
- 内存保护:每个进程都有自己的独立虚拟地址空间,避免了不同进程间的地址冲突,提高了系统的安全性。
- 资源共享:通过共享内存段,多个进程可以访问同一份数据,如共享库。
- 程序动态加载和链接:程序的部分或全部可以在运行时才加载到内存,降低了对启动内存的需求。
- 提高系统吞吐量:即使内存不足,也能运行大型程序,因为不常用的页面可以暂时放回磁盘。
然而,虚拟存储器也存在一些挑战,比如内存访问延迟(由于需要通过磁盘进行交换),以及可能导致的抖动现象(频繁地在内存和外存之间移动页面)。因此,操作系统需要精心设计页面替换算法,以平衡效率和性能。
在《计算机操作系统》(汤小丹等编著,西安电子科技大学出版社,第三版)一书中,详细讲解了虚拟存储器以及操作系统其他核心概念,如进程管理、线程、存储器管理、设备管理、文件系统、用户接口、网络操作系统和安全技术。这本书是计算机科学与技术领域的重要教材,适合本科学生和相关专业技术人员学习参考。
2020-07-29 上传
点击了解资源详情
2014-08-21 上传
点击了解资源详情
106 浏览量
2019-10-30 上传
2014-03-05 上传
Big黄勇
- 粉丝: 64
- 资源: 3906
最新资源
- RealtekCardReader.kext
- GlobalTool_gpscjs_
- Python库 | oslo.messaging-5.30.5-py2.py3-none-any.whl
- vite-apple-list-fade-in:使用Vite开发Apple iPhone 12页面逐行滚动的滑动效果
- matlab1.rar_matlab例程_matlab_
- 采用DSM501A传感器的Arduino空气质量监测仪-电路方案
- vagrant_hyperv_python2:带有 Microsoft Hyper-V Server 2012 R2 和 Python 2.7.9 的轻量级 Vagrant VM
- 基于SpringBoot+Vue+Mysql的摄影网站(源码+论文)
- Screener:通过Siphon for OS X 10.8+发布的显示捕获
- network-based (NN) Model Predictive Control (MPC)
- Python库 | oslo.config-6.2.0-py2.py3-none-any.whl
- GameServer97d-Source_muonline_
- Skin.zip_matlab例程_Others_
- unite-emoji.vim:GitHub 表情符号的 unite.vim 源
- 江苏科技大学20级物联网嵌入式实验
- 手机电路图大全-电路方案