Abstract
JOSS‡ is a multiuser, single-server computing system consisting of a collection of individual users' consoles connected to a central computing center by dual communication lines. The consoles are electric typewriters augmented by special electronics. The center consists of a general-purpose, digital computer,§ with ancillary devices for storage and input/ output, and a collection of machine-language routines “permanently resident” in the high-speed core storage of the computer. There are three sets of routines: 1.(1) input/output routines for communicating with the users' consoles and their long-term (magnetic-disc) files;2.(2) central-processing routines for interpreting and responding to requests typed by the users and for interpreting the users' stored programs;3.(3) supervisory routines for general management and accounting, and for giving each user a fair and proportionate share of processing. The center may be considered a single, active agent that serves the consoles and the users by time-sharing its activities; that is, it turns its attention from user to user so rapidly and smoothly as to give individual users the illusion of a single-user, single-server system. The three collections of routines may be viewed as active subagents, operating concurrently and synchronized by a common purpose. With this viewpoint as an introduction to the system, the single, active agent, JOSS, is described in terms of 1.(1) the actions that can be requested of JOSS;2.(2) the language for requesting the actions; and3.(3) the parts played by the three sets of routines in servicing the users and carrying out the requests.Associated with each user is a collection of dynamically changing information: programs, data, information about actions initiated by the user, and other pertinent data. The central-processing routines service a user by processing his block of information. Although list structures are used extensively for storing information in the user's block, neither a general structure nor a general processor for lists is used. Instead, information is maintained in several distinct and simple list structures, whose representations are attuned both to the organization of the system's central computer and to the special nature of JOSS. These and other considerations concerning the storage and handling of information are discussed in detail.The organization of the central-processing routines mirrors the responsibilities of a central processing unit serving more than one user: communication with the users and with the supervisory routines; command interpretation and execution; intercommand sequencing and control; error diagnosis, control, and commentary. For purposes of storage and execution, commands typed by the users are represented as almost direct copies of the line typed by the user. The operation is interpretive: Although the execution of commands often requires that information be compiled and retained, no compilation in the usual programmatic sense is done. An extra level of interpretation controlled by a tabular representation of the rules for forming commands is not used. Instead, each type of command is handled by a distinct routine that “reads” like the rules for forming instances of the command type. These routines are composed, in the main, of direct examinations of the primitive tokens entering into the command, mixed with uses of reentrant subroutines for interpreting more complex expressions. The major routines are described in terms of requests that can be made of JOSS, and in terms of JOSS's interpretation of the requests and responses to valid and invalid ones. Many design points of both the language and the responses to requests in the language are discussed in detail, as are major points of implementation of the routines.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have