Title

Author

Date of Award

1978

Degree Type

Thesis

Degree Name

Master of Science in Computer Science

Department

Computer Science and Experimental Statistics

First Advisor

Nelson Weidirwau

Abstract

Microcomputers are proliferating in dedicated applications and as single-user general-purpose digital computers. Many common applications on larger machines are inherently multi-user and require a multiprogrammed mode of operation. Multiprogrammed operating systems, although desirable for this reason and to maximize utilization of expensive system components, have not yet been satisfactorily implemented on microcomputers. It is shown that a typical microprocessor -- the Intel 8080 -- is inherently incapable of supporting a multiprogrammed operating system due to a lack of any privileged instruction set whatsoever. Other disadvantages of microprocessor-based systems that affect their capability for multiprogramming are discussed, including the limited memory address space, lack of relocation aids and lack of a "test and set" instruction for synchronization purposes. A machine architecture is proposed that utilizes two or more 8080s in a master/slave relationship to effectively implement a privileged instruction set. The architecture is shown to be virtualizable -- that is, capable of supporting a virtual machine monitor -- and to have good storage protection and fault-tolerance characteristics. A "Dynamic Memory Banking" system is included in the architecture that relieves the 64K limitation on memory resources, makes program relocation unnecessary and allows the assignment of memory to whatever process requires it at whatever address. This memory system simplifies problems involved in implementation of virtual storage; the central concepts are applicable to larger machines as well. Required and optional aspects of operating system software for the proposed architecture are discussed and specific suggestions for implementation are made.