gpt4 book ai didi

operating-system - 如何计算 16 位地址指针中的页帧

转载 作者:行者123 更新时间:2023-12-04 08:31:21 25 4
gpt4 key购买 nike

我正在查看操作系统的一些试卷,我遇到了一个我根本无法弄清楚的问题。内存管理方案是分页这是问题:

An operating system that runs on a CPU with a 16 bit address pointer employs a paging memory management scheme with a page size of 1024 bytes.
a) At most how many frames can physical memory contain?
b) Indicate which bits in an address pointer are used for page and offset.
c) A process image of size 3.5K resides in memory. You are given the page table of this process in Figure 1 below. What physical address will the hexadecimal logical address 0x0FCE result in? Show your calculations.
d) How much internal fragmentation does this process produce?

Page Frame
0 4
1 8
2 9
3 6
Figure 1 Process Page Table

谁能帮我解决这个问题?

最佳答案

  1. 16 位地址总线允许访问 2^16 = 64kB的物理内存。因为在这个系统上你有大小为 1024B = 2^10 的页面,你的内存落入2^16 / 2^10 = 2^6物理框架。

  2. 鉴于之前的结果,页数为 1024 = 2^10 bytes ,您需要 10 位来访问页面的任何字节。因此,高6位用于从页表中获取页索引(基本上是您作业中的图1),低10位用于该页的偏移。

    <
  3. 逻辑地址0xfce位于第四页,因为六个高位是 000011b = 3 = 4th page = 0x0c00-0x0fff .给定页表并假设物理内存是连续的,第四页映射到从 1024 * 6 = 0x1800 = 0001100000000000b 开始的第六个物理帧。 .该页的六个高位是000110b ,我们在其中添加前一个答案产生的 10 位偏移量:000110b << 10 | 0x3ce = 0x1bce .

  4. 由于帧分配不是顺序的(4、6、8、9),因此第 4 和第 6 页之间的空洞(即 1024B)以及第 6 和第 8 页之间的空洞(即再次为 1024B),结果在物理内存碎片中。

希望这对您有所帮助。

关于operating-system - 如何计算 16 位地址指针中的页帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14200025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com