请求页式存储(Demand Paging)指的是当程序需要从硬盘读取数据时,只有在需要时才将数据读入内存。其与预先分配页式存储方式不同,预先分配页式存储会将程序所需的所有数据都一次性的分配到内存中。请求页式存储是一种按需调度物理内存的方法,适用于处理大型的内存和硬盘空间的应用。在请求页式存储中,每一个页面都有一个所属的虚拟页号和实际物理页号,当一个页面被访问时,该页面就会被请求调入到内存中。在请求页式存储中,虚拟空间可以比物理内存空间大的多,可以在需要时从硬盘中调入所需页面。
请求页式存储的基本原理是将程序所需的数据分成多个页面,并将页面存储到硬盘上。当程序需要访问某个页面时,系统会将此页面从硬盘中调入内存,使其暂时存储于内存中。当此页面不在需要时,系统会将其写回到硬盘中,释放该页在内存中的空间。这种方式可以有效地降低程序使用内存空间,同时提高程序的效率。
请求页式存储的运作流程可以分为以下几个步骤:
1. 当程序需要访问数据时,系统会判断此数据所属的页面是否在内存中。
2. 如果数据所属的页面不在内存中,则系统会将该页面从硬盘中调入内存,使其暂时存储于内存中。
3. 当数据的处理完成后,系统会将该页面移动到某个空闲的内存块中,等待下一次需要访问时。
4. 当系统已经没有空闲的内存块时,系统需要进行页面置换,选择最久没有使用的页面进行替换,以此来为即将到来需要访问新页面的程序释放出必要的内存空间。
请求页式存储的优点是能够有效的充分利用内存,避免了预先分配页式存储的浪费。另外,请求页式存储能够根据不同程序的需求,对其进行精细化的内存配置,提高了系统效率。此外,由于页面是按需调入内存的,因此在程序执行开始的时候,系统所占用的内存较少,从而保证了系统在运行时所占用的内存空间最小化。
请求页式存储还有一些需要注意的点。比如,如果系统中运行的程序所需内存过多,内存不足,这时系统需要进行页面置换。页面置换操作会导致磁盘读写,因此会对磁盘的耐久性造成一定的影响。此外,如果程序所需内存过多,系统将频繁进行页面置换,造成系统执行效率的降低。
综上所述,请求页式存储的基本原理是将程序所需的数据按需调入内存。这种方式能够有效地节省空间,提高执行效率。但对于内存不足的系统,需要注意(1)频繁进行页面置换操作会影响磁盘存储的耐久性,(2)频繁的页面置换会降低系统的执行效率。
扫码咨询 领取资料