虚拟存储技术

所谓虚拟内存技术,又称为虚拟存储技术,就是把内存和外存有机的结合使用,从而得到一个容量很大的“内存”,该技术可以让系统看上去比实际物理内存大得多的内存空间,并且为实现多道程序的执行创造了条件。

当操作系统支持虚拟存储技术的时候,进程只需要将部分代码载入到内存即可使得程序在内存中运行。当下一条需要执行的指令不在内存时,则需要将新的程序调入到内存,将旧的程序段置换出去。在计算机技术中将内存中的程序段复制回外存的做法叫做“换出”,而将外存中的程序段映射入内存的做法叫做“换入”。经过不断有目的的换入和换出,处理器就可以运行一个大于实际物理内存的应用程序了。或者说,处理器似乎拥有了一个大于实际物理内存的内存空间。

- 局部性原理

 - 局部性原理是指程序在执行过程中的一个较短时间内,所执行的指令地址或操作数地址分别局限于一定的内存区域中。	
 - 程序可能包含若干循环,一般情况下循环是由相对较少的指令组成,在循环过程中,计算分页系统 存储键保护被限制在程序中相邻部分
 - 很少出现连续的过程调用,相反程序中过程调用的深度限制在小范围内,一段时间内,指令引用被局限在很少几个过程中
 - 对于连续访问数组之类的数据结构,在短时间内往往是对内存中相邻位置的数据的操作。
 - 程序中有些部分是彼此互斥,不是每次运行都会调用,如出错处理代码等。

因此,进程部分代码载入内存是可行的

- 请求分页存储管理
在进程开始运行之前,仅仅转入当前要执行的部分页面即可运行;在执行过程中如果要访问的页面已经调入内存,则进行地址转换,得到欲访问的内存物理地址,如果已经不再内存中,则产生一个“缺页中断”。如果此时内存能够容纳新页,则启动磁盘I/O将其调入内存,如果内存已满,则通过页面置换功能将当前多需的页面调入。
在这里插入图片描述

页面置换算法

  1. 先进先出页面置换算法(FIFO)
    总是选择在主存中停留时间最长(即最老)的页面进行置换,即先进入内存的页先被换出内存。
    Belady现象是FIFO特有的
  2. 最优页面置换算法(OPT)
    OPT是指其所选择的被淘汰的页面,将是以后永不使用的,或许是在最长(未来)时间内不再被访问的页面
  3. LRU页面置换算法
    如果以最近的过去作为不久将来的近似,那么就可以把过去最长一段时间里不曾被使用的页面置换掉。它的实质是,当需要置换一页时,选择最近一段时间里最久没有使用过的页面予以置换。
    LRU算法需要实际硬件的支持。其问题是怎么确定最后使用时间顺序,对此有两种可行的方法
    ·第一种是使用计数器:在最简单的情况下,为每个页表条目关联一个使用时间域,并且为CPU添加一个逻辑时钟或者计数器。
    ·实现LRU置换的另一种方法是采用堆栈来实现的。
    每当页面被引用时,它就从堆栈中移除并放在顶部。这样,最近使用的页面总是在堆栈的顶部,最近最少使用的页面总是在底部。
  4. 近似LRU页面置换(二次机会算法)
    当选择置换页面时,依然和FIFO一样,选择最早置入内存的页面、但是二次机会法设置了一个访问状态位。所以还要检查页面的访问位。如果是0,就淘汰这页;如果访问位是1就给它二次机会,并选择下一个FIFO页面

页面缓冲算法
1、空闲页面链表
实际上该链表是一个空闲页帧链表,用于分配给频繁发生缺页的进程,以降低该进程的缺页率。当这样的进程需要读入一个页面时,便可以利用空闲页帧链表中的第一个页帧来装入该页。当有一个未被修改的页面要换出时,实际上并不将它换出外存,而是把它们所在的页帧挂在空闲链表的末尾(页面在内存中并没有做物理上的移动,而是将页表中的表项移到该链表表尾)
2、修改页面链表
它是由已修改的页面所形成的链表。设置该链表的目的是为了减少已经修改的页面换出的次数。当进程需要将一个已修改的页面换出时,系统并不立即把它换出到外存上,而是将它所在的物理块挂到修改页面链表的末尾。这样做的目的是降低已修改页面写回磁盘的频率,降低将磁盘内容读入内存的频率。

页帧分配算法
页帧分配算法通常要考虑驻留在内存中进程的情况,常见的分配算法包括平均分配算法与按比例分配法
·平均分配
即最大帧数除以进程总数得到一个平均的值,这个值就是操作系统为每个进程分配的页帧数目。单纯的平均分配没有考虑到不同进程可能需要不同大小的内存空间。
·按进程大小比例分配
按照进程地址空间的大小,按比例给进程分配页帧数。
页帧分配策略

  1. 局部分配策略
    页面的置换都是发生在同一个进程已经分配的内存空间中。
    局部算法可以有效地为每个进程分配固定的页帧。
  2. 全局分配策略
    全局分配策略允许进程抢占其他进程分配的页帧。全局算法在可运行进程之间动态地分配页框,因此分配给各个进程的页框数是随时间变化的。
  3. 常驻集
    进程在运行时,当前时刻实际驻留在内存当中的页面集合
  4. 工作集
    进程在过去一段时间访问的页面集合

全局算法在通常情况下工作得比局部算法好,当工作集的大小随进程运行时间发生变化时民政现象更加明显。若使用局部算法,即使有大量的空闲页框存在,工作集的增长也会导致颠簸。如果工作集缩小了,局部算法优惠浪费内存。在使用全局算法时,系统必须不停地确定应该给每个进程分配多少页框。

系统抖动
随着进程的增加,CPU的利用率也会增加,但是如果同一时间进程过多,每个进程占用的帧就相应地变少了,就可能出现进程执行时需要经常性地发生缺页中断,CPU利用率降低的现象,而这时,操作系统还以为是进程数量太少导致的,还继续加入进程,导致每个进程占用的帧更少,CPU利用率更低的恶性循环,这种现象称之为系统抖动
系统抖动的原因是:
分配的页帧数太小
置换算法选择不当

解决系统抖动的方法

·工作集策略
工作集合策略是通过计算每个进程的工作集近似得到进程需要的页帧数,如果这个总数大于内存的物理帧数,则说明系统颠簸了,需要减少进程。
·缺页率策略
缺页频率是另一种更为直接的防抖动的方法。因此系统如果随时能够检测到系统中缺页错误的情况,就可以动态地调整为进程分配的页帧数目。
我们可以设置所需缺页率的上下限。如果实际缺页率超过上限,则可以为进程再分配更多页帧;如果实际缺页率低于下限,可以从进程中移走页帧。因此可以靠直接监测缺页率来防止抖动。
实际上,抖动及其导致的交换对性能负面影响很大。目前处理这一问题的最佳实践是,在可能的情况下提供足够的物理内存以避免抖动和交换。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 虚拟存储技术主要采用以下两种策略: 1.页面置换策略:当物理内存不足时,需要将部分页面置换出去,以腾出空间给新的页面使用。页面置换策略有多种,例如先进先出(FIFO)、最近最少使用(LRU)、最少使用(LFU)等。 2.页面调度策略:当一个进程需要访问一个不在物理内存中的页面时,需要将该页面从磁盘读入到物理内存中。页面调度策略主要是根据页面的访问模式和访问频率来选择哪些页面需要调入物理内存中。一般的页面调度策略有随机置换、先进先出、最近最少使用、最少使用等。 ### 回答2: 虚拟存储技术主要采用了两种策略:页面置换策略和页面调度策略。 页面置换策略是虚拟存储技术中的一项关键策略,它用于在系统的物理内存中找到适当的页面来替换到磁盘中,以便为新的页面腾出空间。常见的页面置换算法包括最佳置换算法、先进先出算法、最近最少使用算法和时钟算法等。这些算法通过评估页面的重要性、访问模式和时间等因素,以确定需要置换的页面。 页面调度策略是指在虚拟存储系统中,将磁盘上的页面调入物理内存的策略。根据不同的需求和算法设计,常见的页面调度策略有按需调度、预调度和预先分页调度等。按需调度是在需要访问某个页面时才进行页面调度,避免过度的页面调度开销。而预调度则是在预测需求的基础上提前将磁盘上的页面调入物理内存,以减少访问延迟。预先分页调度则是将磁盘上的相关页面一并调入物理内存,以提高程序的运行效率。 虚拟存储技术的主要目的是提供更大的可用内存空间,使得运行大型程序和处理大型数据集变得可能。通过合理的页面置换策略和页面调度策略,可以确保系统能够高效地管理内存资源,提高系统的整体性能和响应能力。 ### 回答3: 虚拟存储技术主要采用了分页和分段的策略。 在分页策略中,计算机将物理内存划分为固定大小的页框,同时,将进程的地址空间划分为相同大小的页。当进程需要访问某个地址时,操作系统通过页表将逻辑地址映射到物理地址,然后将所需的页面调入物理内存。如果物理内存空间不足,操作系统会使用页面置换算法将不常用的页面从内存交换到磁盘上,以释放出空间。 分段策略中,进程的地址空间被划分为多个逻辑段,每个段具有不同的大小和特定的用途,比如代码段、数据段和堆栈段。每个段被划分为若干个大小相等的块,称为页或段页。当进程需要访问某个段时,操作系统将该段调入内存,并将逻辑地址映射到物理地址。如果内存空间不足,操作系统会使用段页置换算法将不常用的段页换出到磁盘上。 虚拟存储技术的主要目的是扩大可用的地址空间,使得进程能够运行更大的程序。通过分页和分段的策略,操作系统能够根据需要将程序的一部分加载到内存中,而不是将整个程序都加载进内存。这样可以节省内存空间,提高内存利用率,并提供更好的响应速度。另外,虚拟存储技术还可以实现进程间的隔离和保护,确保每个进程都拥有独立的地址空间。总之,虚拟存储技术是现代操作系统中非常重要的一项技术,为多任务处理和大型程序运行提供了支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值