5.4. Segmented virtual memory

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 ...

Get Operating Systems: Concurrent and Distributed Software Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.