段页式逻辑地址到物理地址的原理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
?
程序以段页式的内存管理方式装入到内存后,CPU是如何找的真确的物理地址的呢?
当运行某个程序时,操作系统就会从作业表中找到该程序,并把作业表中该程序段的起始地址和段表长度装入到段表寄存其中,当程序需要访问某个地址时,也就是程序给出一个逻辑地址时,操作系统会把他分成三份:段号,页号,页内地址。然后,根据段号、段表寄存器中段表的起始地址、段表寄存器中段表的长度和段表项长度来找到相应段号在段表的中的地址,在段表中找的内容是页表该段号中页表的始址,然后,再根据程序提供的页号找到页表,从页表中取出来的是内存页表的始地址,燃后,根据页内地址找到要访问的内存单元。
我们知道,分页在数据的共享方面是很难实现,而且也没有某块化,分段实现了更方便的共同开发程序,共享数据(共享某块)的作用,但是,内存浪费严重,段页式方式是分页和分段优点的结合体。
所有的运行的应用程序的信息组成了一张表,这张表的一条记录的主要信息是:相应应用程序的段表的起始地址和段表长度,用到的时候就把它存放到段表寄存器中;每个应用程序都有一个段表,该表记录了该程序的所有段的信息,每一条记录的主要内容是:相应段所对应的页表的起始地址和页表的长度;运行程序的每一个段都有一个页表,这个页表记录了该段的所有信息,每一条记录的主要内容是:相应逻辑页号所对应的物理页号的起始地址。