操作系统内存管理:虚拟页式存储与存储保护

需积分: 19 2 下载量 42 浏览量 更新于2024-08-25 收藏 484KB PPT 举报
"虚拟页式存储管理是操作系统中内存管理的一种策略,它的核心思想是按需加载页面。在进程启动时,并非一次性加载所有页面,而是仅加载必要的一部分或者不加载任何页面。随着进程的执行,操作系统根据需要动态地加载其他页面。如果内存空间不足,系统会采用某种页面替换算法,比如LRU(最近最少使用)、FIFO(先进先出)等,将某一页淘汰出内存,腾出空间给新的页面。 请求调页(Demand Paging)是虚拟页式存储管理的基础,即只有当进程试图访问一个不在内存中的页面时,才会触发页面调入。这种方式可以有效利用内存,避免将未使用的页面预先加载,从而减少内存浪费。 预先调页(Prefetching)则是一种优化策略,系统会预测未来可能需要的页面并提前加载到内存中,以减少因缺页中断导致的性能损失。这种方法通常用于减少I/O延迟,但需要谨慎使用,因为错误的预读可能会增加无效页面的缓存,反而降低系统效率。 内存管理在操作系统中扮演着至关重要的角色,它不仅要确保内存的有效利用,还要解决多道程序并发执行时的存储问题,如内存分配、回收、共享、保护等。内存空间通常分为系统区和用户区,前者存储操作系统,后者用于装载用户程序和数据。 为了管理内存,操作系统会建立各种数据结构,例如内存分配表、位示图、空闲块表、空闲块链表以及空闲页面表,这些都用于跟踪和控制内存的使用状态。位示图用单个比特表示一个页面的使用情况,空闲块表记录空闲内存块的位置和大小,空闲块链表将空闲块链接在一起,而空闲页面表则登记连续的可用页面。 内存分配算法的选择是内存管理的关键,这些算法要考虑连续性、离散性、驻留性和交换性等因素。例如,连续分配法将内存分配给进程,而离散分配法则允许不连续的内存块被分配。静态分配在程序加载时完成,而动态分配则在运行时进行。内存回收则是当进程结束或页面不再需要时,释放对应的内存空间。 存储共享是指允许多个进程共用同一内存区域,以节省内存资源和实现进程间的通信。共享内容可以是代码(纯代码,不允许修改)或数据。存储保护则通过设置权限和界限来防止进程间的数据破坏,确保每个进程只能访问其分配到的内存区域,维护系统的稳定性和安全性。 虚拟存储技术,尤其是虚拟页式存储管理,是现代操作系统中解决内存不足问题的有效手段,它通过结合主存和磁盘上的虚拟内存,使得进程可以运行远大于实际物理内存大小的程序。这种技术极大地扩展了可用的内存空间,使得大型应用程序可以在有限的物理内存资源上得以运行。"
2018-05-12 上传
【实验目的】 1. 通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解; 2. 熟悉虚存管理的各种页面淘汰算法; 3. 通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。 【实验准备】 1.虚拟存储器的管理方式  段式管理  页式管理  段页式管理 2.页面置换算法  先进先出置换算法  最近最久未使用置换算法  Clock置换算法  其他置换算法 【实验内容】 1. 实验题目 设计一个请求页式存储管理方案。并编写模拟程序实现之。产生一个需要访问的指令地址流。它是一系列需要访问的指令的地址。为不失一般性,你可以适当地(用人工指定地方法或用随机数产生器)生成这个序列,使得 50%的指令是顺序执行的。25%的指令均匀地散布在前地址部分,25%的地址是均匀地散布在后地址部分。为简单起见。页面淘汰算法采用 FIFO页面淘汰算法,并且在淘汰一页时,只将该页在页表中抹去。而不再判断它是否被改写过,也不将它写回到辅存。 2. 具体做法 产生一个需要访问的指令地址流;指令合适的页面尺寸(例如以 1K或2K为1页);指定内存页表的最大长度,并对页表进行初始化;每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页是否在主存——如果该页已在主存,则打印页表情况;如果该页不在主存且页表未满,则调入一页并打印页表情况;如果该页不足主存且页表已满,则按 FIFO页面淘汰算法淘汰一页后调入所需的页,打印页表情况;逐个地址访问,直到所有地址访问完毕。