fbpx
Wikipedia

THE multiprogramming system

The THE multiprogramming system or THE OS was a computer operating system designed by a team led by Edsger W. Dijkstra, described in monographs in 1965-66[1] and published in 1968.[2] Dijkstra never named the system; "THE" is simply the abbreviation of "Technische Hogeschool Eindhoven", then the name (in Dutch) of the Eindhoven University of Technology of the Netherlands. The THE system was primarily a batch system[3] that supported multitasking; it was not designed as a multi-user operating system. It was much like the SDS 940, but "the set of processes in the THE system was static".[3]

THE multiprogramming system
DeveloperEindhoven University of Technology (Technische Hogeschool Eindhoven);
Edsger Dijkstra, et al.
Written inElectrologica X8 assembly language
Working stateDiscontinued
Initial release1965; 59 years ago (1965)
Final releaseFinal / 1968; 56 years ago (1968)
Marketing targetResearch
Available inEnglish
Update methodCompile from source code
PlatformsElectrologica X8
Kernel typeLayered
Default
user interface
Paper tape

The THE system apparently introduced the first forms of software-based paged virtual memory (the Electrologica X8 did not support hardware-based memory management),[3] freeing programs from being forced to use physical locations on the drum memory. It did this by using a modified ALGOL compiler (the only programming language supported by Dijkstra's system) to "automatically generate calls to system routines, which made sure the requested information was in memory, swapping if necessary".[3] Paged virtual memory was also used for buffering input/output (I/O) device data, and for a significant portion of the operating system code, and nearly all the ALGOL 60 compiler. In this system, semaphores were used as a programming construct for the first time.

Design edit

The design of the THE multiprogramming system is significant for its use of a layered structure, in which "higher" layers depend on "lower" layers only:

  • Layer 0 was responsible for the multiprogramming aspects of the operating system. It decided which process was allocated to the central processing unit (CPU), and accounted for processes that were blocked on semaphores. It dealt with interrupts and performed the context switches when a process change was needed. This is the lowest level. In modern terms, this was the scheduler.
  • Layer 1 was concerned with allocating memory to processes. In modern terms, this was the pager.
  • Layer 2 dealt with communication between the operating system and the system console.
  • Layer 3 managed all I/O between the devices attached to the computer. This included buffering information from the various devices.
  • Layer 4 consisted of user programs. There were 5 processes: in total, they handled the compiling, executing, and printing of user programs. When finished, they passed control back to the schedule queue, which was priority-based, favoring recently started processes and ones that blocked because of I/O.
  • Layer 5 was the user; as Dijkstra notes, "not implemented by us".

The constraint that higher layers can only depend on lower layers was imposed by the designers in order to make reasoning about the system (using quasi-formal methods) more tractable, and also to facilitate building and testing the system incrementally. The layers were implemented in order, layer 0 first, with thorough testing of the abstractions provided by each layer in turn. This division of the kernel into layers was similar in some ways to Multics' later ring-segmentation model. Several subsequent operating systems have used layering to some extent, including Windows NT and macOS, although usually with fewer layers.

The code of the system was written in assembly language for the Dutch Electrologica X8 computer. This computer had a word size of 27 bits, 48 kilowords of core memory,[3] 512 kilowords of drum memory providing backing store for the LRU cache algorithm, paper tape readers, paper tape punches, plotters, and printers.

See also edit

References edit

  1. ^ Dijkstra, Edsger W. The structure of the 'THE'-multiprogramming system (EWD-196) (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription) (Jun 14, 1965)
  2. ^ Dijkstra, E.W. (1968), "The structure of the 'THE'-multiprogramming system", Communications of the ACM, 11 (5): 341–346, doi:10.1145/363095.363143, S2CID 2021311
  3. ^ a b c d e Silberschatz, Abraham; Peterson, James L. (May 1988), "13: Historical Perspective", Operating System Concepts, p. 512

multiprogramming, system, computer, operating, system, designed, team, edsger, dijkstra, described, monographs, 1965, published, 1968, dijkstra, never, named, system, simply, abbreviation, technische, hogeschool, eindhoven, then, name, dutch, eindhoven, univer. The THE multiprogramming system or THE OS was a computer operating system designed by a team led by Edsger W Dijkstra described in monographs in 1965 66 1 and published in 1968 2 Dijkstra never named the system THE is simply the abbreviation of Technische Hogeschool Eindhoven then the name in Dutch of the Eindhoven University of Technology of the Netherlands The THE system was primarily a batch system 3 that supported multitasking it was not designed as a multi user operating system It was much like the SDS 940 but the set of processes in the THE system was static 3 THE multiprogramming systemDeveloperEindhoven University of Technology Technische Hogeschool Eindhoven Edsger Dijkstra et al Written inElectrologica X8 assembly languageWorking stateDiscontinuedInitial release1965 59 years ago 1965 Final releaseFinal 1968 56 years ago 1968 Marketing targetResearchAvailable inEnglishUpdate methodCompile from source codePlatformsElectrologica X8Kernel typeLayeredDefaultuser interfacePaper tapeThe THE system apparently introduced the first forms of software based paged virtual memory the Electrologica X8 did not support hardware based memory management 3 freeing programs from being forced to use physical locations on the drum memory It did this by using a modified ALGOL compiler the only programming language supported by Dijkstra s system to automatically generate calls to system routines which made sure the requested information was in memory swapping if necessary 3 Paged virtual memory was also used for buffering input output I O device data and for a significant portion of the operating system code and nearly all the ALGOL 60 compiler In this system semaphores were used as a programming construct for the first time Design editThe design of the THE multiprogramming system is significant for its use of a layered structure in which higher layers depend on lower layers only Layer 0 was responsible for the multiprogramming aspects of the operating system It decided which process was allocated to the central processing unit CPU and accounted for processes that were blocked on semaphores It dealt with interrupts and performed the context switches when a process change was needed This is the lowest level In modern terms this was the scheduler Layer 1 was concerned with allocating memory to processes In modern terms this was the pager Layer 2 dealt with communication between the operating system and the system console Layer 3 managed all I O between the devices attached to the computer This included buffering information from the various devices Layer 4 consisted of user programs There were 5 processes in total they handled the compiling executing and printing of user programs When finished they passed control back to the schedule queue which was priority based favoring recently started processes and ones that blocked because of I O Layer 5 was the user as Dijkstra notes not implemented by us The constraint that higher layers can only depend on lower layers was imposed by the designers in order to make reasoning about the system using quasi formal methods more tractable and also to facilitate building and testing the system incrementally The layers were implemented in order layer 0 first with thorough testing of the abstractions provided by each layer in turn This division of the kernel into layers was similar in some ways to Multics later ring segmentation model Several subsequent operating systems have used layering to some extent including Windows NT and macOS although usually with fewer layers The code of the system was written in assembly language for the Dutch Electrologica X8 computer This computer had a word size of 27 bits 48 kilowords of core memory 3 512 kilowords of drum memory providing backing store for the LRU cache algorithm paper tape readers paper tape punches plotters and printers See also editRC 4000 Multiprogramming System Ring computer security Timeline of operating systems Source code is available at http archive computerhistory org resources text Knuth Don X4100 PDF index k 1 pdf k 1 C1063 6 source THE os pdfReferences edit Dijkstra Edsger W The structure of the THE multiprogramming system EWD 196 PDF E W Dijkstra Archive Center for American History University of Texas at Austin transcription Jun 14 1965 Dijkstra E W 1968 The structure of the THE multiprogramming system Communications of the ACM 11 5 341 346 doi 10 1145 363095 363143 S2CID 2021311 a b c d e Silberschatz Abraham Peterson James L May 1988 13 Historical Perspective Operating System Concepts p 512 Retrieved from https en wikipedia org w index php title THE multiprogramming system amp oldid 1184151596, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.