当前位置:首页 » 服务存储 » 设一个物理存储器有4个页框
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

设一个物理存储器有4个页框

发布时间: 2022-12-22 10:00:47

⑴ 操作系统页式存储管理的问题

逻辑页面表示这是一个虚拟的储存空间,一个逻辑页面对应一个物理内存的页框,这个页框才是真正的物理存储所在。

⑵ 操作系统页式存储管理的问题

存储管理的基本原理内存管理方法
内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。
下面主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本概念和原理。
1. 连续分配存储管理方式
连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。
(1)单一连续存储管理
在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP/M和DOS 2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,例如对要求内存空间少的程序,造成内存浪费;程序全部装入,使得很少使用的程序部分也占用—定数量的内存。
(2)分区式存储管理
为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。分区式存储管理是把内存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。分区式存储管理虽然可以支持并发,但难以进行内存分区的共享。
分区式存储管理引人了两个新的问题:内碎片和外碎片。前者是占用分区内未被利用的空间,后者是占用分区之间难以利用的空闲分区(通常是小空闲分区)。为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。表中各表项一般包括每个分区的起始地址、大小及状态(是否已分配)。
分区式存储管理常采用的一项技术就是内存紧缩(compaction):将各个占用分区向内存一端移动,然后将各个空闲分区合并成为一个空闲分区。这种技术在提供了某种程度上的灵活性的同时,也存在着一些弊端,例如:对占用分区进行内存数据搬移占用CPU~t寸间;如果对占用分区中的程序进行“浮动”,则其重定位需要硬件支持。
1)固定分区(nxedpartitioning)。
固定式分区的特点是把内存划分为若干个固定大小的连续分区。分区大小可以相等:这种作法只适合于多个相同程序的并发执行(处理多个类型相同的对象)。分区大小也可以不等:有多个小分区、适量的中等分区以及少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。这种技术的优点在于,易于实现,开销小。缺点主要有两个:内碎片造成浪费;分区总数固定,限制了并发执行的程序数目。
2)动态分区(dynamic partitioning)。
动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。与固定分区相比较其优点是:没有内碎片。但它却引入了另一种碎片——外碎片。动态分区的分区分配就是寻找某个空闲分区,其大小需大于或等于程序的要求。若是大于要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为“占用”,而另一个分区为余下部分并标记为“空闲”。分区分配的先后次序通常是从内存低端到高端。动态分区的分区释放过程中有一个要注意的问题是,将相邻的空闲分区合并成一个大的空闲分区。
下面列出了几种常用的分区分配算法:
首先适配法(nrst-fit):按分区在内存的先后次序从头查找,找到符合要求的第一个分区进行分配。该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。但随着低端分区不断划分会产生较多小分区,每次分配时查找时间开销便会增大。
下次适配法(next-fit):按分区在内存的先后次序,从上次分配的分区起查找(到最后{区时再从头开始},找到符合要求的第一个分区进行分配。该算法的分配和释放的时间性能较好,使空闲分区分布得更均匀,但较大空闲分区不易保留。
最佳适配法(best-fit):按分区在内存的先后次序从头查找,找到其大小与要求相差最小的空闲分区进行分配。从个别来看,外碎片较小;但从整体来看,会形成较多外碎片优点是较大的空闲分区可以被保留。
最坏适配法(worst- fit):按分区在内存的先后次序从头查找,找到最大的空闲分区进行分配。基本不留下小空闲分区,不易形成外碎片。但由于较大的空闲分区不被保留,当对内存需求较大的进程需要运行时,其要求不易被满足。
2.覆盖和交换技术
引入覆盖(overlay)技术的目标是在较小的可用内存中运行较大的程序。这种技术常用于多道程序系统之中,与分区式存储管理配合使用。覆盖技术的原理很简单,一个程序的几个代码段或数据段,按照时间先后来占用公共的内存空间。将程序必要部分(常用功能)的代码和数据常驻内存;可选部分(不常用功能)平时存放在外存(覆盖文件)中,在需要时才装入内存。不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。覆盖技术的缺点是编程时必须划分程序模块和确定程序模块之间的覆盖关系,增加编程复杂度;从外存装入覆盖文件,以时间延长换取空间节省。覆盖的实现方式有两种:以函数库方式实现或操作系统支持。
交换(swapping)技术在多个程序并发执行时,可以将暂时不能执行的程序送到外存中,从而获得空闲内存空间来装入新程序,或读人保存在外存中而处于就绪状态的程序。交换单位为整个进程的地址空间。交换技术常用于多道程序系统或小型分时系统中,与分区式存储管理配合使用又称作“对换”或“滚进/滚出”(roll-in/roll-out)。其优点之一是增加并发运行的程序数目,并给用户提供适当的响应时间;与覆盖技术相比交换技术另一个显着的优点是不影响程序结构。交换技术本身也存在着不足,例如:对换人和换出的控制增加处理器开销;程序整个地址空间都进行对换,没有考虑执行过程中地址访问的统计特性。
3.页式和段式存储管理
在前面的几种存储管理方法中,为进程分配的空间是连续的,使用的地址都是物理地址。如果允许将一个进程分散到许多不连续的空间,就可以避免内存紧缩,减少碎片。基于这一思想,通过引入进程的逻辑地址,把进程地址空间与实际存储空间分离,增加存储管理的灵活性。地址空间和存储空间两个基本概念的定义如下:
地址空间:将源程序经过编译后得到的目标程序,存在于它所限定的地址范围内,这个范围称为地址空间。地址空间是逻辑地址的集合。
存储空间:指主存中一系列存储信息的物理单元的集合,这些单元的编号称为物理地址存储空间是物理地址的集合。
根据分配时所采用的基本单位不同,可将离散分配的管理方式分为以下三种
段式存储管理和段页式存储管理。其中段页式存储管理是前两种结合的产物。
(1)页式存储管理
1)基本原理。将程序的逻辑地址空间划分为固定大小的页(page),而物理内存划分为同样大小的页框(pageframe)。程序加载时,可将任意一页放人内存中任意一个页框,这些页框不必连续,从而实现了离散分配。该方法需要CPU的硬件支持,来实现逻辑地址和物理地址之间的映射。在页式存储管理方式中地址结构由两部构成,前一部分是页号,后一部分为页内地址,如图4-2所示。
这种管理方式的优点是,没有外碎片,每个内碎片不超过页大比前面所讨论的几种管理方式的最大进步是,一个程序不必连续存放。这样就便于改变程序占用空间的大小(主要指随着程序运行,动态生成的数据增多,所要求的地址空间相应增长)。缺点是仍旧要求程序全部装入内存,没有足够的内存,程序就不能执行。
2)页式管理的数据结构。在页式系统中进程建立时,操作系统为进程中所有的页分配页框。当进程撤销时收回所有分配给它的页框。在程序的运行期间,如果允许进程动态地申请空间,操作系统还要为进程申请的空间分配物理页框。操作系统为了完成这些功能,必须记录系统内存中
实际的页框使用情况。操作系统还要在进程切换时,正确地切换两个不同的进程地址空间到物理内存空间的映射。这就要求操作系统要记录每个进程页表的相关信息。为了完成上述的功能,—个页式系统中,一般要采用如下的数据结构。
进程页表:完成逻辑页号(本进程的地址空间)到物理页面号(实际内存空间)的映射。
每个进程有一个页表,描述该进程占用的物理页面及逻辑排列顺序。
物理页面表:整个系统有一个物理页面表,描述物理内存空间的分配使用状况,其数据结构可采用位示图和空闲页链表。
请求表:整个系统有一个请求表,描述系统内各个进程页表的位置和大小,用于地址转换也可以结合到各进程的PCB(进程控制块)里。
3)页式管理地址变换
在页式系统中,指令所给出的地址分为两部分:逻辑页号和页内地址。CPU中的内存管理单元(MMU)按逻辑页号通过查进程页表得到物理页框号,将物理页框号与页内地址相加形成物理地址(见图4-3)。上述过程通常由处理器的硬件直接完成,不需要软件参与。通常,操作系统只需在进程切换时,把进程页表的首地址装入处理器特定的寄存器中即可。一般来说,页表存储在主存之中。这样处理器每访问一个在内存中的操作数,就要访问两次内存。第一次用来查找页表将操作数的逻辑地址变换为物理地址;第二次完成真正的读写操作。这样做时间上耗费严重。为缩短查找时间,可以将页表从内存装入CPU内部的关联存储器(例如,快表)中,实现按内容查找。此时的地址变换过程是:在CPU给出有效地址后,由地址变换机构自动将页号送人快表,并将此页号与快表中的所有页号进行比较,而且这种比较是同时进行的。若其中有与此相匹配的页号,表示要访问的页的页表项在快表中。于是可直接读出该页所对应的物理页号,这样就无需访问内存中的页表。由于关联存储器的访问速度比内存的访问速度快得多。
(2)段式存储管理
1)基本原理。
在段式存储管理中,将程序的地址空间划分为若干个段(segment),这样每个进程有一个二维的地址空间。在前面所介绍的动态分区分配方式中,系统为整个进程分配一个连续的内存空间。而在段式存储管理系统中,则为每个段分配一个连续的分区,而进程中的各个段可以不连续地存放在内存的不同分区中。程序加载时,操作系统为所有段分配其所需内存,这些段不必连续,物理内存的管理采用动态分区的管理方法。在为某个段分配物理内存时,可以采用首先适配法、下次适配法、最佳适配法等方法。在回收某个段所占用的空间时,要注意将收回的空间与其相邻的空间合并。段式存储管理也需要硬件支持,实现逻辑地址到物理地址的映射。程序通过分段划分为多个模块,如代码段、数据段、共享段。这样做的优点是:可以分别编写和编译源程序的一个文件,并且可以针对不同类型的段采取不同的保护,也可以按段为单位来进行共享。总的来说,段式存储管理的优点是:没有内碎片,外碎片可以通过内存紧缩来消除;便于实现内存共享。缺点与页式存储管理的缺点相同,进程必须全部装入内存。
2)段式管理的数据结构。
为了实现段式管理,操作系统需要如下的数据结构来实现进程的地址空间到物理内存空间的映射,并跟踪物理内存的使用情况,以便在装入新的段的时候,合理地分配内存空间。
·进程段表:描述组成进程地址空间的各段,可以是指向系统段表中表项的索引。每段有段基址(baseaddress)。
·系统段表:系统所有占用段。
·空闲段表:内存中所有空闲段,可以结合到系统段表中。
3)段式管理的地址变换。
在段式管理系统中,整个进程的地址空间是二维的,即其逻辑地址由段号和段内地址两部分组成。为了完成进程逻辑地址到物理地址的映射,处理器会查找内存中的段表,由段号得到段的首地址,加上段内地址,得到实际的物理地址(见图4—4)。这个过程也是由处理器的硬件直接完成的,操作系统只需在进程切换时,将进程段表的首地址装入处理器的特定寄存器当中。这个寄存器一般被称作段表地址寄存器。
4.页式和段式系统的区别
页式和段式系统有许多相似之处。比如,两者都采用离散分配方式,且都通过地址映射机构来实现地址变换。但概念上两者也有很多区别,主要表现在:
·页是信息的物理单位,分页是为了实现离散分配方式,以减少内存的外零头,提高内存的利用率。或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了更好地满足用户的需要。
·页的大小固定且由系统决定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的。段的长度不固定,且决定于用户所编写的程序,通常由编译系统在对源程序进行编译时根据信息的性质来划分。
·页式系统地址空间是一维的,即单一的线性地址空间,程序员只需利用一个标识符,即可表示一个地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。


原理作业10. 页式存储管理和段式存储管理的工作原理特点、特点
及优劣。

答:页式管理的基本思想是:为了更好地利用分区存储管理中
所产生的"零头"问题,允许把一个作业存放在不连续的内存块中,
又可以连续运行,它允许只调入用户作业中常用部分,不常用部分
不长期驻留内存,有效提高了内存的利用率。

页式存储管理的工作原理:
A、划分实页:将物理内存划分成位置固定、大小相同的"块"(实页
面)。
B、划分虚页:将用户逻辑地址空间也分成同样大小的页面,成为虚
拟空间的虚页面。
C、建立页表:有时称为页面表或页面映射表(PMT)。每个作业一
张,按虚页号进行登记,其基本的内容有特征位(表示该页是否
在内存、实页号以及对应外存的地址。
D、地址变换:将虚页面的逻辑地址转化为实页面的物理地址,在程
序执行时改变为物理地址,属于作业的动态重定位,一般由地址
转换机构(硬件)完成。

特点:
允许一个作业存放在不连续的内存块中而又能保证作业连续得以运行
,既不需要移动内存中的信息,又可较好地解决零头。

优点:
a、不要求作业存放在连续的内存块中,有效地解决零头。
b、允许用户作业不是一次集中装入内存而是根据需要调入,作业中
不常用部分不长期驻留内存,而本次运行的不用部分根本就不装
入内存。
c、提供了虚存,使用户作业地址空间不再受内存可用空间大小的限
制。

缺点:
a、页式管理在内存的共享和保护方面还欠完善。
b、页面大小相同,位置不能动态增加。
c、往往需要多次缺页中断才能把所需的信息完整地调入内存。

段式存储管理的基本思想是:把程序按内容或过程(函数)关系
分成段,每段有自己的名字。一个用户作业或进程所包含的段对应于
一个二维线性虚拟空间,也就是一个二维虚拟存储器。段式管理程序
以段为单位分配内存,然后通过地址映射机构把段式虚拟存储地址转
化为内存中的实际地址。和页式管理一样,段式管理也采用只把那些
经常访问的段驻留内存,而把那些在将来一段时间内不被访问的段放
在外存,待需要时自动调入内存的方法实现二维虚拟存储器。按照作
业的逻辑单位--段,来分配内存,适合程序的逻辑结构,方便用户设
计程序。

段式存储管理的工作原理:
A、采用二维地址空间,如段号(S)、页号(P)和页内单元号(D);
B、系统建两张表格每一作业一张段表,每一段建立一张页表,段表
指出该段的页表在内存中的位置;
C、地址变换机构类似页式机制,只是前面增加一项段号。

特点:
a、每一段分成若干页,再按页式管理,页间不要求连续;
b、用分段方法分配管理作业,用分页方法分配管理内存;

优点:
便于段的共享和保护、段的动态增长以及动态连接。

缺点:
为了消除零头和允许段的动态增长,需要花费CPU的大量时间在内存
中移动作业的分段,而且段的大小也给外存管理带来困难。

⑶ 在一个虚拟存储器中,主存容量400B,划分为4页,采用LRU 页面置换算法

(1)0 ,2,1,6,2,4,4,1,0,1
(2)LRU算法
0 ,2,1,6,2,4,4,1,0,1
0: 0, 0, 0,0,0 ,4,4,4,4,4
1: 2,2,2, 2, 2,2,2, 2,2
2: 1,1,1, 1,1, 1 ,1, 1
3 : 6,6, 6, 6, 6, 0, 0

(3)由上可知:虚地址流对应的实页面依次为:0,1,2,3,1,0,0,2,3,2
则实地址为:0*100+22=22,1*100+14=114,2*100+46=246,3*100+18=318,等等
(4)命中率:1-6/10=0.4
(5)书上有详解

⑷ 现有一请求分页的虚拟存储器,内存最多容纳4个页面,对于下面的引用串:1、2、3、4、5、3、4、1、6、7、8

答案 14 10 8

⑸ 为什么80C51单片机存储器在物理结构上可分4个空间,在逻辑上只有3个

所谓的四个空间是:片内程序存储区、片外程序存储区、片内数据存储区、片外数据存储区。
片内程序存储区和片外程序存储区是统一编址的,所以在逻辑上只有三个:
片内数据存储区、片外数据存储区和片内外统一编址的程序存储区。

⑹ 请教下,操作系统里分页存储的页框和页号有什么区别啊

假设你要运行一个4MB的游戏,为了方便易懂,不妨把这个游戏叫做扫雷。

现在是2021年,早已是大内存时代,16GB的内存已经司空见惯。

但是现在我们假设我们的内存并不大,只有16MB。

你的游戏本来存储在硬盘中,操作系统划分了一部分硬盘中的区域,假设是16MB,和内存构成了一个看起来比较大的存储器,总共32MB。

但其实你没这么大的空间。

操作系统按照事先定好的页面大小(这里假设是1MB)把你的游戏分割成了4MB/1MB=4页。

未调入内存中运行,在虚拟存储系统中,你总共有4页,这4页,就叫页号。

操作系统把真正的内存空间,16MB,也按页划分,总共有16页,现在可以分给你的扫雷用的,有2页。

你的扫雷运行时,并不是时时刻刻都需要4MB的完整数据,假如你正在玩第一关,你就只需要前面的数据。

按照这样的思想,就可以先调入你刚刚分好的4页中的前2页,进入内存,这样你的扫雷就可以跑了,也不需要占据太多空间,导致别的程序用不了。

而被调入的2页,占了真正内存中的2页,内存中的页,就叫页框。

当你需要用到本来4页中的第2页中的某个数据时,他已经在内存中了,你可以随时用。

但如果你要用第3页的里的某个数据,他不在内存,只能先从硬盘中调入第3页到内存中分配给你的2个页框中的某一个,再访问这个数据。

这个就叫缺页

为了区分说的页是内存中的页,还是虚拟存储系统中的页,就有了两个叫法。


那为什么要这么干呢?因为你需要同时做很多事情。

你需要玩扫雷,还要挂着迅雷,同时上着QQ聊天,可能还用着网易云听歌。

如果扫雷、迅雷、QQ、网易云全部调入主存,很多数据是用不着的。

比如你在玩扫雷第三关,你并不需要第一关的数据。

那全都调入,就很浪费内存。需要调入,不需要调出,这样,你的程序能跑,而且还能跑很多个。

你的存储器看起来比原来大了,因为你本来的内存是无法同时跑这4个程序,现在靠着这个假的存储器就可以了,这个所谓假的存储器就叫虚拟存储器

⑺ 分页式存储器的地址分成页号和页内地址两部分,但它仍是线性地址.为什么

分页式存储管理的基本原理:采用分页存储器允许把一个作业存放到若干不相邻的分区中,既可免去移动信息的工作,又可尽量减少主存的碎片。分页式存储管理的基本原理如下: 1、 页框:物理地址分成大小相等的许多区,每个区称为一块

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

(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

⑼ 基本分页存储管理

  阅读前请先阅读 内存管理基础 。从本文开始就介绍不连续分配的几种方式,本文主要介绍基本分页存储管理。

  假设进程A的大小为23MB,但是每个分区的大小只有10MB,如果进程只能占用一个分区,显然是放不下的。
  解决思路:如果允许进程占用多个分区,那么可以把进程拆分成 10MB + 10MB + 3MB三个部分 ,再把这三个部分别放在三个分区中(这些分区不要求连续).....

  将内存空间分为一个个大小相等的分区(如每个分区4KB,每个分区就是一个 “页框” ,或称 “内存块” “物理块” 。每个页框有一个编号,即 “页框号” ,或 “内存块号” “物理块号” ,页框号 从0开始 )。将用户进程的地址空间也分为与页框大小相等的一个个区域,称为 页面 。页框的大小不能太大,否则可能会产生过大的内存碎片。
  操作系统 以页框为单位为各个进程分配内存空间。 进程的每个页面分别放入一个页框中,即进程的 页面和内存的页框 一一对应 的关系。

  进程分页后,进程的各个页面可以放在不连续的页框中,所以如何实现逻辑地址到物理的地址的转换?
  如下图,将下面的进程分页,假设每页大小为50B,那么就分为4个页面。

  手动计算方法:
   页号 = 逻辑地址 / 页面长度(取整数部分)。
   页内偏移量 = 逻辑地址 % 页面长度
   页面在内存中的起始位置 :操作系统需要用某种数据结构记录进程各个页面的起始位置。
  对于计算机,通常将 页面的大小划分为2的整数次幂 。假设用32个二进制位表示逻辑地址,页面大小为取2 12 B = 4096B = 4KB。

  如逻辑地址2,用二进制表示00000000 00000000 0000 0000 00000010 ,前24位二进制对应的十进制值就是逻辑地址2对应的页号,即0号页,而后12二进制位对应的十进制值就是偏移量。如果0号页在内存中的起始地址为X,那么逻辑地址2对应的物理地址就是 X + 2.
  同理,逻辑地址4097,用二进制表示00000000 00000000 0001 0000 00000001 ,前24位二进制对应的十进制值就是逻辑地址4097对应的页号,即1号页,而后12二进制位对应的十进制值就是偏移量。如果0号页在内存中的起始地址为Y,那么逻辑地址4097对应的物理地址就是 Y + 1.
  结论: 如果每个页面的大小为2 k B,用二进制表示逻辑地址,则末尾的K位表示页内偏移量,其余部分就是页号。
  因此,如果让 每个页面的大小为2的整数次幂, 计算机就可以很方便的得出一个逻辑地址对应的页号和页内偏移量。
  如果一个页面的大小为2KB,那分页存储管理的逻辑地址结构为:

  地址结构包括两个部分:前一个部分表示页号,后一个部分表示页内偏移量W。

  在知道如何计算页号和偏移量后,要计算实际的物理地址,还需要知道页号在内存中的起始地址,如何知道每个页面在内存中存放的位置——操作系统要为 每个进程建立一张页表。

  按照之前的方法计算出逻辑地址所对应的页号N,然后根据页表区查询实际的内存块号M,由于每个内存块号的大小都是相等的,所以实际地址 = M * 内存块大小 + 偏移量。

  在实际上,页表中是没有页号的,那怎么找到实际对应的内存块号呢?
  假设某系统物理内存大小为4GB,页面大小为4KB,则每个页表项至少应该占用多少字节?

  各页表项会 按顺序连续地 存放在内存中,如果该页表在内存中存放的地址为X,则M号页对应的页表项存放的地址为:X + M * 3B
  因此,页表的页号可以是隐含的。只需要知道 页表存放的起始地址 页表项长度 ,即可找到各个页号对应的页表项存放的位置,找到位置后就可以读取该位置的值,即实际内存块号。
  举个例子,如果按照逻辑地址计算出了偏移量为20,页号为1,页表中的页号是隐藏的,那么根据页表在内存中的起始地址20(假设的值),以及页表项长度3B,那么页号为1所对应的实际内存块号的值所在的地址就是:20 + 3 * 1 = 23的位置,然后在该位置的值,该值就是实际内存块号,如果是4的话,那么实际地址就是: 4 * 页面大小(4096B) + 20 = 16404。

  基本地址变换结构可以借助进程的页表将逻辑地址转换为物理地址。
  通常在系统中设置一个 页表寄存器(PTR Page-Table Register) ,存放 页表在内存中起始地址F 页表长度M
  进程在未执行时,页表的起址和页表长度放在 进程控制块(PCB)中 ,当进程被调度时,操作系统内核会把它们放在页表寄存器中。

  逻辑地址到物理地址变换的过程:

  比较页表长度,页表项长度和页面大小三个概念:

  在分页存储管理(页式管理)系统中,只要确定了每个页面的大小,逻辑地址结构就确定了。因此, 页式管理中地址是一维的。 即只要给出一个逻辑地址,系统就可以自动算出页号、页内偏移量两个部分,并不需要显示告系统这个逻辑地址中,页内偏移量占多少位。
  基本地址变换结构需要访问两次内存: 第一次访问内存查找页表;第二次访问物理内存对应的内存单元。

  对于上图,会很频繁地访问10号块中的指令、23号块。
   时间局部性 :如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行:如果某个数据被访问过,不久之后该数据很有可能再次被访问。(因此程序中存在大量循环)。
   空间局限性 :一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也很有可能被访问。(因为很多数据在内存中都是连续存放的。如上面的数组,每次循环一次都会访问邻近的下一个元素地址)。
  在基本地址变换机构中,每次访问一个逻辑地址,都需要查询内幕才能中的页表。由于局部性原理,可能连续很多次查找到的都是一个页表项。既然如此,就可以利用这个特性减少访问页表的次数——快表。

   快表 ,又称 联想寄存器(TLB) ,是一种 访问速度比内存快很多 的高速缓冲存储器,用来存储当前访问的若干页表项,以加速地址变换的过程。与此对应,内存中的页表常称为 慢表。
  快表的地址包换过程:
  (1) CPU给出逻辑地址,由某个硬件算得页号、页内偏移量,将页号与快表中的所有页号进行比较。
  (2) 如果找到匹配的页号,说明要访问的页表项在快表中有副本,则直接从中取出该页对应的内存块号,再根据内存块号中与页内偏移量算地物理地址。最后访问该物理地址对应的内存单元。因此如果快表命中,则访问某个逻辑地址只需 一次 访问内存即可。
  (3) 如果没有找到匹配的页号,则就需要访问页表,需要两次访问内存,在第一次访问内存查询得到页号后,需要将页号添加到快表中,以便后面再次被访问。如果快表已满,则必须按照一定的算法对旧的页表项进行替换。
  由于查询快表比查询页表的速度快很多,因此只要快表命中,就可以节省很多时间。因为局部性原理,一般来说快表的命中率可以达到90%以上。

⑽ 2010年微机原理与接口技术试题及答案

微型计算机原理与接口技术2006年考试题及答案B
一. 选择(每题1分)

下列各题四个选择项中,只有一个选项是正确的。请将正确选项号写在相应空位置上。

1.系统总线又称为_______,这是指模块式微处理机机箱内的底版总线。

1)主板总线 2)内总线 3)片内总线 4)局部总线

2.目前市场上出售的台式PC机中Pentium 4微处理器的主频一般为

1) 0.5GHz左右 2)1GHz左右 3)3GHz左右 4)5GHz以上

3. .按诺依曼结构理论,下面哪个不是计算机组成部分:

1) 运算器2)控制器3)打印机4)复印机

4.程序设计人员不能直接使用的寄存器是__________

1) 通用寄存器2)指令指针寄存器3)标志寄存器4)段寄存器

5. Pentium微处理器的结构之所以称为超标量结构,是因为下面哪一种原因?

1)Pentium微处理器不仅能进行32位运算,也能进行64位运算

2)Pentium微处理器内部含有多条指令流水线和多个执行部件

3)数据传输速度很快,每个总线周期最高能传送4个64位数据

4)微处理器芯片内部集成的晶体管数超过100万个,功耗很大

6.在任何时刻,存储器中会有一个程序是现役的,每一个现役程序最多可以使用___________

① 3个段② 4个段③ 5个段④ 6个段

7.Pentium微处理机配备了5个控制寄存器。其中没有定义,而供将来使用的是__________

1)CR1 2) CR2 3)CR3 4)CR4

8.Pentium地址总线是32位的,它的内部数据总线的宽度是:

1)16位 2)32位 3)64位 4)36位

9.Pentium的寄存器可分为浮点寄存器、系统级寄存器等___大类。

1) 2 2) 3 3) 4 4) 5

10.属于系统级寄存器的是________。

1) 系统地址寄存器和控制寄存器2) 通用寄存器和系统地址寄存器

3) 通用寄存器和控制寄存器4) 系统地址寄存器和段寄存器

11. 下面是关于CPU与 Cache 之间关系的描述,其中正确的一条描述是:

1)Cache中存放的是主存储器中一部分信息的映像

2)用户可以直接访问Cache

3)片内Cache要比二级Cache的容量大得多

4)二级Cache要比片内Cache的速度快得多

12. 在保护方式下,段寄存器内存放的是_________。

1) 段基址 2) 段选择符 3) 段描述符 4) 段描述符表基址

13. 通常,人们把用符号表示计算机指令的语言称为——————。

1) 机器语言 2) 汇编语言 3) 模拟语言 4) 仿真语言

14. Pentium系统之所以为超标量计算机是因为采用了___________。

1) 并行流水线结构 2) 数据与指令分离的Cache结构

3) 转移预测技术 4 ) 提高了时钟频率

15.Pentium系统内约定,一个字的宽度是___。

1) 1字节 2) 2字节 3) 4字节 4) 8字节

16.Pentium用来作为堆栈指针的寄存器是:

1)EIP寄存器 2)EBP 寄存器 3)ESP寄存器 4)EDI寄存器

17.Pentium微处理机可访问的物理存储器的范围是__________。

1) 4GB 2) 64TB 3) 4MB 4) 16GB

18.存储管理是由分段存储管理和__________组成。

1)分段部件 2)分页部件 3)分页存储管理 4)虚拟管理

19. Pentium微处理机的分页存储管理系统把页的大小定义成__________。

1) 16KB 2) 4MB 3)4KB 4) 4GB

20.经分段存储管理部件分段之后生成的线性地址由__________与12位偏移量组成。

1) 段地址寄存器和10位页目录索引 2) 段描述符表和10位页表索引

3) 10位页目录索引和10位页表索引 4) 10位页表索引和虚拟地址

21.段选择符(段寄存器)中请求特权级字段共__________位。

1)1位 2) 2位 3) 3位 4) 4位

22.多段存储管理方式中,每一个程序都拥有它自己的__________,以及多种属于它自己的存储器段。

1) 段描述符 2) 段选择符 3) 段选择符和段描述符 4) 段描述符寄存器

23.符合汇编语言变量命名规则的变量名是__________。

1) MOV 2) CX 3)DATA 4)LPT1

24. Pentium微处理机是———微处理机

1)16位。2)32位。3)64位。4)准64位。

25.Pentium 微处理机配置的超标量执行机构允许————以并行方式执行。

1)一条指令 2)两条指令 3)三条指令 4)四条指令

26.Pentium标志寄存器上各标志位信息反映的是———。

1)寄存器堆栈中每一寄存器中的内容。

2)Pentium微处理机的状态信息。

3)Cache操作信息。

4)存储器状态信息。

27.当前,在Pentium机中,常用来在系统中的各部件之间进行高速数据传输操作的系统总线是:

1)ISA 2)EISA 3)PCI 4)VESA

28.下面关于微处理器的叙述中,错误的是

1)微处理器是用单片超大规模集成电路制成的具有运算和控制功能的处理器

2)一台计算机的CPU可能由1个、2个或多个微处理器组成

3)日常使用的PC机只有一个微处理器,它就是中央处理器

4)目前巨型计算机的CPU也由微处理器组成

29.Pentium机中的寄存器、Cache、主存储器及辅存储器,其存取速度从高到低的顺序是:

1) 主存储器, Cache,寄存器,辅存 2)快存,主存储器,寄存器,辅存

3) 寄存器, Cache,主存储器,辅存 4)寄存器,主存储器,Cache,辅存

30.用MB(兆字节)作为PC机主存容量的计量单位,这里1MB等于多少字节?

1) 210 2) 220 3) 230 4) 240

31.Pentium 微处理器在保护模式下对存储器进行访问时,段寄存器提供的是

1) 段选择符 2) 段基址

3) 段描述符 4) 偏移地址

32.下面是关于PCI总线的叙述,其中错误的是

1) PCI支持即插即用功能

2) PCI的地址线与数据线是复用的

3) PCI总线是一个16位宽的总线

4) PCI是一种独立于处理器的总线标准,可以支持多种处理器

33.Pentium微处理器在实施分页存储管理时,其最小页面的大小是

1) 256B 2) 4KB 3) 1MB 4) 4MB

34.下面关于总线的叙述中,错误的是

1) 总线的位宽指的是总线能同时传送的数据位数

2)总线标准是指总线传送信息时应遵守的一些协议与规范

3) Pentium机中的PCI总线不支持成组传送方式

4) 总线的宽带是指每秒钟总线上可传送的数据量

二.选择填空(每空1分)

1.Pentium微处理机的段寄存器(也称段选择符)是———位的寄存器,用它可选择

----------------个段的逻辑地址。

(1)32位(2)16位(3)8位(4)64位

(5)16KB(6)64TB(7)4GB (8)3.2GB

2.. Pentium 微处理机实现的是———和———两级存储管理。

(1)主存储器(2)磁盘(3)分段管理(4)Cache

(5)分页管理(6)二级Cache

3. 在保护方式下,Pentium微处理机可以访问———字节虚拟存储器地址空间和

———————字节实地址存储器空间。

(1)256KB(2)512KB(3)1MB(4)512MB(5)1GB

(6)4GB(7)21GB(8)32GB(9) 1TB(10) 32TB

(11) 64TB(12) 16TB 注:GB = 千兆TB = 兆兆

4.Pentium 微处理机段的转换过程是,由系统给出的地址以及程序给出的地址都是————,它是

由————和————组成。

(1)实地址(2)逻辑地址(3)一个32位的基地址(4)一个16位的

段选择符(5)一个只能在段内使用的32位的偏移量(6)20位的段的界限

5.Pentium 微处理机共配备有————段寄存器,它们都是————的寄存器,它们的作用是用来——。

(1) 8个(2) 16个(3)6个(4) 32位的(5)16位

(6)从寄存器中选出所需的地址(7)从段描述符表中选出所需的段描述符

(8)从段描述符中选出32位的基地址(9)从段描述符中选出段的界限。

6.Pentium 微处理机浮点部件寄存器堆栈是由————个、————位的寄存器构成。

(1) 16个(2)32个(3)8个(4)3个(5)16位

(6)32位(7)64位(8)80位

7.Pentium 微处理机浮点部件的状态字寄存器内容反映的是————。

(1)浮点部件的全部状态和环境(2)浮点部件的数值(3)浮点部件的总

线状态(4)Pentium 微处理机的状态和环境

8.总线是一种————,是由系统中各部件所共享,在————的控制之下将信息准确地传

送给————。

(1)公共信号(2)数据通道(3)专用地信号连线(4)主控设备

(5)中断源(6)从属设备(7)信号源(8)存储器

(9)寄存器

三. 填空题:(每空1.分)

1.目前微型计算机的基本工作原理是__________的原理,其基本结构属于冯·诺依曼结构。

2.Pentium的指令指针寄存器EIP中存放的是____________________。

3.运算器中进行的各种算术运算操作归结为__________两种最基本的操作。

4.Pentium微处理机规定了4个寄存器用于控制分段存储器管理中的数据结构位置。其中GDTR和IDTR称为___寄存器,LDTR和TR称为__________寄存器。

5.中断包括__________INTR和__________NMI。

6. 指出下列指令语句中源操作数是__________;目的操作数是__________。

MOV AX,0CFH

7.假设BX寄存器上的内容为0100H,下列指令执行后AX寄存器的内容分别是什么?

MOV AX, 1200H;(AX)=________

MOV AX, BX;(AX)=__________

ADD AX, BX;(AX)=__________

8.总线操作周期的4个操作阶段分别是————,————,——————,————。

四 . 判断题(对:√;错:×)(每题1分)

Pentium系统属于RISC类微处理机。
RISC类的微处理机,为了减少访问内存的次数而增加寄存器的数目。
Pentium数据寄存器可以存放8、16、32位二进制数据。
Pentium系统的段寄存器为32位寄存器。
Pentium的V流水线和U流水线都可执行任何指令。
对一个段进行访问,必须将这个段的描述符装入到段寄存器中。
Pentium段描述符是由8个字节共64个二进制位组成。
Pentium分段用于程序保护,分页用于把程序映射到大小固定的虚拟页上。
Pentium在进行分页转换中,页目录项的高20位页框地址是与物理存储器中的物理页是相对应的。
线性地址是同一标准的不分段的地址空间内的32位地址。
利用索引字段可以从拥有210个段描述符的段描述符表中选出任何一个段描述符。
Cache的命中率是指命中Cache的次数与访问Cache的次数之比。
当程序有高度的顺序性时,Cache更为有效。
Pentium处理机是32位微处理机,因此其内部数据总线是32位的。
RISC类微处理机采用大量通用寄存器,从根本上提高了CPU的运算速度,尤其适于在多任务处理的环境。
系统地址寄存器只能在保护方式下使用,所以又称其为保护方式寄存器。
异常是指微处理机检测到的异常情况,异常又进一步地划分为故障,自陷和异常终止三种。
运算器是存储信息的部件,是寄存器的一种。
通常,微处理机的控制部件是由程序计数器、指令寄存器、指令译码器、时序部件等组成。
Pentium微处理机配备有5个32位的控制寄存器:CR0、CR1、CR2、CR3、CR4。保存着跟任务有关的适合于所有任务的机器状态。
在Pentium微处理机的指令指针寄存器EIP内存放着下一条要执行的指令
在全局描述符表 GDT(Global Descriptor Table)中存放供所有程序共用的段描述符。
五.简答题

1.什么是超标量技术?试说明超标量技术在Pentium上是怎样实现的?(3分)

2.试简单说明Pentium将逻辑地址转换成物理地址的过程。(3分)

3.试简单说明Pentium浮点部件的流水线操作8个操作步骤及操作过程。(4分)

一.答案:

1.(2)2 .(3)3. (4)4. (3)5. (2)

6.(4)7. (1)8.(3) 9 .3) 10 .1)

11 .(1) 12.2) 13.2) 14.1) 15.2)

16.3) 17 .1) 18. 3) 19.3) 20.3)

21.2) 22.1) 23.4) 24.2) 25.2)

26.2) 27.3) 28.1) 29.3) 30.2)

31 1) 32 3) 33 2) 34 3)

二.答案:

1. 2) ,5) 2.3), 5) 顺序可以换

3.11) ,6) 4. 2),4) ,5)

5.3) 5) 7) 6. 3),8)

7. 1) 8.2),4),6)

三.答案

存储程序控制
当前代码段内下一条要执行指令的偏移量
相加和移位
全局描述符表和中断描述符表局部描述符表和任务状态
可屏蔽、不可屏蔽中断
AX 0CFH
1200H 0100H 0200H
总线请求和仲裁阶段 寻址阶段 数据传送阶段 结束阶段
四.答案:

1. 错2. 对3. 对4. 错5. 错

6. 错7. 对8. 错9. 错10对

11错 12 对 13错 14错 15错

16对 17对 18错 19对 20错

21错 22对

五.答案

1.什么是超标量技术?试说明超标量技术在Pentium上是怎样实现的?(3分)

在一个时钟周期内同时执行一条以上的指令(或在一个时钟周期内同时执行2条指令)的技术,称为超标量技术。

在Pentium上,采用了U流水线和V流水线,从而实现了超标量操作运行。

2.试简单说明Pentium将逻辑地址转换成物理地址的过程。(3分)

系统或程序给出的地址都是逻辑地址,经由分段部件,将逻辑地址转换成线性地址,若不分页,这个线性地址就是物理地址。

若需要分页,则再由分页部件,将线性地址转换成物理地址。

3.试简单说明Pentium浮点部件的流水线操作8个操作步骤及操作过程。(4分)

Pentium的浮点部件也采用了流水线操作技术,流水线操作由8个操作步骤组成:

预取PF,首次译码D1,二次译码D2,存储器和寄存器的读操作EX,

首次执行X1,二次执行X2,写浮点数WF和出错报告ER。

其中,预取PF和首次译码D1与整数流水线中的前两个操作步骤共用,浮点部件的第3

个操作步骤开始激活浮点指令的执行逻辑,然后执行后5个操作步骤。