Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

THE multiprogramming system

From Wikipedia, the free encyclopedia
First implementation of paged virtual memory
Operating system
THE multiprogramming system
DeveloperEindhoven University of Technology (Technische Hogeschool Eindhoven);
Edsger Dijkstra,et al.
Written inElectrologica X8assembly language
Working stateDiscontinued
Initial release1965; 60 years ago (1965)
Final releaseFinal / 1968; 57 years ago (1968)
Marketing targetResearch
Available inEnglish
Update methodCompile fromsource code
Supported platformsElectrologica X8
Kernel typeLayered
Default
user interface
Paper tape

TheTHE multiprogramming system (THE OS) was a computeroperating system designed by a team led byEdsger 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 (inDutch) of theEindhoven University of Technology of theNetherlands. The THE system was primarily abatch system[3] that supportedmultitasking; it was not designed as amulti-user operating system. It was much like theSDS 940, but "the set ofprocesses in the THE system was static".[3]

The THE system apparently introduced the first forms of software-basedpagedvirtual memory (theElectrologica X8 did not supporthardware-basedmemory management),[3] freeing programs from being forced to use physical locations on thedrum memory. It did this by using a modifiedALGOLcompiler (the onlyprogramming language supported by Dijkstra's system) to "automatically generatecalls to system routines, which made sure the requested information was in memory,swapping if necessary".[3] Paged virtual memory was also used forbufferinginput/output (I/O) device data, and for a significant portion of the operating system code, and nearly all theALGOL 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 alayered 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 thecentral processing unit (CPU), and accounted for processes that were blocked on semaphores. It dealt withinterrupts and performed thecontext switches when a process change was needed. This is the lowest level. In modern terms, this was thescheduler.
  • Layer 1 was concerned withallocating memory to processes. In modern terms, this was the pager.
  • Layer 2 dealt with communication between the operating system and thesystem 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 ofuser programs. There were 5 processes: in total, they handled thecompiling,executing, andprinting of user programs. When finished, theypassed control back to the schedulequeue, which waspriority-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 thekernel into layers was similar in some ways toMultics' laterring-segmentation model. Several subsequent operating systems have used layering to some extent, includingWindows NT andmacOS, although usually with fewer layers.

The code of the system was written inassembly language for the DutchElectrologica X8 computer. This computer had aword size of 27 bits, 48kilowords ofcore memory,[3] 512 kilowords ofdrum memory providingbacking store for theLRU 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. ^abcdeSilberschatz, Abraham; Peterson, James L. (May 1988), "13: Historical Perspective",Operating System Concepts, p. 512

External links

[edit]
Works
Main research
areas
Related
people
Retrieved from "https://en.wikipedia.org/w/index.php?title=THE_multiprogramming_system&oldid=1323962891"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp