MEMORY MANAGEMENT WITH MULTIPROGRAMMING
With multiprogramming came more sophisticated memory management. More than one program could be
in memory at one time, and it became important that an executing process did not change the contents of
memory devoted to the operating system itself, or of memory belonging to another process.
116 OPERATING SYSTEMS [CHAP. 6
The solution in the mid-1960s and 1970s was to use two registers whose contents would be set by the
operating system just prior to turning execution over to the user process. One register was called the ???base??? or
???relocation??? register, and it held the starting address of the memory allocated to the process. The other register
was called the ???limit??? register, and it held the maximum size of the program.
Each time a process accessed memory, the computer hardware (called the memory management unit
(MMU)) would check the address to make sure it was less than the limit register contents. If not, the MMU
would trap the error and generate an interrupt (an interrupt caused by software is called a trap) that would
activate the operating system in kernel mode. Then the OS could deal with the problem, probably by generating
a memory protection error and terminating the offending process.
Pages:
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319