Dynamic Relocation
To gain some understanding of hardware-based address translation,
we'll first discuss its first incarnation. Introduced in the first time-sharing
machines of the late 1950's is a simple idea referred to as base and bounds;
the technique is also referred to as dynamic relocation; we'll use both
terms interchangeably.
Specifically, we'll need two hardware registers within each CPU: one
is called the base register, and the other the bounds (sometimes called a
limit register). This base-and-bounds pair is going to allow us to place the
address space anywhere we'd like in physical memory, and do so while
ensuring that the process can only access its own address space.
In this setup, each program is written and compiled as if it is loaded at
address zero. However, when a program starts running, the OS decides
where in physical memory it should be loaded and sets the base register
to that value. In the example above, the OS decides to load the process at
physical address 32 KB and thus sets the base register to this value.
Interesting things start to happen when the process is running. Now,
when any memory reference is generated by the process, it is translated
by the processor in the following manner:
Each memory reference generated by the process is a virtual address;
the hardware in turn adds the contents of the base register to this address
and the result is a physical address that can be issued to the memory
system.
we'll first discuss its first incarnation. Introduced in the first time-sharing
machines of the late 1950's is a simple idea referred to as base and bounds;
the technique is also referred to as dynamic relocation; we'll use both
terms interchangeably.
Specifically, we'll need two hardware registers within each CPU: one
is called the base register, and the other the bounds (sometimes called a
limit register). This base-and-bounds pair is going to allow us to place the
address space anywhere we'd like in physical memory, and do so while
ensuring that the process can only access its own address space.
In this setup, each program is written and compiled as if it is loaded at
address zero. However, when a program starts running, the OS decides
where in physical memory it should be loaded and sets the base register
to that value. In the example above, the OS decides to load the process at
physical address 32 KB and thus sets the base register to this value.
Interesting things start to happen when the process is running. Now,
when any memory reference is generated by the process, it is translated
by the processor in the following manner:
Each memory reference generated by the process is a virtual address;
the hardware in turn adds the contents of the base register to this address
and the result is a physical address that can be issued to the memory
system.
上一篇:(键盘练习)
下一篇:电脑打字比赛文章
声明:以上文章均为用户自行添加,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。
文章热度:☆☆☆☆☆
文章难度:☆☆☆☆☆
文章质量:☆☆☆☆☆
说明:系统根据文章的热度、难度、质量自动认证,已认证的文章将参与打字排名!
本文打字排名TOP20
- 1lgzgg 05-20 03:22321 KPM
- 2shiho 08-22 19:45272 KPM
- 3游客72520795 02-26 17:33222 KPM
- 4游客67760431 01-09 15:55150 KPM
- 5游客20350780... 11-24 12:03148 KPM
- 6游客72470957 01-09 13:23122 KPM
- 7zhugongbo 01-09 20:10110 KPM
- 8游客66891749 01-09 14:46107 KPM
- 9HZTonly 01-16 15:4172 KPM