虚拟存储技术

一.实现内存扩充的技术:

(1)覆盖技术:

在程序运行中,在不同时刻把同一个存储区分配给不同程序段和数据段,实现存储区共享。适用于连续存储(单一连续区分配,分区)


如图BDG共享一个存储区(三个进程不同时发生),CEFH同理

(2)交换技术(对换技术):

1.定义:

将内存中某进程的的程序和数据(全部或部分)写入外存的交换区,从而腾出内存空间给其他进程使用。

2.相关涉及知识:

磁盘交换区的管理:

磁盘空间划分为两个部分:文件区和交换区

二者的区别:

(1)存储方式不同:文件区信息已文件形式存放,多采用离散存储;交换区信息按字符流形式存放,多用连续存储。

(2)访问速度不同:文件区是间接地址访问(有目录,形成多级),访问时间较慢,而交换区是直接访问,速度较快。

(3)存储时间不同:文件区适合长久存储,交换区适合存放短期数据。

3.方式:对换作业  , 对换进程。

(3)虚拟存储技术(对换页面/段面)

1.相关背景:

程序的局部性原理:在一个较短的时间内,程序执行中对内存地址的访问往往局限于一个较小的空间上。

按照这一原理,一个进程运行时,可不必将进程全部装载到进程中,只需把当前运行的部分程序和数据放到内存中,随着进程运行的不断推进,其余部分可随时装入,实现小内存运次那个大程序的效果。

2.虚拟存储的主要特点:

(1)离散性  (装入虚拟存储的进程以离散形式存放)

(2)多次性(任意进程或其中的一部分可以分多次装载到进程中)

(3)对换性(根据需要进程可以换进换出)

(4)虚拟性(虚拟出一个较大的逻辑空间)

3.虚拟存储的实现:

一.请求分页存储管理:

#1.数据结构:

位示图

页表

(结构)   :    页号 状态(存在位) 帧号 外存位置 访问标识 修改位

若状态位(存在位)为0,说明缺页,则记录该缺页在外存中的位置,访问情况及修改情况。

#2.地址重定位过程:

(1)不发生缺页时:

当调度一个进程时,系统将其页表首址装入CPU中的页表控制寄存器。运行中用相对地址的高端部分作为页号去检索页表,看该页是否已在内存。若已在内存就按普通分页机制的方式直接生成物理地址,并将访问标志和修改标志设置好。

(2)发生缺页时:
若该页不在内存中,则发生缺页中断,通过中断处理机制将缺页调入到内存中。

中断处理过程:

(1) 保留进程上下文。

(2) 判断内存是否有空闲帧?若有,则获取一个帧号No,转(4)。

(3) 腾出一个空闲帧,即:

 (3)-1调用置换算法,选择一个淘汰页PTj。

                   (3)-2  PTj (S)0;

                   (3)-3  No PTj (F);。

                   (3)-4 若该页曾修改过,则:

                           (3)-4-1 请求外存交换区上一个空闲块B。

                           (3)-4-2  PTj (D)B。

                           (3)-4-3 启动I/O管理程序,将该页写到外存上。

 (4)按页表中提供的缺页外存位置,启动I/O,将缺页装入空闲帧中。

 (5)修改页表的状态字段。PTi(F)No;PTi(S)1。

 (6)结束。


涉及到缺页调入,则要考虑到缺页调入策略:

页面置换算法

主要有6种:

(1)最佳置换算法(OPT):(理想状态下)

思想:每次选择在给出的页号序列中最城市间不再使用的页面置换出去。

(2)先进先出算法:

将最先进来的页调换出去,可以用栈,用栈底保存最开始的值,每次置换都换底。

(3)最近最久未使用算法(LRU):

将最近最久未使用的页面置换出去,若用栈,则在(2)方法的基础上还要每次都要更新栈顶,相关的栈底也会改变

(4)最近最经常不使用(LFU)

(5)Clock(钟表)算法(近似LRU算法(NRU))

该算法中将被置换的候选帧集合构成一个环状缓冲区,并设一个循环移动指针。初始时,该指针指向缓冲区的头部。当某页被选择置换后,指针将顺序指向缓冲区的下一个帧。环状缓冲区中的每个候选帧关联一个“访问位”,记作A,当某帧的A=0时,说明该帧最近未被访问。显然,一个刚刚调入页面的帧,以及刚刚访问过的帧,其A=1。

(6)改进的clock算法:

为每个帧增设一个关联的修改位

A=0且M=0:该帧中所存的页面最近没有访问,也没有修改。

  l  A=1且M=0:该帧中所存的页面最近访问过,但没有修改。

  l  A=0且M=1:该帧中所存的页面最近没有访问,但修改了。

  l  A=1且M=1:该帧中所存的页面最近访问过,也修改过。

页面调入策略:

(1)从文件区调入

(2)从交换区调入

(3)从内存中的磁盘交换区调入

系统的有效访存时间T的估算

•假定系统的一个内存周期为ma,调入缺页的时间为la,缺页率为p,那么:

       T=(1-p)´ma + p ´(la+ ma)

           = ma- p´ma + p´la + p´ma

           = ma +p ´ la.

二.请求分段存储管理:

#1.数据结构:

段表

(结构)    段号   驻留位    内存基址   外存地址   长度   访问权限   访问位   修改位    增补位   



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值