操作系统之虚拟存储器

1.常规存储器管理方式的特征
(1)一次性,是指作业得全部装入内存才能运行。
(2)驻留性,指作业一旦被装入内存后,整个作业将会一直驻留在内存中,其中的任何部分都不会被换出,直到作业结束。

2.局部性原理
程序在执行时将呈现出局部性规律,即在一较短时间内,程序的执行仅局限于某个部分,相应的,它所访问的存储空间也局限在某个区域。
(1)程序在执行时,除了少部分的转移和过程调用指令外,在大多数情况下都是顺序执行的。
(2)过程调用会使程序的执行轨迹由一部分区域转移到另一部分区域。
(3)程序中存在循环结构。
(4)程序中很多对数据结构的处理。
局部性原理又表现在时间局限性和空间局限性。

3.虚拟存储器的定义和特征
(1)定义:是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近内存速度,而每位的成本又接近外存。
(2)特征
a.多次性:指一次作业中的程序和数据无需在作业运行时一次性地全部装入内存,而是允许被分成多次装入内存运行,即只需将当前运行的那部分程序和数据装入内存即可开始运行。
b.对换性:指一个作业中的程序和数据,无需在作业运行时一直驻留在内存,而是允许在作业的运行过程中进行换进、换出。
c.虚拟性:指能够从逻辑上拓充内存容量,使用户所看到的容量远大于实际内存容量。不仅能有效改善内存的利用率,还可提高程序执行的并发程度,从而可以增加系统的吞吐量。

4.虚拟存储器的实现方法
(1)分页请求系统:在分页系统的基础上增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统
(2)请求分段系统:在分段系统的基础上,增加了请求调段及分页置换功能后所形成的段式虚拟存储系统,它允许用户程序只要装入少数段(而非所有的段)的程序和数据即可启动。

5.请求分页中的硬件支持
(1)请求页表机制:请求页表的基本作用是将用户地址空间中的逻辑地址映射为内存空间中的物理地址。
(2)缺页中断机构:在指令执行期间若发现所要访问的指令或数据不在内存时,便立即产生和处理缺页中断信号,以便能及时将所缺之页面调入内存。系统中的硬件机构应能保存多次中断时的状态,并保证最后能返回到中断前产生缺页中断的指令处继续运行。
(3)地址变换机构:在进行地址变换时,首先检索快表,试图从中找到所要访问的页,若找到,便修改页表项中的访问位,供置换算法选换出页面时参考。如果在快表中未找到该页的页表项,则在内存中去查找页表,再从找到的页表项中的状态位P来了解该页是否已调入内存。

6.请求分页中的内存分配
(1)最小物理块数的确定:指能保证进程正常运行所需的最小物理块数,当系统为进程分配的物理块数少于此值时,进程将无法运行。至于进程应获得的最少物理块数,与计算机的硬件结构有关,取决于指令的格式、功能和寻址方式。
(2)内存分配策略
在请求分页系统中,可采取两种内存分配策略,即固定和可变分配策略。在进行置换时,也可以采取两种策略,即全局置换和局部置换。
a.固定分配局部置换:固定分配指的是为每个进程分配一组固定数目的物理块,在进程运行期间不再改变。局部置换指如果进程在运行中发现缺页,则只能从分配给该进程的n个页面中选出一页换出,然后再调入一页,以保证分配给该进程的内存空间不变。
b.可变分配全局置换:可变分配指的是为每个进程分配一定数目的物理块,在进程运行期间,可根据情况做适当的增加和减少。全局置换指如果进程在运行中发现缺页,则将OS保留的空闲物理块(一般组织为一个空闲物理块队列)取出一块分配给该进程,或者以所有进程的全部物理块为标的,选择一块换出,然后将所缺之页调入。
c.可变分配局部置换:当某进程发现缺页时,只允许从该进程在该内存的页面中选择一页换出,这样就不会影响其他进程的运行了。
(3)物理块分配算法
a.平均分配算法
b.按比例分配算法
c.考虑优先权分配算法

7.页面调入策略
(1)何时调入页面
a.预调页策略
b.请求调页策略
(2)从何处调入页面
将请求分页系统中的外存分为两部分:用于存放文件的文件区和用于存放对换页面的对换区。由于对换区是采用连续分配方式,而文件区是采用离散分配方式,所以对换区的数据存取(磁盘I/O)的速度比文件区高。从何处调入页面分三种情况
a.系统拥有足够的内存对换区空间:可以全部从对换区换入页面,以提高调页速度。在进程运行前,需将与该进程有关的文件从文件区拷贝到对换区。
b.系统缺少足够的对换区空间:对于不会被修改的文件,放入文件区,对于可能产生修改的文件,换入换出在对换区。
c.unix方式:由于与进程有关的文件都放在文件区,故凡是未运行过的页面,都应从文件区调入,对于曾经运行过但又未被换出的页面存放在对换区,因此应从对换区调入。
(3)页面调入过程
每当程序所要访问的页面未在内存时(存在位为”0”),便向CPU发出一缺页中断,中断处理程序首先保留CPU环境,分析中断原因后转入缺页中断处理程序。
(4)缺页率
公式:缺页率=(访问页面失败次数)/(访问页面成功次数+访问页面失败次数)
缺页率受以下几个因素影响:
a.页面大小
b.进程所分配物理块的数目
c.页面置换算法
d.程序固有特性

8.置换算法
(1)最佳置换算法
理论上的算法,选择的被淘汰页面是以后都不再使用的,或是最长(未来)时间内都不被访问的页面。采用这种算法可以保证最低缺页率。但是无法预知,一个进程中的哪个页面是未来最长时间不被访问的,因而这个算法无法实现。
(2)先进先出(FIFO)置换算法
淘汰最先进入内存的算法,即选择在内存中驻留时间最长的页面。性能较差,原因是,它所依据的条件是各个页面调入内存的时间,而页面调入的先后并不能反应页面的使用情况。
(3)最近最久未使用(Least Recently Used)算法
选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间。为了了解一个进程在内存中的各个页面各有多少时间未被进程访问,以及如何快速地知道哪一页是最近最久未使用的页面,须有寄存器和栈两类硬件之一的支持。
(4)最少使用(Least Frequently Used,LFU)置换算法
在使用LFU算法时,应在内存中的每个页面设置一个移位寄存器,用来记录该页面被访问的频率。该算法选择最近最少使用的页面进行淘汰。
(5)Clock算法
是一种LRU近似算法
*a.简单的Clock置换算法*
在选择一页淘汰时,只需检查页的访问位,如果是0,就选择该页换出;若为1,则重新置成0,暂不换出,给予该页第二次驻留内存的机会,再按照FIFO算法检查下一个页面。当检查到最后一个页面,若其访问位仍然为1,则再返回到队首去检查第一个页面。由于该算法是循环地检查各页面的使用情况,故称为clock算法。但因该算法只有一位访问位,只能用它来表示该页是否已经使用过,而置换时是将未使用过的页面置换出去,故把这个算法称为最近未使用算法或NRU(Not Recently Used)算法。

*b.改进型Clock置换算法*
对于修改过的页面,在换出时所付出的开销比未修改过的页面大,或者说,置换代价大,在改进型Clock算法中,除须考虑页面的使用情况外,还须增加一个因素–置换代价。选择页面换出时,既要是未使用过的页面,又要是未被修改的页面。把同时满足这两个条件的页面作为首要淘汰页面。
(6)页面缓冲算法
主要特点a.显著降低页面换进、换出的频率,使磁盘I/O的操作次数减少,因而减少了页面换进、换出的开销;b.由于换进换出的开销减少,使其采用一种较简单的置换策略,如FIFO.

9.影响页面换进换出效率的若干因素
对页面进行置换的算法、将已修改页面写回磁盘的频率,以及将磁盘内容读入内存的频率。

10.访问内存的有效时间
内存有效访问时间不仅要考虑访问页表和访问实际物理地址数据的时间,还必须考虑缺页中断的处理时间。

11.抖动
(1)发生抖动的根本原因:
在系统中运行的进程太多,分配给每一个进程的物理块的数量太少,不能满足进程的正常运行的基本要求,致使每个进程在运行时,频繁出现缺页,必须请求系统将所缺之页调入内存。这导致在系统中排队等待页面调进调出的进程数目增加。对磁盘的有效访问时间也随之增加,造成每个进程的大部分时间都用于页面的换进换出,而几乎不能再去做任何工作,从而导致发生处理机的时间的利用率下降,并趋于0,称此时的进程处于“抖动”状态。
(2)工作集
指在某段时间间隔△里,进程实际所要访问页面的集合。
(3)预防“抖动”的方法
a.采用局部置换策略:当某进程发生缺页时,只能在分配给自己的内存空间内进行置换,不允许从其他进程去获得新的物理块。优点是不会对其他进程造成影响,缺点是在某进程发生“抖动”后,它还会长期处于磁盘I/O的等待队列中,使队列的长度增加,这会延长其他进程缺页中断的处理时间,也就是延长其他进程对磁盘的访问时间。
b.把工作集算法融入处理机调度中
在调度中融入工作集算法,则在调度程序从外存调入作业之前,必须先检查每个进程在内存的驻留页面是否足够多。如果都足够多,便可以从外存调入新的作业,不会因新作业的调入而导致缺页率的增加;反之,如果有些进程的内存页面不足,则应首先为那些缺页率居高的作业增加新的物理块,此时将不再调入新的作业。
c.利用”L=S”准则调节缺页率
L是缺页之间的平均时间,S是平均缺页服务时间,即用于置换一个页面所需的时间。如果是L远比S大,说明很少发生缺页,磁盘的能力尚未得到充分的利用;反之,如果是L比S小,说明频繁发生缺页,缺页的速度超过了磁盘的处理能力。只有当L与S接近时,磁盘和处理机都可达到它们的最大利用率。
d.选择暂停的程序
基于某种原则选择暂停某些当前活动的进程,将它们调出到磁盘上,以便把腾出的内存空间分配给缺页率发生偏高的进程。

12.请求分段存储管理方式
在请求分段系统中,程序运行之前,只需先调入少数几个分段(不必调入所有的分段)便可启动运行。当所访问的段不在内存中时,可请求OS将所缺的段调入内存。
(1)请求分段中的硬件支持
请求段表机制,缺段中断机构和地址变换机构
(2)分段的共享和保护
共享段表(共享进程计数count,存取控制字段,段号)
分段保护(越界检查,存取控制检查,环保护机构)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
存储器管理是操作系统的一个重要组成部分,它主要负责管理计算机的内存资源,包括内存分配和回收、内存保护、虚拟内存管理等。下面介绍一下操作系统实验的存储器管理。 1. 内存分配和回收 内存分配是将一定大小的内存分配进程使用,而内存回收则是将进程不再使用的内存块释放出来,以便其他进程使用。在实现内存分配和回收时,可以采用多种算法,比如首次适应算法、最佳适应算法、最坏适应算法等。这些算法的实现过程可以通过链表或位图来完成。 2. 内存保护 内存保护是指防止进程越界访问内存区域,从而导致系统崩溃或数据损坏。在操作系统,可以通过硬件和软件两种方式来实现内存保护。硬件保护通常通过内存管理单元(MMU)来实现,而软件保护则通过访问权限控制和地址空间隔离来实现。 3. 虚拟内存管理 虚拟内存管理是操作系统的一个重要功能,它可以将进程的虚拟地址空间映射到物理内存,从而使得进程可以访问超过实际物理内存大小的数据。在实现虚拟内存管理时,需要采用一些算法来完成页面置换和页面调度等操作,比如最近最少使用算法(LRU)。 总之,存储器管理是操作系统重要的组成部分,对于系统的稳定性和性能有着重要的影响。在操作系统实验,可以通过实现内存分配和回收、内存保护、虚拟内存管理等功能,来加深对操作系统存储器管理的理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值