什么是段页式存储?
在计算机系统中,存储器被分为很多个小块,每个小块被称为一页。而段页式存储是一种将存储器分为若干个段和页的存储管理方式。在这种方式下,每个进程都被分配了一个独立的地址空间,其中每个地址都由一个段号和一个页号组成。
段页式存储地址计算
在段页式存储中,地址的计算需要分两步进行。首先,根据进程的段号和页号计算出物理地址的页框号;然后,再根据物理页框号和偏移量计算出物理地址。
下面,我们通过一个例子来说明段页式存储地址的计算过程。
假设进程的段表和页表如下所示:
段号段基址段限长页表地址010002002000130001004000
页号页框号010111212313
假设进程要访问的地址为0x1234,那么我们需要先将这个地址拆分成段号和偏移量。偏移量为0x234,段号为0x1。
接下来,我们需要根据段号和页号来计算出物理页框号。首先,我们需要在段表中查找到段基址和段限长。由于进程的段号为0x1,所以我们需要查找第二行的信息。可以发现,进程的段基址为3000,段限长为100。
接着,我们需要根据偏移量来计算出页号。由于页的大小为4KB,所以我们可以通过偏移量除以4KB来得到页号。即:
页号 = 偏移量 / 4KB = 0x234 / 4KB = 0x0
由于进程的页表地址为4000,所以我们需要在4000处查找到对应的页框号。可以发现,进程的第0页对应的物理页框号为10。
因此,我们可以得到物理地址为:
物理地址 = 页框号 * 4KB + 偏移量 = 10 * 4KB + 0x234 = 0x4234
总结
段页式存储是一种将存储器分为若干个段和页的存储管理方式。在这种方式下,每个进程都被分配了一个独立的地址空间,其中每个地址都由一个段号和一个页号组成。在进行地址计算时,需要先根据段号和页号计算出物理页框号,然后再根据物理页框号和偏移量计算出物理地址。
参考:https://blog.csdn.net/alzzw/article/details/123458906
标签:存储,4KB,框号,段页,偏移量,地址,计算 From: https://www.cnblogs.com/bigleft/p/18146616