什么是内存分页
os在物理内存中随便找个地方按照cpu指定的规则填写页表页目录,然后通过cr3告诉cpu这个位置在哪里,cpu读取内容,分页机制开始运转。
分段机制的工作原理差不多,os在物理内存中找个地方填写全局描述浮表gdt,然后lgdt告诉cpu这个位置,cpu读取信息,分段机制开始工作。不过现代os基本都是使用平坦寻址方式,分段机制除了管理特权级,没啥用可以忽略。
什么是内存分页机
分页(英语:Paging),是一种操作系统里存储器管理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的数据。
操作系统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“页”。
当不需要时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数据取回,加载主存中。
相对于分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位,在Java中是一种特别常见的现象分页(英语:Paging),是一种操作系统里存储器管理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的数据。
操作系统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“页”。
当不需要时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数据取回,加载主存中。
相对于分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位,在Java中是一种特别常见的现象
什么是内存分页存储管理
实际系统中的做法是采用内存页表和快表相结合的解决方案。系统总是先通过页号与快表中的所有表项进行比较。如果发现匹配的页,则将块号直接从快表中取出,而不必通过页表。
也是该块号与页内位移拼接,形成所需要的绝对地址。如果快表中没有匹配的页号时,系统访问页表进行掉进块号。提高读取数据的速度。
内存分页和物理分页
无分页文件就是无分页内存,如果会出现这个提示,你可以把虚拟内存设为“windows系统管理的大小”设置虚拟内存的步骤:右击我的电脑→属性→“高级”标签下,性能下的“设置”按钮下的“高级”选项,单击“更改”按钮可以选择非系统盘的分区做为虚拟内存的空间(如D盘),然后在“自定义大小”下输入所需的空间大小。最后再单击“设置”按钮后确定。根据微软官方建议:物理内存大于256M,小于512M的,虚拟内存设为物理内存的1.5倍 物理内存大于512M小于1G的,虚拟内存设为跟物理内存同样的值 物理内存大于1G的,就不用设置虚拟内存了你的内存是1G,个人建议还是设置系统管理的大小。
什么是内存分页存储管理?它有什么特点?
内存的分段和分页管理方式和由此衍生的一堆段页式等都属于内存的
不连续分配
。什么叫不连续分配?就是把程序分割成一块一块的装入内存,在物理上不用彼此相连,在逻辑上使用段表或者页表将离散分布的这些小块串起来形成逻辑上连续的程序。在基本的分页概念中,我们把程序分成
等长
的小块。这些小块叫做“页(Page)
”,同样内存也被我们分成了和页面同样大小的”页框(Frame)“,
一个页可以装到一个页框里。在执行程序的时候我们根据一个页表去查找某个页面在内存的某个页框中,由此完成了逻辑到物理的映射。分段和分页有很多类似的地方,但是最大的区别在于分页对于用户来说是没什么逻辑意义的,分页是为了完成离散存储,所有的页面大小都一样,对程序员来说这就像碎纸机一样,出来的东西没有完整意义。但是分段不一样,分段不定长,分页由系统完成,分段有时在编译过程中会指定划分,因此可以保留部分逻辑特征,容易实现分段共享。
相关的完整内容在《计算机操作系统》中的存储器管理一章中有完整介绍。
有空再多补。
什么是内存分页器
优点:1)没有外碎片。
2)程序不必连续存放。
3)便于管理。
4)能实现动态链接。
缺点: 1)程序必须全部装入内存,才可以运行。
2)操作系统必须为每一个任务都维护一张页表,开销比较大,简单的页表结构已经不能满足要求,必须设计出更复杂的结构。如:多级页表结构、哈希页表结构、反置页表。
内存分段和分页的区别
分段式存储管理的实现可以基于可变分区存储管理的原理,为作业的每一段分配一个连续的主存空间,而各段之间可以不连续。在进行存储分配时,应为进入主存的每个用户作业建立一张段表,各段在主存的情况可用一张段表来记录,它指出主存储器中每个分段的起始地址和长度。同时段式存储管理系统包括一张作业表,将这些作业的段表进行登记,每个作业在作业表中有一个登记项。
段表表目实际上起到了基址/限长寄存器的作用。作业执行时通过段表可将逻辑地址转换成物理地址。由于每个作业都有自己的段表,地址转换应按各自的段表进行。类似于分页存储器那样,分段存储器也设置一个段表控制寄存器,用来存放当前占用处理器的作业的段表始址和长度。
内存分页的作用
分页是为了实现离散分配方式,以消减内存的外零头,提高内存的利用率。分页仅仅是由于系统管理的需要而不是用户的需要
段是信息的逻辑单位,分段的目的是为了能更好地满足用户的需要
页的大小固定,由系统把逻辑地址划分为页号和页内地址两部分,段的长度却不固定,决定于用户所编写的程序
分页的作业地址空间是一维的,即单一的线性地址空间。 分段的作业地址空间是二维的 在标识一个地址时,即需给出段名,又需给出段内地址
分页内存和物理内存
无分面文件就是在硬盘里没有设置虚拟内存。 问题解决方法如下:
1.游戏卡等问题和这个有一定的联系。不过,正常情况下,如果虚拟内存不足,系统会给你提示的。甚至有时候你的物理充足,虚拟内存设置过小,系统都会提示虚拟内存不足,即使你的系统根本用不到虚拟内存。
2.即使把虚拟内存打开了,也不见得不卡。因为虚拟内存的速度很慢,如果物理内存小,系统就会过多的调用虚拟内存,系统自然卡。查看物理内存大小。
3.虚拟内存如何设置很简单要注意的是设好后要点一下那个设置,然后重起才升效。
4.不知道该设多少,就让系统自己管理。还有尽量不要设在C盘。
内存为什么分页
在分页系统中,若选择过小的页面大小,虽然一方面可以减小内存碎片,起到减少内存碎片总空间的作用,有利于内存利用率的提高,但另一个方面却会造成每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存。
此外,还会降低页面换进换出的效率。然而,如果选择的页面过大,虽然可以减少页表的长度,提高页面换进换出的速度,但却又会使页内碎片增大。