On the other hand, in the usual case where the address was within legal range, the MMU hardware would
add the contents of the relocation register to the address. The sum would then be the correct physical address
for the program executing on this machine at this time, and the access would proceed. Having an MMU with a
relocation register meant that a program could be loaded into one part of memory at time 1, and into a different
part of memory at time 2. The only change between times would be to the contents of the relocation register.
The part of memory concept became more sophisticated over time. Initially, memory was divided into partitions
of fixed sizes when the operating system was installed or generated (called a system generation or ???sysgen???).
A program could run in any partition big enough to accommodate it.
Later, operating systems gained the feature of being able to support dynamic memory partitions of varying
sizes. This complicated the operating system??™s task of tracking and controlling memory usage, but it increased
flexibility. The operating system would maintain a list or bit-map of memory allocations and free memory.
When a program became ready to run, the operating system would find a big enough block of memory to
accommodate the program, and then dispatch the program to that chunk of memory.
Pages:
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320