1、计算机组成原理之段页式虚拟存储器
定义:
段页式虚拟存储器将程序按逻辑结构分段后,再把每段分成固定大小的页。程序对主存的调入、调出以页为基本传送单位,但可以按段实现共享和保护。
实现原理:
程序划分:首先将用户程序分成若干个段,每个段再按照实存的页大小进行分页。
段表与页表:每个程序对应一个段表,每个段表又对应一个或多个页表。段表记录每个段的起始页号和段长等信息,页表记录每个页在主存中的物理页号和是否已装入、已修改等标志。
地址变换:CPU访存时,根据段号得到段表地址,从段表中取出该段的页表起始地址,与虚地址中的段内页号合成得到页表项地址。从页表中取出物理页号,与页内地址拼接形成实地址。
优点:
模块化性能好:易于实现程序的动态链接和调度。
主存利用率高:通过分页可以减少内存碎片。
易于管理辅存:页式管理使得辅存管理相对简单。
保护和共享方便:可以按段实现存储保护和共享。
缺点:
地址变换复杂:需要多次查表,包括段表和页表,可能降低访存速度。
需要额外的存储空间:用于存储段表和页表。
2、段页式虚拟存储器具体实现原理是什么
程序划分:将用户程序按照逻辑结构划分为若干个段,每个段再按照实存的页大小进行分页。这样,程序就被组织成段和页的两级结构。
段表与页表:系统为每个程序建立一张段表,用于记录该程序的各个段的起始页号和段长等信息。同时,每个段又对应一张页表,页表中记录了该段中各个页在主存中的物理页号和是否已装入、已修改等标志。
地址变换:当CPU需要访问某个虚拟地址时,首先通过段表找到对应的段,然后利用该段的页表将虚拟地址中的页号转换为物理页号,最后与页内地址拼接形成物理地址。这个地址变换过程需要多次查表,包括段表和页表。