1) To prevent one process overwriting the memory
belonging to another
process.
Segments did not HAVE to be 64k, that was their maximum size, the
minimum
was 128 bytes.
2) To provide virtual memory.
3) To protect the executive from processes.
4) To allow non contiguous physical address space to appear as a
logical contiguous address space
5) To provide mapping out of faulty blocks of memory
and probably as many reasons I have not thought of off the top of my
head.
Consider the time this was introduced. It was a $5K personal
computer from 1982 whose base configuration was 2 floppies and no
hard disk. Just about any of the above was probably held to be
superfluous by most manufacturers in that context.
Well OK 5k dollars is not much, but in January the following year for
10k, Apple's Lisa had several of the above, though I have to admit I
have seen some spectacular crashes as it was possible to corrupt the
sound buffers and also to seriously derange the CRT scanning. The
compiler generated some strange code to 'touch' the new top of stack
on subroutine entry so the OS could allocate all the extra space in
one go rather than in little bits. One enterprising British software
house even got Unix running on a Lisa with the (then) optional 5MB
profile hard disk. It wasn't C.A.P. but one of the other big ones of
the time.
Before I left Marconi in 1980, we had at least one Z8010, but I don't
know what date they became commercially available. Fitting one might
well have saved Olivetti money, depending on unit price of course.