当前位置:首页 » 存储配置 » 指令虚拟存储

指令虚拟存储

发布时间: 2022-12-06 03:10:53

❶ 电子计算机中的虚拟内存器的作用是什么

一般来说,任何一个程序都要调入内存才能执行。为了能够运行更大的程序,为了同时运行多道程序,就需要配置较大的内存,或对已有的机器扩大内存。随着存储器芯片集成度的不断提高和价格的下降,今天PC机的内存容量不但超过了前些年大型机的内存容量,而且还超过了一些小型机的外存容量。例如,当前PC机的内存配置已在百兆数量级上。当然,内存的扩充总归有限,有没有可能让较小的内存运行更大的程序呢?目前广泛采用的“虚拟存储技术”可以通过软件方法,将主存和一部分外存空间构成一个整体,为用户提供一个比实际物理存储器大得多的存储器,这称之为“虚拟存储器”。
虚拟存储器的原理同样是基于这样一个现实:即程序的运行在一段时间内不会涉及它的全部指令,而仅仅是局限在一段程序代码之内。当一个程序需要执行时,只要将其调入虚拟存储器就可以了,而不必全部调入内存。程序进人虚拟存储器后,就完全由操作系统进行管理和调度。系统会根据一定的算法,将实际执行到的那段程序代码调入物理内存(称为页进)。若内存已满,系统会将目前暂不执行的代码送回到作为虚拟存储器的外存区域(称为页出),
再将当前要执行的代码调入内存。这样,操作系统会通过页进、页出,保证要执行的程序段都在内存。而一次页进就可以解决若干条指令的执行。
虚拟存储器技术有效地解决了物理存储器不足的问题。但是,程序执行过程中的页进、页出实际上是内外存的交换,而访问外存的时间比访问内存要慢得多。也就是说,从用户的使用角度讲,虚拟存储器如同物理存储器的作用,但比物理存储器要慢一些。虚拟存储器技术实际上是用时间换取了空间。

❷ 计算机组成原理——虚拟存储器

(1)程序员在比实际主存大得多的逻辑地址空间中编写程序

(2)程序执行时,把当前需要的程序段和数据块掉入主存,其他暂不使用的放在磁盘上

(3)执行指令时,通过硬件将逻辑地址转化为物理地址。虚拟地址高位为虚页号,低位为页内偏移地址

(4)当程序发生数据访问或程序访问失效(缺页时),由操作系统把信息从磁盘调入主存中

    (1)基本思想:

        内存被分成固定长度且长度较小的存储块(页框,实页,物理页)

        每个进程也被划分为固定长度的程序块(页,虚页,逻辑页)

        通过页表,实现逻辑地址想物理地址的转化

    (2)逻辑地址

        程序中指令所使用的地址(进程所在地址空间)

    (3)物理地址

        存放指令或数据的实际内存地址

(1)与“cache-主存”层次相比,页大小远比cache的行大小要大(windows中的页位4k)

(2)采用全相联映射方式:磁盘中的任意一个页能用射到内存中的任意一个页

    因为缺页导致中断时,操作系统从磁盘拿数据通常要耗费几百万个时钟周期。增大页大小,可以减少缺页中断

(3)为什么让软件处理“缺页”

    因为访问磁盘需要好粉几百万个时钟周期,硬件即使能立刻把地址打给磁盘,磁盘也不能立即响应

(4)为什么地址转换用硬件实现

    硬件实现地址转换可以加快指令的执行速度

(5)为什么页写会策略采用write back

    避免频繁的慢速磁盘访问

页表的首地址放在基址寄存器。采用基址寻址方式

每个页表项前面有一个虚页号:从0开始递增的序号。页表项又分为几个结构:

(1)装入位:该页是否在内存中

(2)修改位:该也在内存中是否被修改

(3)替换控制位:用于clock算法

(4)其他

(5)实页号(8进制)

(1)一次磁盘引用需要访问几次主存?2次,一次查页表,一次查物理地址。于是,把经常查的页表放到cache中。这种在cache页表项组成的页表称为TLB(Translation Lookside Buffer)

(2)TLB的页表结构:tag + 主存中的页表项

当采用全相连映射时,tag为页表项前面的虚页号。需要把tag和虚页号一一比较

当采用组相联映射时,tag被分为tag+index,虚页号的高位为tag,虚页号的低位为index,做组内索引(属于组内第几行)

    1.段式存储是根据程序逻辑,给程序分段。使得每段大小不同。这种虚拟地址划分方法适合程序设计

    2.段式存储的虚拟地址由段号和段内偏移地址组成。段式虚拟存储器到物理地址的映射通过段表实现

    3.段式虚拟存储会造成空页

    1.段页式虚拟存储,先把程序按照逻辑分成段,再把每段分成固定大小的页。

    2.程序对主存的调入调出是按照页面进行的;但他有可以根据段实现共享和保护

    3.缺点是段页式虚拟地址转换成物理地址需要查询2个表:段表和页表。段表找到相应页表的位置,页表找到想也页的位置

    4.段页式细腻地址的结构可以为以下形式:

            程序地址: 用户号(进程pid) | 段号 | 页号 | 页内偏移地址

(1)某计算机的cache块工16块,采用二路组相联映射方式,每个主存块大小为32字节,按照字节编制。则主存129号单元的主存块硬装如刀cache的组号是:(C)A、0      B、2      C、4      D、6

解:二路组相联,所以每组2块,共有16/2=8组,所以组号占3位。

      每块32字节,所以块内地址占5位。

      129转化为二进制:1000 0001:前3位为组号,100:=4

(2)假设用若干个2K4位的芯片组成一个8K8位的存储器,则地址0B1FH所在芯片的最小地址为:

解:用2片组成一行,共4行,所以片选地址占2位。片内地址有2k=211,所以占11位

      0B1FH:000|0 1|011 0001 1111 这三段为前缀,片选地址,片内地址。

      该片芯片的最小地址是片内地址全0:000|0 1|000 0000 0000 = 0800H

(3)某计算机的主存地址空间大小为256MB,按字节编址,指令cache和数据cache分离,均有8个cache行,每行大小为64B,数据cache采用直接映射方式,现有两个程序A,B对数组int a[256][256]进行遍历,程序A按行遍历,程序B按列遍历。假定int类型数据用32位补码表示,数组a按行优先方式存储,其地址为320(十进制)。

问:(1) 若不考虑cache一致性维护和替换算法所需的控制位,则数据cache的总容量占多少?

      (2) 数组元素a[0][31]和a[1][1]各自所在主存块对应的cache行号分别为多少(cache从0行开始)?

      (3)程序A和B的数据访问命中率各自为多少?哪个程序的执行时间更短?

解:(1) 因为cache的总容量是cache每行的数据存储大小+tag位+数据是否有效位+其他一致性控制位。

          主存地址空间256MB,占28位。直接映射方式,8行,行号占3位。每行64B,所以块内地址占6位,因此,tag占28-3-6=19位

          每行有一个数据有效位。因此,cache共(19+1+648)8 = 532字节

      (2) 因为int类型占32位,所以一个int占4B。a[0][31] = 320 + 314 = 444 a1 = 320 + 4(256+1) = 1348。

          块内地址占6位,直接映射下行号占3位,因此444 = 110 | 111100,所以行号为6

          1348 = 10 | 101 | 000100,所以行号为5

      (3) 因为1行cache占64B,每个int数占4B,所以一行有16个数。第一个数会因cache缺失而不命中,然后调入cache。,使得后面的15个int访问全部命中。所以命中率为1516 对于程序B,每次调入16个数,小于数组每行的128个元素,因此每次都不会命中,命中率为0

❸ 电脑虚拟内存怎么设置

1、按下键盘上的windows键+R键打开运行栏。在运行栏输入:CMD后按下确认键进入命令提示符。

❹ 内存扩充之虚拟存储技术

传统存储管理

特征

时间局部性:如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行;如果某个数据被访问过,不久之后该数据很可能再次被访问(因为程序中存在大量循环)
空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元很有可能被访问(因为很多数据在内存中是连续存放的,并且程序的指令也是顺序地在内存中存放的

寄存器
高速缓存
内存
外存(如磁盘、磁带等)

越往上容量越小,访问速度越快,成本越高
越往下容量越大,访问速度越慢,成本越低

高速缓存技术的思想:将近期会频繁访问到的数据放到更高速的存储器中,暂时用不到的数据放在更低速存储器中
快表机构就是将近期常访问的页表项副本放到更高速的cache中

基于局部性原理,在程序装入时,可以将程序中很快就会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行
在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序
若内存空间不够,由操作系统将内存中暂时用不到的信息换出到外存

因此,在操作系统的管理下,在用户看来似乎有一个比实际内存大得多的内存,这就是虚拟内存
操作系统虚拟性的一个体现,实际的物理内存大小没有变,只是在逻辑上进行了扩充

虚拟内存的最大容量是由计算机的地址结构(CPU寻址范围)确定的
虚拟内存的实际容量 = min(内存外存容量之和,CPU寻址范围)

虚拟内存有以下三个主要特征

虚拟内存技术,允许一个作业多次调入内存。如果采用连续分配方式,会不方便实现。因此,虚拟内存的实现需要建立在离散分配的内存管理方式基础上

传统的非连续分配存储管理
基本分页存储管理
基本分段存储管理
基本段页式存储管理

虚拟内存的实现
请求分页存储管理
请求分段存储管理
请求段页式存储管理

主要区别:在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存
操作系统要提供请求调页/段功能、页面/段置换功能

请求分页存储管理和基本分页存储管理的主要区别

页表机制
页表项:内存块号、状态位、访问字段、修改位、外存地址,页号时隐含的
内存块号是页面在内存中对应的页框号,如果状态位为0,则内存块号为无
状态位表示是否已被调入内存
访问字段记录最近被访问过几次,或者上次访问时间,由此操作系统能够提供置换算法
修改位记录页面被调入内存后是否被修改过,如果没有,就不需要浪费时间写回外存
外存地址是页面在外存中的存放位置

缺页中断机构
在请求分页系统中,每当要访问的页面不在内存时,便会产生一个缺页中断,然后由操作系统的缺页中断处理程序处理中断(内中断)
此时缺页的进程阻塞,放入阻塞队列,调页完成后再将其唤醒,放回就绪队列
如果内存中有空闲块,则为进程分配一个空闲块,将所缺页面装入该块,并修改页表中相应的页表项
如果内存中没有空闲块,则由页面置换算法选择一个页面淘汰,若该页面在内存期间被修改过,则要将其写回外存,为修改过的页面不用写回外存
一条指令再执行期间可能产生多次缺页中断( A to B)

新增的步骤

页面的换入、换出需要磁盘IO,会有较大的开销,因此好的页面置换算法应该追求更少的缺页率

缺页中断≠页面置换
发生缺页中断会发生调页,只有内存块满了才发生页面置换

最佳置换算法OPT:每次淘汰以后永不使用或最长时间内不再被访问的页面
理想化的算法,很难实现

先进先出算法FIFO:每次淘汰最先进入内存的页面
实现:把调入内存的页面根据调入的先后顺序排成队列,页面置换时换出队头页面,新调入的页面排到队尾
优点:实现简单
缺点1:belady异常,为进程分配的物理块数增大时,缺页次数不减反增的异常现象。只有FIFO会产生belady异常。
缺点2:算法与进程实际运行时的规律不适应,因为先调入的页面有可能最经常被访问,因此算法性能差

最近最久未使用置换算法LRU:淘汰最近最久未使用的页面
实现方法:赋予每个页面对应的页表项中,用访问字段记录该页面自上次被访问以来所经历的时间t
优点:性能最接近OPT
缺点:实现困难、开销大

时钟置换算法CLOCK/NRU

简单NRU:为每一个页表项设置一个访问位,再将内存中的页面都通过连接指针连成一个循环队列,当某页被访问时,访问位为1,只需检查页的访问位。如果为0,就将该页换出,否则将其改为0,暂不换出,继续向后扫描,若第一轮扫描都是1,将这也页面的访问位改为0后,进行第二轮扫描,第二轮扫描中一定会有访问位为0的页面,将其换出。因此最多经过两轮扫描

改进NRU:如果淘汰的页面没有被修改过,就不需要执行IO操作,只有淘汰的页面被修改过时,才需要写回外存。因此,同时考虑最近有无访问和有无修改,在其他条件相同时,优先淘汰没有修改过的页面,避免IO操作
第一轮:找到第一个访问位和修改位都为0的页面进行替换,如果没有找到进行下一轮扫描
第二轮:查找第一个访问位为0,修改位为1的页面进行替换,本轮将所有被扫描过的访问位设置为0,如果没有进行下一轮扫描
第三轮:查找0,0替换否则下一轮
第四轮:查找0,1替换
最多会进行四轮扫描

驻留集:请求分页管理中给进程分配的物理块的集合
在采用了虚拟存储技术的系统中,驻留集大小一般小于进程的总大小
驻留集太小,导致缺页频繁,系统要花大量时间处理缺页,实际用于进程推进的时间很少
驻留集太大,会导致多道程序并发度下降,资源利用率降低

固定分配:操作系统为每个进程分配一组固定数目的物理块,在进程运行期间不再改变
可变分配:先为每个进程分配一定数目的物理块,在进程运行期间,可根据情况作适当的增加或减少

局部置换:发生缺页时只能选进程自己的物理地址块进行置换
全局置换:可以将操作系统保留的空闲物理块分配给缺页进程,也可以将别的进程持有的物理块置换到外存,再分配给缺页进程

不存在固定分配全局置换的策略,因为全局置换意味着一个进程拥有的物理块数量必然改变
其他三种组合存在

固定分配局部置换:系统为每个进程分配一定数量的物理块,在整个运行期间都不改变。若进程在运行中发生缺页,并且需要进行页面置换,则只能从该进程在内存中的页面中选出一页换出,然后再调入需要的页面
缺点:很难在刚开始就确定应为每个进程分配多少个物理地址块才算合理(采用这种策略的系统可以根据进程大小、优先级、或是根据程序员给出的参数来确定为一个进程分配的内存块数

可变分配全局置换:刚开始会为进程分配一定数量的物理块。操作系统会保持一个空闲物理块队列,当某进程发生缺页时,从空闲物理块中取出一块分给该进程;若无空闲物理块,则选择一个未锁定的页面换出到外存,再将该物理块分配给缺页的进程。采用这种策略时,只要某进程发生缺页,都将获得新的物理块,仅当空闲物理块用完时,系统才选择一个未锁定的页面调出。被选择调出的页面可能是系统中任何一个进程的页面,因此这个被选中的进程拥有的物理块会减少,缺页率会增加
只要缺页就给该进程分配新的物理块

可变分配局部置换:刚开始会为每个进程分配一定数量的物理块,当某进程发生缺页时,只允许从该进程自己的物理块中选出一个进行页面置换。如果进程在运行过程中频繁缺页,系统会为该进程多分配几个物理块,直至该进程缺页率趋于适当程度;反之,如果缺页率太低,就是当减少分配给该进程的内存块数
要根据发生缺页的频率来动态增加或减少进程的物理块

何时调入页面

从何处调入页面
对换区:读写速度更快,采用连续分配方式
文件区:读写速度更慢,采用离散分配方式

抖动/颠簸现象:刚刚换出的页面马上要换入内存,刚刚换入的页面马上要换出外存,这种频繁的页面调度行为称为抖动/颠簸
主要原因是进程频繁访问的页面数目高于可用的物理块数(分配给进程的物理块不够)

为进程分配物理块太少会使进程发生抖动现象,为进程分配的物理块太多会降低系统的并发度降低某些资源的利用率。因此提出了“工作集”的概念
工作集:在某段时间间隔里,进程实际访问页面的集合
驻留集:请求分页存储管理中给进程分配的内存块的集合
驻留集不能小于工作集,否则进程运行过程中将频繁缺页

linux里查看虚拟内存的命令是什么

free -m最后一排的swap就是虚拟内存

❻ 虚拟存储技术的指导思想是以时间换取空间对吗

1、虚拟存储管理概念
一个计算机任务只需要部分装入主存便可以启动运行,其余部分留在磁盘上,在需要的时候装入主存,这样可以提高主存空间的利用率。这样该系统所具有的主存容量会比实际主存容量大很多,这样的存储器称为虚拟存储器。
2、程序局部性原理
程序在执行时会呈现局部性规律,即在一段时间内,程序的执行仅局限于某个部分,相应所访问的空间也局限于某个区域内。程序的局限性表现在时间、空间两个方面。
2.1 时间局限性
指程序中的某个指令一旦执行,则在不久的将来可能会被再次执行;如果某个存储单元被访问,则不久后该存储单元可能会被再次访问。产生时间局限性的原因是程序中存在大量的循环处理。
2.2 空间局限性
指一旦程序访问了某个存储单元,在不久的将来,它附件的存储单元也有可能被访问。典型原因是程序是顺序执行的。
3、虚拟存储器的实现原理
虚拟存储器具有请求调入功能和置换功能,能仅把作业的一部分装入主存便运行作业系统,能从逻辑上对主存容量进行扩充的一种虚拟存储系统。其逻辑容量由主存和外存容量之和以及CPU可寻址的范围决定,运行速度接近主存速度。应用十分广泛。
3.1 虚拟存储器实现方式
1、请求分页系统
在分页系统的基础上增加了请求调页功能和页面装置功能所形成的页式虚拟存储系统。置换时以页面为单位。
2、请求分段系统
在分段系统的基础上增加了请求调段和分段置换功能所形成的段式虚拟存储系统。置换时以段为单位。
3、请求分页管理
请求分页是在纯分页系统的基础上增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统。是目前最常用的一种虚拟存储器的方式。
请求分页的页表机制是在纯分页的页表机制上形成的,因为只将应用程序的一部分调入主存,还有一部分仍在磁盘上,因此需要在页表中增加(状态位、访问字段和辅存地址等)供程序(数据)在转进、转出时参考。
请求分页系统中的地址变换机构是在分页系统的地址变换结构的基础上增加了某些功能。比如处理缺页中断、从主存中转出一页实现虚拟存储。
在请求分页系统中,每当所要访问的页面不在主存时便要产生一个缺页中断,请求系统将所缺的页调入主存,这个是由中断机构完成的。
3.1 缺页中断和一般中断的区别
1、缺页中断是在指令执行期间产生和中断处理信号;一般中断是在一条指令执行完。下一条指令执行前检查和处理中断信号。
2、发生缺页中断返回到被中断指令的开始重新执行该指令;

热点内容
安卓由哪个公司提供 发布:2024-04-30 12:27:03 浏览:415
服务器2个cpu的内存如何安装 发布:2024-04-30 12:19:02 浏览:327
如何搭建outlook服务器 发布:2024-04-30 10:46:50 浏览:636
美图忘记密码手机如何刷机 发布:2024-04-30 10:45:43 浏览:191
sql字符设置 发布:2024-04-30 10:39:03 浏览:306
androidram 发布:2024-04-30 10:36:06 浏览:281
购买的新车有哪些基本配置 发布:2024-04-30 10:27:32 浏览:324
远程访问摄像头 发布:2024-04-30 10:10:57 浏览:74
贴吧网站源码 发布:2024-04-30 10:10:42 浏览:252
饥荒为什么服务器模组不能用 发布:2024-04-30 10:10:41 浏览:552