导航:首页 > 物理学科 > 什么是页面和物理快

什么是页面和物理快

发布时间:2023-04-08 20:51:53

1. 什么是页面 什么是物理块

什么是页面 什么是物理块
页面,物理块——分页存储管理方式中的单元在分页方式中,用户程序的地址空间被划分成若干个固定大小的区域,称为“页”(或“页面”).相应地

2. 基本分页存储管理方式的页面与页表

1) 页面和物理块
分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,从0开始,如第0页、第1页等。相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame),也同样为它们加以编号,如0#块、1#块等等。在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。由于进程的最后旅缺一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”。
2) 页面大小
在分页系统中的页面其大小应适中。页面若太小,一方面虽然可使内存碎片减小,从而减少了内存碎片的总空间,有利于提高内存利用率,但另一方面也会使每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存;此外,还会降低页面换进换出的效率。然而,如果选择的页面较大,虽然可以减少页表的长度,提高页面换进换出的速度,但却又会使页内碎片增大。因此,页面的大小应选择适中,且页面大小应是2的幂,通常为512 B~8 KB。 分页地址中的地址结构如下:
对于某特定机器,其地址结构是一定的。若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P和页内地址d可按右图所示公式求得:
其中,INT是整除函数,MOD是取余函数。例如,其系统的页面大小为1 KB,设A = 2170 B,则由上式可以求得P = 2,d = 122。 页表的功能可以由一组专门的寄存器来实现。一个页表项用一个寄存器。由于寄存器具有较高的访问速度,因而有利于提高地址变换的速度;但由于寄存器成本较高,且大多数现代计算机的页表又可能很大,使页表项的总数可达几千甚至几十万个,显然这些页表项不可能都用寄存器来实现,因此,页表大多驻留在内存中。在系统中只设置一个页表寄存器PTR(Page-Table Register),在其中存放页表在内存的始址和页表的长度。平时,进程未执行时,拆慎辩页表的始址和页表长度存放在本进程的PCB中。当调度程序调度到某进程时,才将这两个孝喊数据装入页表寄存器中。因此,在单处理机环境下,虽然系统中可以运行多个进程,但只需一个页表寄存器。
当进程要访问某个逻辑地址中的数据时,分页地址变换机构会自动地将有效地址(相对地址)分为页号页内地址两部分,再以页号为索引去检索页表。查找操作由硬件执行。在执行检索之前,先将页号与页表长度进行比较,如果页号大于或等于页表长度,则表示本次所访问的地址已超越进程的地址空间。于是,这一错误将被系统发现并产生一地址越界中断。若未出现越界错误,则将页表始址与页号和页表项长度的乘积相加,便得到该表项在页表中的位置,于是可从中得到该页的物理块号,将之装入物理地址寄存器中。与此同时,再将有效地址寄存器中的页内地址送入物理地址寄存器的块内地址字段中。这样便完成了从逻辑地址到物理地址的变换。右图示出了分页系统的地址变换机构。 由于页表是存放在内存中的,这使CPU在每存取一个数据时,都要两次访问内存。第一次是访问内存中的页表,从中找到指定页的物理块号,再将块号与页内偏移量W拼接,以形成物理地址。第二次访问内存时,才是从第一次所得地址中获得所需数据(或向此地址中写入数据)。因此,采用这种方式将使计算机的处理速度降低近1/2。可见,以此高昂代价来换取存储器空间利用率的提高,是得不偿失的。
为了提高地址变换速度,可在地址变换机构中增设一个具有并行查寻能力的特殊高速缓冲寄存器,又称为“联想寄存器”(Associative Memory),或称为“快表”,在IBM系统中又取名为TLB(Translation Lookaside Buffer),用以存放当前访问的那些页表项。此时的地址变换过程是:在CPU给出有效地址后,由地址变换机构自动地将页号P送入高速缓冲寄存器,并将此页号与高速缓存中的所有页号进行比较,若其中有与此相匹配的页号,便表示所要访问的页表项在快表中。于是,可直接从快表中读出该页所对应的物理块号,并送到物理地址寄存器中。如在块表中未找到对应的页表项,则还须再访问内存中的页表,找到后,把从页表项中读出的物理块号送地址寄存器;同时,再将此页表项存入快表的一个寄存器单元中,亦即,重新修改快表。但如果联想寄存器已满,则OS必须找到一个老的且已被认为不再需要的页表项,将它换出。右图示出了具有快表的地址变换机构。

3. 什么是页面文件和快照

页面文件(pagefile.sys)也称虚拟内存,就是在硬盘上拿出(设定出)一部分空间作为暂不被调用程序或叫“惰性”程序及相关数据的临时存放空间。因内存容量总是有限,而实际运行的程序会很多,若都塞在内存中会大量占用有限的内存资源,不利于系统正常、快速、流畅地调用、运行急需的程序及数据。于是系统就开辟出一部分硬盘空间将惰性程序及相关数据暂时存放于此,而让即将被调用的程序或称“活性”程序及数据存留在内存中方便马上调用;而页面文件中暂存的“惰性程序”及数据待CPU需要调用时再与内存交互,如此即为页面文件的工作原理。页面文件像内存一样起到中间暂存、交换作用又是硬盘空间的一部分,所以又叫虚拟内存。

2。
页面文件如同文件夹中常见文件一样,是实实在在存在的文件,只是为安全起见系统将其默认为隐藏文件,显示后一般可在厅明系统盘根目录中见到名为pagefile.sys的文件,它就是页面文件。

3。
要修改页面文件(虚拟内存)的存放位置及大小,对XP而言:可在“我的电脑”上右击选“属性”—“高级”选项卡里的“性能”选项框中—“设置”—“高级”—“虚拟内存”框中—“更改”即来到虚拟内存设置窗口(WIN2000进入类似)。要先确定你的页面文件在哪个驱动器盘符,然后将别的盘符驱动器的页面文件全部禁用,可保留一个页面文件。微软的默认设置是,页面族伏贺文件最小值应为物理内存的1.5倍,最大值为2-3倍。我的兆派设置建议是同意微软的默认设置,不需要另设它值。若物理内存为1G又觉得1.5倍的最小值设置占硬盘空间较大,最小值可设为1G即物理内存的1倍,以后若出现问题则改回默认设置;最大值默认即可。因页面文件的使用是由小至大、逐渐增加的过程,若最小值范围内可正常运行、交互,系统就不会再增大到最大值的程度。

4。
页面文件最好单独设置在一个盘符里(我的机器就设置到了F盘中),如此能使系统调用虚拟内存中的程序及数据时能更快速、更流畅。还有,变更页面文件的位置之前最好能对相应盘符进行磁盘碎片整理,以使页面文件连续、规律地存放利于快速读取。

4. 在初中物理上“页”是什么意思

你说的是用刻度尺测量课本上一张纸的厚度的实验吧?课本上一张纸有正反两个面,每一面就是一页,一张纸就是两页,如果课本有208页,那就是104张。课本总厚度除以104就是一张纸的厚度了。

5. 什么是逻辑地址和物理地址

有网友问到我:什么是逻辑地址和物理地址?怎么转换?针对此问题,我为大家分享了具体的操作 方法 ,希望对你有帮助!

什么是逻辑地址

是指由程式产生的和段相关的偏移地址部分。例如,你在进行C语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程式执行代码段限长内的偏移地址(假定代码段、数据段如果完全相同)。应用程式员仅需和逻辑地址打交道,而分段和分页机制对你来说是完全透明的,仅由系统编程人员涉及。应用程式员虽然自己能直接操作内存,那也只能在 操作系统 给你分配的内存段操作。

什么是物理地址

用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。 ——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。也许错误的理解更利于形而上的抽像。 虚拟内存(virtual memory) 这是对整个内存(不要与机器上插那条对上号)的抽像描述。它是相对于物理内存来讲的,可以直接理解成“不直实的”,“假的”内存,例如,一个0x08000000内存地址,它并不对就物理地址上那个大数组中0x08000000 - 1那个地址元素;之所以是这样,是因为现代操作系统都提供了一种内存管理的抽像,即虚拟内存(virtual memory)。进程使用虚拟内存中的地址,由操作系统协助相关硬件,把它“转换”成真正的物理地址。这个“转换”,是所有问题讨论的关键。有了这样的抽像,一个程序,就可以使用比真实物理地址大得多的地址空间。(拆东墙,补西墙,银行也是这样子做的),甚至多个进程可以使用相同的地址。不奇怪,因为转换后的物理地址并非相同的。 ——可以把连接后的程序反编译看一下,发现连接器已经为程序分配了一个地址,例如,要调用某个函数A,代码不是call A,而是call 0x0811111111 ,也就是说,函数A的地址已经被定下来了。没有这样的“转换”,没有虚拟地址的概念,这样做是根本行不通的。打住了,这个问题再说下去,就收不住了。逻辑地址(logical address) Intel为了兼容,将远古时代的段式内存管理方式保留了下来。逻辑地址指的是机器语言指令中,用来指定一个操作数或者是一条指令的地址。以上例,我们说的连接器为A分配的0x08111111这个地址就是逻辑地址。 ——不过不好意思,这样说,好像又违背了Intel中段式管理中,对逻辑地址要求,“一个逻辑地址,是由一个段标识符加上一个指定段内相对地址的偏移量,表示为 [段标识符:段内偏移量],也就是说,上例中那个0x08111111,应该表示为[A的代码段标识符: 0x08111111],这样,才完整一些” 线性地址(linear address)或也叫虚拟地址(virtual address) 跟逻辑地址类似,它也是一个不真实的地址,如果逻辑地址是对应的硬件平台段式管理转换前地址的话,那么线性地址则对应了硬件页式内存的转换前地址。

逻辑地址和物理地址拓展知识

存储器中每一个单元的地址可以用两种方法表示:

1.逻辑地址:其表达形式为“段地址:段内偏移地址”。

2.物理地址:CPU与存储器进行数据交换时在地址总线上

提供的20位地址信息称为物理地址。

物理地址=段地址×10H+段内偏移量

CPU一次处理的数据是16位,地址总线实际上代表CPU的寻址能力,地址线为20条那么CPU实际的寻址能力就是2的20次方就是1M。实际的物理地址是这样形成的:

段地址*10H+偏移地址,偏移地址用IP指向,IP是16位的。

例如段地址是1234H,偏移地址是4321H

那么实际的物理地址怎么算呢:1234H*10H+4321H=12340H+4321H=16661H

实际上可以这么来理解,就是段地址左移一位后加上偏移地址就得出实际的物理地址。

这里逻辑地址和物理地址的关系又可以用一个比喻来说明:

比如你的学号是0102,这是你的真实地址亦即物理地址,那么又假如01表示你的班级名称,02表示你相对整个班级的位置,这就是逻辑地址,道理是一样的,只不过在实际由逻辑地址合成物理地址的时候需要将物理地址左移一位,再加上偏移地址。

逻辑地址到物理地址的转换方法

以一个例子的形式讲解逻辑地址到物理地址的转换:

某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:

则逻辑地址0A5C(H)所对应的物理地址是什么?要求:写出主要计算过程。

解题过程:

首先要知道页式存储管理的逻辑地址分为两部分:页号和页内地址。物理地址分为两部分:

关系为:逻辑地址=页号+页内地址d

物理地址=块号*块长度( 等于页面长度 L )+页内地址;

页号: p = lnt( 逻辑地址 A / 页面长度 L ); d = 逻辑地址 A % 页面长度 L (取余)

分析题:已知:用户编程空间共32个页面,2ˆ5=32得知页号部分占5位,由“每页为1KB”,1K=2^10,可知内页地址占10位。

由“内存为16KB”,2^4=16得知块号占4位。

逻辑地址0A5C(H)所对应的二进制表示形式是:0000101001011100,后十位1001011100是页内地址,

00010(本题特例,因为页面长度为1KB)为为页号,页号化为十进制是2,在对照表中找到2对应的物理块号是11,11转换二进制是1011,11* 2^10 + d即可求出物理地址为10111001011100,化成十六进制为2 E5C;

即则逻辑地址0A5C(H)所对应的物理地址是2E5C;

猜你喜欢:

1. IP地址和物理地址有什么区别

2. 物理地址和逻辑地址的区别

3. 虚拟地址与物理地址的概念

4. 物理地址什么意思

5. 逻辑地址如何转换成物理地址

6. 物理地址有什么用

7. 物理地址作用是什么

6. 什么是页面什么事物理块页面的大小应如何确定

①页面:分页存储管理将进程的逻辑地址空间分成若干个页,并为各页加以编号。
②物理块:把内存的物理地址空间分成若干个块,并为各块加以编号。
③页面大小应选择适中,且页面大小应该是2的幂,通常为1KB~8KB。

7. 磁盘缓存,虚拟内存,页面文件,和物理内存的关系

如果它不存在,但是你能看见它 -- 它是虚拟的(IBM宣传虚拟内存之用语)。虚拟内存技术是计算机发展史上的一项重要的技术,它帮助应用程序摆脱了“体积”的限制。

记得上大学时,有一本书好像叫做“计算机网络 - 自顶向下”,全名记不太清了。书中从人们接触最多也最熟悉的“应用层”开始讲,一直讲到“物理层”,看完这本书后感觉效果不错。所以按照这种方法我也尝试着自上而下的去学习“虚存”,从我们最熟悉的C库接口调用说起,一直谈到底层的硬件支持设施。

1、初学者的疑惑
初学者往往都会写出以下这样的例子程序来学习malloc和free的使用。
int main() {
int *p = malloc(10000);
printf("p's address is 0x%p\n", p);
free(p);
return 0;
}
但往往结果让这些初学者们感到疑惑。比如上述的例子,在SUN SPARC 64编译后其输出如下:
p's address is 0x100100dc0
看到这样的结果,初学者往往心里嘀咕,“这台机器物理内存才4G,其地址空间总共才4294967296(dec),而0x100100dc0转换十进制为4296019392(dec),这个地址明显已经超出了我的物理内存的限制,这是怎么回事呢?”。其实这里的解释很简单:因为我们看到的都是“虚拟内存地址”。

2、“堆”为何物
malloc是个极其常见的内存分配接口函数,它主要负责运行时在“堆”上为程序动态分配内存空间。我们总是在口头上谈论着“堆”,那么“堆”到底为何物呢?我们已经知道了有“虚拟地址”这个东西的存在,想必“堆”和“虚拟地址”有着千丝万缕的联系^_^。我们来翻看一些经典书籍中的描述。在CS.APP[注1]中的描述是这样的:“堆是进程地址空间中的一段“虚拟地址”空间。在大多数的Unix系统中,堆是映射“二进制零区域(demand-zero)”实现的。其位置在bss段后,其增长方向为高地址方向”。

3、内存映射
前面谈到“demand-zero”这个新名词,那么什么叫“映射到demand-zero”呢?这里蕴含着一个极其重要的概念“内存映射”。内存映射好似一道桥梁,将放在物理磁盘上的对象和一段进程“虚拟地址”空间连接起来。磁盘上的对象,主要指的就是文件,在多数Unix的实现中支持两种文件的内存映射,分别为Regular File和匿名文件(如demand-zero)。映射的过程大致为将文件分成若干“虚拟内存基本单元(页)”大小存于“交换区”,直到CPU指令第一次访问到某个单元时,这个单元才真正被加载到物理内存中。

4、虚拟内存,何方神圣
看到这是不是有些“云里雾里”的感觉亚^_^。其实对于用户进程来说,它是看不到CPU和OS是如何相互配合完成内存管理的。它只认为它面前的是一个这样的情景:“一个完全被我拥有的CPU、一个从拥有M地址空间的物理内存(M = 2的n次方,n为地址总线宽度)...”。这里的用户进程眼中的“物理内存”实际就是“虚拟内存”。虚拟意味着假象,我们知道一个用户进程运行时可能仅仅占用的物理内存的一小部分。看来用户进程被欺骗了。而这个骗局是由操作系统和CPU共同布置的。为了让这个骗局一直维持下去,CPU和OS还是做了很多工作的,究竟有哪些工作呢?我们一一来看看。

1) 交换区(swap)
为了支持虚拟内存,操作系统在物理内存、磁盘之间交换数据的基本单元为“页”。页的大小是固定的,其因操作系统而异。这样一个用户进程在被加载之前首先要被分成若干个“页”,这些页存储在磁盘上。那么是不是进程启动后所有的页都被加载到物理内存中呢?答案是NO。在当前的Unix操作系统中,都有一个叫“交换区”的地方,“交换区”在磁盘上,它存储的是“已分配的虚拟内存页”。又有些糊涂是吧,什么叫已分配的页呢?一个进程虚拟内存页的加载流程大致是这样的:一旦用户进程一虚拟页需要被加载,则操作系统会在“交换区”中为该页分配一个页,一旦CPU访问的虚拟地址落入该页地址空间,则该页才被换入到物理内存中。在这个过程中虚拟页有多个状态,分别如下:
未分配的 - 进程虚拟页未得到加载指令,仍安静的待在磁盘上;
未缓存的 - OS为该进程虚拟页在交换区分配了一个空间,但是该虚拟页还未被引用;
已缓存的 - 该虚拟页被引用,被载入到物理内存中。

2) 换入换出
物理内存容量有限,当物理内存无空间存储新的内存页的时候,就需要将某些内存页从物理内存中移出以为新页腾出空间。这个过程对于那些被移出的页来说,就叫“换出”;相反对于那些新加入到物理内存中的页来说就叫做“换入”。

5、从缓存角度看虚存
现代计算机的存储体系是呈金字塔状的。越接近顶层,速度越快,容量越小,价格越贵;越接近底层,速度越慢,容量越大,价格越低。这样就形成了一个逐级缓存的机制。第K层设备永远是第K+1层设备的缓存。按照这种说法,在早期计算机中,主存是磁盘的缓存,CPU内的高级Cache是主存的缓存。现代计算机基本都支持虚拟内存机制,而虚存页是存储在磁盘上的,虚存页在主存中换入换出。按照缓存的概念,虚存属于容量大,速度慢的第K+1层,而处于第K层的主存就可以看作是虚拟内存的缓存。那么一切缓存理论就都可以应用在虚存和物理内存之间了,比如换入换出算法等。

6、硬件支持
在支持虚拟内存机制的计算机中,CPU都是以虚拟地址形式生成指令地址或者数据地址的,而这个虚拟地址对于物理内存来说是不可见的,那么是谁来屏蔽这个差异的呢?答案是MMU(Memory Management Unit)。MMU负责将CPU发出的虚拟地址转换成相应的物理内存地址。MMU不是孤立工作的,OS为其提供了很好的支持,OS在物理内存中为MMU维护着一张全局的页表,来帮助MMU找到正确地物理内存地址。

8. 什么是页面 什么是物理块

所谓物理内存是指你李镇内存条的类存镇滑,页面文件是指系统在里电脑上存放的临时文件,虚拟内存是指在硬御扰腊盘上划分的一个固定大小的区域用来存放页面文件,虚拟内存和页面文件一样大。

阅读全文

与什么是页面和物理快相关的资料

热点内容
word中化学式的数字怎么打出来 浏览:703
乙酸乙酯化学式怎么算 浏览:1371
沈阳初中的数学是什么版本的 浏览:1316
华为手机家人共享如何查看地理位置 浏览:1009
一氧化碳还原氧化铝化学方程式怎么配平 浏览:846
数学c什么意思是什么意思是什么 浏览:1368
中考初中地理如何补 浏览:1259
360浏览器历史在哪里下载迅雷下载 浏览:670
数学奥数卡怎么办 浏览:1349
如何回答地理是什么 浏览:988
win7如何删除电脑文件浏览历史 浏览:1021
大学物理实验干什么用的到 浏览:1447
二年级上册数学框框怎么填 浏览:1658
西安瑞禧生物科技有限公司怎么样 浏览:826
武大的分析化学怎么样 浏览:1212
ige电化学发光偏高怎么办 浏览:1300
学而思初中英语和语文怎么样 浏览:1605
下列哪个水飞蓟素化学结构 浏览:1387
化学理学哪些专业好 浏览:1451
数学中的棱的意思是什么 浏览:1016