由于内存的大小总是有限的,如果都采用实存管理,那么大于总物理内存的作业就无法运行。为了解决这一问题,可行的方法就是用外存来换取内存,这也就是虚拟存储系统,它通过将运行进程访问的地址与主存的物理地址分开,从而使得提供大于物理地址的逻辑地址空间成为可能,而建立虚拟地址和实地址之间的对应关系、实现转换的工作就称为虚存管理,设置虚拟存储器的目的就是要从逻辑上极大地扩充内存容量,并且使内存分配方便、利用率高。
1、分页和分段存储管理有何区别
演示机型:华为MateBookX系统版本:win10APP版本:Word20201、单位不同:页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。
段的长度却不固定,决定于用户所编写的程序,通常由编辑程序在对源程序进行编辑时,根据信息的性质来划分。3、作业地址空间不同:分页的作业地址空间是维一的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。
2、Linux内核:分段和分页的区别
首先说明内核的保护模式和是模式,在计算机刚刚启动的时候处于实模式,在该模式下cpu产生20位的地址,然后计算机经过某种变换转换到保护模式。保护模式下cpu产生32位的地址,也就是说从实模式到保护模式,cpu的寻址空间扩大了。在计算的发展的初期,intel8086是16位的cpu,它只能运行在实模式下。在该模式下其寄存器是16位的,但是为了可以寻址20位的地址空间,所以采用了内存的分段模式。
关于现代计算机内存的分段机制,也是为了向下兼容的需要。单纯的向下兼容或许还不够有说服力,因为在现代cpu中产生的就是32的地址,而由分段机制产生的线性地址也是32位的,32位的地址完全可以访问4G内存的任何一个地方,看上去分段机制好像完全没有了作用,其实不然。在多线程,多任务的操作系统中,一个地址能否被一个进程写入,能被什么优先级的进程访问,是否允许执行这些问题有出来了。