March 2003
Intermediate to advanced
912 pages
27h 17m
English
In practice it is not very useful for a program to have to occupy a single contiguous range of physical addresses. For instance, such a scheme would prevent two processes from sharing the code of a compiler (the example used in Figure 2.10). The difficulty is in arranging for the two executions of the compiler to access different data areas while still being able to share the same code. This can be achieved if the system has two base registers and two limit registers, thus allowing two separate memory ranges or segments per process. Figure 5.5 shows two processes sharing a compiler and Figure 5.6 shows relocation (and protection) hardware to realize this scheme. Notice the impact that this change has on the virtual ...