虚拟内存是指在内存贮器容量不够大的计算机中,为给用户提供更大的随机访问空间而采用的一种软件设计技巧 。
虚拟内存系统是指管理和分配用户程序虚拟内存的程序。 (推荐学习:phpstorm)
虚拟内存系统出现的原因有内存容量不大和程序局部性原理。
分页式管理:将内存分成固定大小的页,分配若干页将整个进程载入。页面可以不连续是其重要优点,不会产生外碎片,更有效地利用了内存,不过会产生一些内碎片,即分配给进程的最后一个页往往不能正好用完,不过在页面大小不是很大的时候可以接受。
请求式分页和虚拟内存
请求式分页:将进程放入虚拟内存中,由于一个进程的页面不会同时全部被用到,只将需要用到的页面调入物理内存。即进程并没有整个在物理内存中。
几个请求式分页的概念:(博客链接:请求式分页中的内存分配)
固定分配:物理内存中分配给进程的内存块数一定。
可变分配:物理内存先分配给进程一些内存块,如不够,可适当增加。
局部置换:发生在分配的内存块已用完,又发生了缺页时,只能置换本来就是自己的内存块。
全局置换:发生在分配的内存块已用完,又发生了缺页时,可以置换到操作系统保留的空闲页。这其实相当于增加了进程占有的内存块数。
三种分配方式:固定分配局部置换、可变分配全局置换、可变分配局部置换。固定分配、全局置换不能组合。