Wednesday, July 22, 2015

SERIAL PROCESSING



In theory, every computer system may be programmed in its machine language with no systems software support. Programming of the “bare machine” was customary for early computer systems. A slightly more advanced version of this mode of operation is common for the simple evaluation boards that are sometimes used in introductory microprocessor courses. Programs for the bare machine can be developed by manually translating sequences of instructions into binary or some other code whose base is usually an integer power of 2. Instruction and data are the entered in to the computer by means of console switches or, perhaps, through a hexadecimal keyboard. Program are started by loading the program are obtained by examining the contents of the relevant registers and memory locations. Input/output devices. If any, must be controlled by the executing  program directly, say, by reading and writing the related I/O ports. Evidently, programming of the bare machine result in low productivity of both users and hardware. The long and tedious process of program and data entry practically precludes execution of medium and large programs in such an environment.
The mechanics of development and preparation of programs in such environments are quite slow and cumbersome due to serial execution of programs and to numerous manual operations involved in the process. In a typical sequence, the editor program is loaded to prepare the source code of the user program. The next step is to load and execute the language translator and provide it with the source code of the user program. When serial input devices such as card readers are used, multiple-pass language translators may require the source code to be repositioned for reading during each pass. If syntax errors are detected, the hole process must be repeated from the beginning. Eventually, the object code produced from the syntactically correct source code is loaded and executed. If run-time errors are detected, the state of the machine can be examined and modified by means of console switches or with the assistance of a program called a debugger.
The described mode of operation was used initially in the late fifties, but it was also common in low-end microcomputers of the early eighties with cassettes as I/O devices.
In addition to language translators, systems software includes the loader and possibly the editor and debugger programs. Most of these programs use input/output devices and thus must contain some code to exercise those devices.
While a definite  improvement over the bare-machine approach, this mode of operation is obviously not very efficient. Running the computer system may require frequent manual loading of programs and data. This results in low utilization of system resources. User productivity, especially in multiuser environments, is low as users await their turn at the machine. Even with such tools as editors and debuggers, the program development is very slow and is ridden with manual program and data loading.

No comments: