Memory 内存管理(将页/帧分配到逻辑地址)

Memory 内存管理(将页/帧分配到逻辑地址),memory,memory-management,operating-system,paging,virtual-memory,Memory,Memory Management,Operating System,Paging,Virtual Memory,我不熟悉操作系统,我一直在阅读这本手册,以便更好地掌握计算机的实际工作原理。然而,在偶然发现内存管理之后,我发现在使用页表将页和帧分配到虚拟内存位置时有些混乱。 假设页面/帧大小为4K,系统为32位(它处理4字节长的地址,页面条目也有4字节长)。 如果同一进程根据其需要引用两个不同的内存位置,例如Virtual_MemoryLocation_A为222,Virtual_MemoryLocation_B为999,这些内存请求是否会固定到同一页0(页表的第一页)由于两者都没有超出4096字节的fra

我不熟悉操作系统,我一直在阅读这本手册,以便更好地掌握计算机的实际工作原理。然而,在偶然发现内存管理之后,我发现在使用页表将页和帧分配到虚拟内存位置时有些混乱。
假设页面/帧大小为4K,系统为32位(它处理4字节长的地址,页面条目也有4字节长)。

如果同一进程根据其需要引用两个不同的内存位置,例如Virtual_MemoryLocation_A为222,Virtual_MemoryLocation_B为999,这些内存请求是否会固定到同一页0(页表的第一页)由于两者都没有超出4096字节的frane size范围,并且操作系统将内存授予相同的X帧?

如果页面大小为4096,则

page number = address DIV 4096
page offset = address MOD 4096
这两个值唯一标识逻辑内存位置


两个地址可以在同一帧中。如果不是这样的话,拥有页面就没有意义了。0中的所有内存位置。。4095都在同一个第0页。

我投票结束这个问题,因为它不是一个编码或设计问题。它读起来更像是一个不费力的家庭作业问题。我发现了一些基本的误解。一旦页表定义了逻辑到物理的映射,它就会保持不变。在某些情况下,同一帧可以由多个进程共享(例如,共享内存、系统内存)。我的坏消息是,我刚刚记得内部碎片是不可避免的,因为逻辑地址从0开始,一些或某些帧恰好大部分为空。很奇怪,我的教科书没有显示一个页表,同一页的多个逻辑地址映射到同一个帧号。