虚拟存储管理原理
1. 求页式虚拟存储技术的原理。
虚拟存储器是根据程序的逻辑地址转换来的,也称线性地址空间。一般每个进程,甚至每个段都有一个,以32位为例,则每个最大可达4G。 而主存目前一般为百M。因此程序中所指的存储单元并不能都放到主存中,也就是并不是每个程序所用的存储单元,都有具体的物理的存储器单元与之对应。 但由于程序的两个局部性原理,在一个时刻,程序只在一个比较小的范围内运行。所以我们把程序可能用到的整个存储空间分成一个个相同大小的页(按页管理硬件上容易实现),只把其中的一些页放在主存中,而其它的页则等需要时再建,或放在辅存(磁盘)中。同时建立一个页表,对应于每一页,如果该页在主存中,则页表记录它在主存中的地址;如果不在主存中,则在页表上作不在主存的标记。 这样,当程序需要调用某个存储单元的内容时,先根据它的线性地址,算出其所在的页。查页表,看是不是在主存中?如果在,则直接存取。如果查到页表上是不在的标记,那就是一个page fault。要把主存中的某一页(LRU策略)换到磁盘上,把要访问的那个单元所在的页调入主存,再进行存取。 就象一个预计有一万学生的学校,理论上每个学生都应有一个位子上课(一万个虚拟位子),而学校只有一千个(物理)位子。但实际上,学校也不会一万个人同时上课,只要让上课的同学有位子(在主存中),而其它同学只要留下联系方法能找到就好。为了降低管理的复杂性,我们采用按学号分班(页)管理。每个班要么一起上课(主存),要么一起呆在寝室(磁盘)。而在学校保留一个动态表(页表)表明每个班在哪儿(物理地址)上课,或者没上课(不在主存)。现在假设我们想按学号找一个同学,而且是女同学,只能在教室说话,呵呵。那么: 先算出来是哪个班的,查动态表,看该班是否在教室。在,直接按位置找到(hit);不在(page fault),要先找个不上课的班赶回寝室,把要找女生所在的班调到教室,再按位置找那个同学。 动态表(页表)的大小=表项数*每个表项所需的位数。 表项数=虚拟班数=虚拟人数(虚拟地址空间)/每班人数(每页大小) 每个表项的位数=Log(教室数)+适当控制位数
麻烦采纳,谢谢!
2. 虚拟存储器基于什么原理
虚拟存储器的概念
为解决内存小而作业大、作业多的矛盾, 以及执行过程中只是把当前运键衡行需要的那部分程序和数据装入内存。 所以,操作系统把各级存储器统一管理起来。就是说, 应该把一个程序当前正在使用的部分放在内存, 而其余部分放在磁盘上,就启动执行它。操作系统根据程序执行时的要求和内存的实际使用情况, 随机地对每个程序进行换入/换出。
这样, 就给用户提供一个比正式的内存空间大的多的地址空间, 这就是虚拟存储器。所谓虚拟存储器是用户能作为可编址内存对待的存储空间, 在这种计算机系统中虚地址被映射成实地址。简单地说,虚拟存储器:是由操作系统提供的一个假想的特大存储器。就是说, 虚拟存储器并不是实际的内存,它的大小比内存空间大的多; 用户感觉所能使用的“内存”非常大, 但这是操作系统对物理内存的扩充。
它的物质基础是:二级存储器结构、和动态地址转换(DAT)。
机构虚拟存储器的基本特征:
虚拟扩充。 虚拟存储器不是物理上扩充内存空间, 而是逻辑上扩充了内存容量。
部分装入。 每个作业不是全部一次的培亮猜装入内存, 而是分成若干部分。
离散分配。 一个作业分成多个部分,没有全部装入内存。 即使装入内存的那些部分也不必占用连续的内存空间, 而是“见缝插针”。
多次对换。 在一个进程运行期间, 它所需的全部程序和数就要分成多次调入内存。
注意: 虚拟存储器的容量虽然提供了特大的地址空配型间, 用户在编程时一般不应考虑可用空间有多大。 但是, 虚拟存储器的容量不是无限大的。 它主要受两方面的限制:(1)机器指令中表示地址的二进制数是有限的;(2)外存的容量也是有限的。
更多:
http://www.fjtu.com.cn/fjnu/courseware/0333/course/_source/web/lesson/char2/j4.htm
3. 虚拟存储器管理中的基础是()原理
程序的主存储器原理
存储管理策略的基础是局部性原理,即进程往往会不均匀地高度局部化地访问主存。局部性表现在时间局部性和空间局部性两方面。其中,时间局部性是指最近被访问的存储位置,很可能不久将还会被访问;空问局部性是指存储访问有成组的倾向,当访问某位置后,很可能也要访问其附近的位置。虚拟存储器管理中的基础是程序的主存储器原理。
(3)虚拟存储管理原理扩展阅读:
存储访问局部性最有意义的结果是:只要进程所需要的页面子集驻留在主存中,进程就可以有效地运行。根据局部性访问特性,Denning阐述了程序性能的工作集理论。工作集是进程活跃地访问的页面集合。工作集理论指出,为使进程有效地运行,它的页面工作集应该驻留在内存中,否则由于进程频繁地从辅存请求页面,会出现抖动的页面调度活动。
4. 虚拟存储器工作原理
你所谓的虚拟存储器是不是虚拟内存
虚拟内存是用硬盘空间做内存来弥补计算机RAM空间的缺乏。当实际RAM满时(实际上,在RAM满之前),虚拟内存就在硬盘上创建了。当物理内存用完后,虚拟内存管理器选择最近没有用过的,低优先级的内存部分写到交换文件上。这个过程对应用是隐藏的,应用把虚拟内存和实际内存看作是一样的。
在Windows2000(XP)目录下有一个名为pagefile.sys的系统文件(Windows98下为Win386.swp),它的大小经常自己发生变动,小的时候可能只有几十兆,大的时候则有数百兆,这种毫无规律的变化实在让很多人摸不着头脑。其实,pagefile.sys是Windows下的一个虚拟内存,它的作用与物理内存基本相似,但它是作为物理内存的“后备力量”而存在的,也就是说,只有在物理内存已经不够使用的时候,它才会发挥作用。
5. 虚拟存储器的基本原理是什么其容量主要受到什么限制
虚拟存储器的基本特征是:
①虚拟扩充,即不是物理上而是逻辑上扩充了内存容量;
②部分装入,即每个作业不是全部一次性地装入内存,而是只装入一部分;
③离散分配,即不必占用连续的内存空间,而是"见缝插针";
④多次对换,即所需的全部程序和数据要分成多次调入内存.
虚拟存储器的容量主要受到指令中表示地址的字长和外存的容量的限制.
6. 虚拟存储器技术主要用于解决什么问题简述虚拟存储器的基本工作原理。
虚拟存储器技术主要解决电笑磨脑内存不够的问题,电脑中所运行的程序均需经由内存执行,若执行的姿扰程序占用内存很大或很多,则会导致内存消耗殆尽。
为解决该问题,Windows中运用了虚拟内存技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自迹升旦动调用硬盘来充当内存,以缓解内存的紧张。若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Windows 会用虚拟存储器进行补偿。
工作原理
1、中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
2、如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。
3、从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。
4、从地址变换表读出与逻辑组号a对应的物理组号a。
5、从物理组号a和组内字节地址b得到物理地址。
6、根据物理地址从主存中存取必要的信息。
(6)虚拟存储管理原理扩展阅读:
相关概念
1、实地址与虚地址
用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。程序进行虚地址到实地址转换的过程称为程序的再定位。
2、虚拟内存的访问过程
虚存空间的用户程序按照虚地址编程并存放在辅存中。程序运行时,由地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。
每次访存时,首先判断该虚地址所对应的部分是否在实存中:如果是,则进行地址转换并用实地址访问主存;否则,按照某种算法将辅存中的部分程序调度进内存,再按同样的方法访问主存。
3、异构体系
从虚存的概念可以看出,主存-辅存的访问机制与cache-主存的访问机制是类似的。这是由cache存储器、主存和辅存构成的三级存储体系中的两个层次。cache和主存之间以及主存和辅存之间分别有辅助硬件和辅助软硬件负责地址变换与管理,以便各级存储器能够组成有机的三级存储体系。
7. 虚拟内存技术的工作原理
虚拟内存技术的工作原理是什么?虚拟内存有什么技术?下面由我来和大家一起了解吧!
虚拟内存技术介绍
虚拟内存别称虚拟存储器(Virtual Memory)。电脑中所运行的
程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存[2] 技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Windows 会用虚拟存储器进行补偿。它将计算机的RAM和硬盘上的临时空间组合。当RAM运行速率缓慢时,它便将数据从RAM移动到称为“分页文件”的空间中。将数据移入分页文件可释放RAM,以便完成工作。 一般而言,计算机的RAM容量越大,程序运行得越快。若计算机的速率由于RAM可用空间匮乏而减缓,则可尝试通过增加虚拟内存来进行补偿。但是,计算机从RAM读取数据的速率要比从硬盘读取数据的速率快,因而扩增RAM容量(可加内存条)是最佳选择。虚拟内存是Windows 为作为内存使用的一部分硬盘空间。虚拟内存在硬盘上其实就是为一个硕大无比的文件,文件名是PageFile.Sys,通常状态下是看不到的。必须关闭资源管理器对系统文件的保护功能才能看到这个文件。虚拟内存有时候也被称为是“页面文件”就是从这个文件的文件名中来的。[2] 内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,WINDOWS运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,这部分空间即称为虚拟内存,虚拟内存在硬盘上的存在形式就是 PAGEFILE.SYS这个页面文件。
工作原理
虚拟存储器是由硬件和 操作系统 自动实现存储信息调度和管理的。它的工作过程包括6个步骤:
①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
②如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。
③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。
④从地址变换表读出与逻辑组号a对应的物理组号a。
⑤从物理组号a和组内字节地址b得到物理地址。
⑥根据物理地址从主存中存取必要的信息。
8. 虚拟存储技术的原理
从系统的观点看,有三种主要的存储虚拟化方法:
基于主机的虚拟存储;
基于存储设备的虚拟存储;
基于网络的虚拟存储。
方法1:基于主机的虚拟存储
基于主机的虚拟存储依赖于代理或管理软件,它们安装在一个或多个主机上,实现存储虚拟化的控制和管理。由于控制软件是运行在主机上,这就会占用主机的处理时间。因此,这种方法的可扩充性较差,实际运行的性能不是很好。基于主机的方法也有可能影响到系统的稳定性和安全性,因为有可能导致不经意间越权访问到受保护的数据。这种方法要求在主机上安装适当的控制软件,因此一个主机的故障可能影响整个SAN系统中数据的完整性。软件控制的存储虚拟化还可能由于不同存储厂商软硬件的差异而带来不必要的互操作性开销,所以这种方法的灵活性也比较差。
但是,因为不需要任何附加硬件,基于主机的虚拟化方法最容易实现,其设备成本最低。使用这种方法的供应商趋向于成为存储管理领域的软件厂商,而且目前已经有成熟的软件产品。这些软件可以提供便于使用的图形接口,方便地用于SAN的管理和虚拟化,在主机和小型SAN结构中有着良好的负载平衡机制。从这个意义上看,基于主机的存储虚拟化是一种性价比不错的方法。
方法2:基于存储设备的虚拟化
基于存储设备的存储虚拟化方法依赖于提供相关功能的存储模块。如果没有第三方的虚拟软件,基于存储的虚拟化经常只能提供一种不完全的存储虚拟化解决方案。对于包含多厂商存储设备的SAN存储系统,这种方法的运行效果并不是很好。依赖于存储供应商的功能模块将会在系统中排斥JBODS(Just a Bunch of Disks,简单的硬盘组)和简单存储设备的使用,因为这些设备并没有提供存储虚拟化的功能。当然,利用这种方法意味着最终将锁定某一家单独的存储供应商。
基于存储的虚拟化方法也有一些优势:在存储系统中这种方法较容易实现,容易和某个特定存储供应商的设备相协调,所以更容易管理,同时它对用户或管理人员都是透明的。但是,我们必须注意到,因为缺乏足够的软件进行支持,这就使得解决方案更难以客户化(customzing)和监控。
方法3:基于网络的虚拟存储
基于网络的虚拟化方法是在网络设备之间实现存储虚拟化功能,具体有下面几种方式:
1. 基于互联设备的虚拟化
基于互联设备的方法如果是对称的,那么控制信息和数据走在同一条通道上;如果是不对称的,控制信息和数据走在不同的路径上。在对称的方式下,互联设备可能成为瓶颈,但是多重设备管理和负载平衡机制可以减缓瓶颈的矛盾。同时,多重设备管理环境中,当一个设备发生故障时,也比较容易支持服务器实现故障接替。但是,这将产生多个SAN孤岛,因为一个设备仅控制与它所连接的存储系统。非对称式虚拟存储比对称式更具有可扩展性,因为数据和控制信息的路径是分离的。
基于互联设备的虚拟化方法能够在专用服务器上运行,使用标准操作系统,例如Windows、Sun Solaris、Linux或供应商提供的操作系统。这种方法运行在标准操作系统中,具有基于主机方法的诸多优势--易使用、设备便宜。许多基于设备的虚拟化提供商也提供附加的功能模块来改善系统的整体性能,能够获得比标准操作系统更好的性能和更完善的功能,但需要更高的硬件成本。
但是,基于设备的方法也继承了基于主机虚拟化方法的一些缺陷,因为它仍然需要一个运行在主机上的代理软件或基于主机的适配器,任何主机的故障或不适当的主机配置都可能导致访问到不被保护的数据。同时,在异构操作系统间的互操作性仍然是一个问题。
3. 基于路由器的虚拟化
基于路由器的方法是在路由器固件上实现存储虚拟化功能。供应商通常也提供运行在主机上的附加软件来进一步增强存储管理能力。在此方法中,路由器被放置于每个主机到存储网络的数据通道中,用来截取网络中任何一个从主机到存储系统的命令。由于路由器潜在地为每一台主机服务,大多数控制模块存在于路由器的固件中,相对于基于主机和大多数基于互联设备的方法,这种方法的性能更好、效果更佳。由于不依赖于在每个主机上运行的代理服务器,这种方法比基于主机或基于设备的方法具有更好的安全性。当连接主机到存储网络的路由器出现故障时,仍然可能导致主机上的数据不能被访问。但是只有联结于故障路由器的主机才会受到影响,其他主机仍然可以通过其他路由器访问存储系统。路由器的冗余可以支持动态多路径,这也为上述故障问题提供了一个解决方法。由于路由器经常作为协议转换的桥梁,基于路由器的方法也可以在异构操作系统和多供应商存储环境之间提供互操作性。
9. 什么是虚拟存储器和局部性原理
虚拟存储器:是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。在虚拟存储器系统中,作业无需全部装入,只要装入一部分就可运行。
引入虚拟存储技术之后,可以:
1、提高内存利用率;(如:定义100*100大小的数组,可能只用到10*10个元素)
2、程序不再受现有物理内存空间的限制;编程变得更容易;
3、可以提高多道程序度,使更多的程序能够进入内存运行。程序局部性原理:虚拟存储管理的效率与程序局部性程序有很大关系。根据统计,进程运行时,在一段时间内,其程序的执行往往呈现出高度的局限性,包括时间局部性和空间局部性。
1、时间局部性:是指若一条指令被执行,则在不久的将来,它可能再被执行。
2、空间局部性:是指一旦一个存储单元被访问,那它附近的单元也将很快被访问。
10. 虚拟存储管理的基本原理是什么
虚拟存储器的概念 为解决内存小而作业大、作业多的矛盾, 以及执行过程中只是把当前运行需要的那部分程序和数据装入内存。 所以,操作系统把各级存储器统一管理起来。
就是说, 应该把一个程序当前正在使用的部分放在内存, 而其余部分放在磁盘上,就启动执行它。
操作系统根据程序执行时的要求和内存的实际使用情况, 随机地对每个程序进行换入/换出。 这样, 就给用户提供一个比正式的内存空间大的多的地址空间, 这就是虚拟存储器。
所谓虚拟存储器是用户能作为可编址内存对待的存储空间, 在这种计算机系统中虚地址被映射成实地址。
简单地说,虚拟存储器:是由操作系统提供的一个假想的特大存储器。
就是说, 虚拟存储器并不是实际的内存,它的大小比内存空间大的多;
用户感觉所能使用的“内存”非常大, 但这是操作系统对物理内存的扩充。 它的物质基础是:
二级存储器结构、和动态地址转换(DAT)。
机构虚拟存储器的基本特征:
虚拟扩充。 虚拟存储器不是物理上扩充内存空间, 而是逻辑上扩充了内存容量。 部分装入。
每个作业不是全部一次的装入内存, 而是分成若干部分。 离散分配。 一个作业分成多个部分,没有全部装入内存。
即使装入内存的那些部分也不必占用连续的内存空间, 而是“见缝插针”。 多次对换。
在一个进程运行期间, 它所需的全部程序和数就要分成多次调入内存。
注意:
虚拟存储器的容量虽然提供了特大的地址空间, 用户在编程时一般不应考虑可用空间有多大。 但是, 虚拟存储器的容量不是无限大的。
它主要受两方面的限制:
(1)机器指令中表示地址的二进制数是有限的;
(2)外存的容量也是有限的。