Review of The Structure of the “THE”-Multiprogramming System

Slides:



Advertisements
Similar presentations
Concurrency: Mutual Exclusion and Synchronization Chapter 5.
Advertisements

1 Concurrency: Mutual Exclusion and Synchronization Chapter 5.
The Structure of the “THE”- Multiprogramming System
1 Concurrency: Mutual Exclusion and Synchronization Chapter 5.
1 Lecture 2: Review of Computer Organization Operating System Spring 2007.
The Structure of “THE” – Multiprogramming System by Edsger W. Dijksta Technological University, Eindhoven, Netherlands. Presented by Navya Jammula.
Computer Science 162 Discussion Section Week 2. Agenda Recap “What is an OS?” and Why? Process vs. Thread “THE” System.
Inter Process Communication:  It is an essential aspect of process management. By allowing processes to communicate with each other: 1.We can synchronize.
Chapter 11 Operating Systems
©Brooks/Cole, 2003 Chapter 7 Operating Systems Dr. Barnawi.
CS533 - Concepts of Operating Systems
1 Concurrency: Deadlock and Starvation Chapter 6.
The Structure of the “THE” -Multiprogramming System Edsger W. Dijkstra Jimmy Pierce.
Review of The Structure of the “THE”-Multiprogramming System Edsger W. Dijkstra Technological University, Eindhoven, The Netherlands Communications of.
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
Chapter 3 Memory Management: Virtual Memory
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
Computer System Overview Chapter 1. Operating System Exploits the hardware resources of one or more processors Provides a set of services to system users.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
Concurrency: Mutual Exclusion and Synchronization Chapter 5.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Introduction to Concurrency.
The Structure of the “THE”-Multiprogramming System
Chapter 7 Operating Systems. Define the purpose and functions of an operating system. Understand the components of an operating system. Understand the.
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
VIRTUAL MEMORY By Thi Nguyen. Motivation  In early time, the main memory was not large enough to store and execute complex program as higher level languages.
Concurrency: Mutual Exclusion and Synchronization Chapter 5.
1 Concurrency: Mutual Exclusion and Synchronization Chapter 5.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming.  To allocate scarce memory.
The Structure of the “THE”- Multiprogramming System Edsger W. Dijkstra Presented by: Jin Li.
Lecture 1: Review of Computer Organization
CS533 Concepts of Operating Systems Jonathan Walpole.
SOCSAMS e-learning Dept. of Computer Applications, MES College Marampally INTERPROCESS COMMUNICATION AND SYNCHRONIZATION SYNCHRONIZATION.
Copyright © Curt Hill More on Operating Systems Continuation of Introduction.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview: Using Hardware.
The Structure of the "THE"- Multiprogramming Edsger W. Dijkstra Technological University, Eindhoven, The Netherlands System Andrew Edwards.
1 Computer System Overview Chapter 1. 2 Operating System Exploits the hardware resources of one or more processors Provides a set of services to system.
1 Chapter 11 I/O Management and Disk Scheduling Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and.
Module 12: I/O Systems I/O hardware Application I/O Interface
Processes and threads.
Chapter 2 Memory and process management
Chapter 8: Main Memory.
Chapter 3: Process Concept
The Nucleus of a Multiprogramming System
Operating Systems (CS 340 D)
Chapter 9 – Real Memory Organization and Management
William Stallings Computer Organization and Architecture
Chapter 3 Top Level View of Computer Function and Interconnection
The Structure of “THE” – Multiprogramming System
Concurrency: Mutual Exclusion and Synchronization
Lecture 2: Processes Part 1
Operating Systems.
Main Memory Background Swapping Contiguous Allocation Paging
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
BIC 10503: COMPUTER ARCHITECTURE
Parallel execution Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Components of a CPU AS Computing - F451.
Concurrency: Mutual Exclusion and Process Synchronization
The Structure of the “The” –Multiprogramming System
Operating Systems : Overview
Operating Systems: History
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Operating Systems : Overview
CSE 153 Design of Operating Systems Winter 19
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
COMP755 Advanced Operating Systems
Chapter 13: I/O Systems.
Parallel execution Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Chapter 3: Process Management
Presentation transcript:

Review of The Structure of the “THE”-Multiprogramming System Edsger W. Dijkstra Technological University, Eindhoven, The Netherlands Communications of the ACM, 11(5):341--346, 1968 Presented by Rachel Cool PSU-CS 533-Winter 2010

Goals of the Multiprogramming System Process smoothly a continuous flow of user programs Reduction of turn-around time for programs of short duration Economic use of peripheral devices Automatic control of backing store to be combined with economic use of the central processor Economic feasibility to use the machine for multiple apps Not intended as a multi-access system

System Hardware Electrologica X8 32K core memory, 2.5msec 512K word drum, 1024 words per track, 40msec rev. time Indirect addressing Commanding peripherals and controlling interrupts Low capacity channels, 10 are used 3 paper tape readers at 1000 char/sec 3 paper tape punches at 150char/sec 2 teleprinters 1 plotter 1 line printer

Storage Allocation Memory units – core pages and drum pages Information units – segments A segment fits in a page Segment identifier gives fast access to a segment variable Segment variable value tells if the segment is empty or not If the segment is not empty, the value denotes which page(s) the segment can be found A core page can be dumped onto a free drum page – will choose the one with the minimum latency time (beginning of the paged virtual memory abstraction) A program does not have to occupy consecutive drum pages

Processor Allocation Only the time succession of various states has logical meaning for a process, not the actual speed of execution Mutual synchronization allows for cooperation between sequential processes Processor switches from process to process, temporarily delaying the progress of the current process The system is designed in terms of the abstract “sequential processes” (beginning of the process/thread abstraction)

Synchronizing Primitives Semaphores are initialized with the value of 0 or 1 P-operation decreases value of a semaphore by 1 If result is non-negative, process can continue If result is negative, process is stopped and is put on waiting list V-operation increases value of a semaphore by 1 If result is positive, operation has no further effect If result is non-positive, a process on the waiting list is removed and able to continue progress once allocated to a processor (it is undefined which process is removed if there is more than one process on the waiting list) Semaphores are used in the design as either mutexes or as condition synchronization mechanisms

Mutual Exclusion Maximum value of mutex equals 1 begin semaphore mutex; mutex := 1; parbegin begin L1: P(mutex); critical section 1; V(mutex); remainder of cycle 1; go to L1 end; begin L2: P(mutex); critical section 2; V(mutex); remainder of cycle 2; go to L2 end parend Maximum value of mutex equals 1 Minimum value of mutex equals –(n-1) if there are n parallel processes

Private Semaphores Used as condition synchronization mechanisms Each sequential processes has a number of private semaphores Initialized to 0; range -1 to 1 When progress of a process depends on current values of state variables: P(mutex) “inspection and modification of state variables including a conditional V(private semaphore)”; V(mutex) P(private semaphore) When blocked processes should get permission to continue: P(mutex); “modification and inspection of state variables including zero or more V-operations on private semaphores of other processes”; V(mutex)

Harmonious Cooperation Sequential processes regarded as cyclic processes Each process has a “homing position” when at rest Processes leave homing position to accept a task and cannot return until task is completed A single initial task cannot generate an infinite number of tasks since processes can only generate tasks for processes at lower levels of the hierarchy Impossible for all processes to be in their homing positions while there is still a pending an unaccepted task After acceptance of an initial task, all processes will eventually return to their homing position Each blocked process relies on other processes to unblock Absence of “circular waits”: P waiting for Q waiting for R waiting for P

System Hierarchy THE admits to a strict hierarchical structure Consists of 6 layers Level 5 - Operator Level 4 – User Programs Level 3 – Buffering I/O Level 2 – Message Interpreter Level 1 – Segment Controller Level 0 – Processor Allocation

Level 0 – Processor Allocation Responsible for processor allocation to a process Real-time clock interrupts prevent a process to monopolize the processor Priority rule included Above this level, the number of processors shared is no longer relevant At higher levels, the actual processor has lost its identity

Level 1 – Segment Controller Consists of a sequential process synchronized with the drum interrupt and sequential processes of higher levels Responsible for memory storage and allocation Provides a level of abstraction where higher levels identify information in terms of segments At higher levels, the actual storage pages have lost their identity

Level 2 – Message Interpreter Works closely with the operator – when a key is pressed, the character along with an interrupt is sent to the machine Printing is done via output command generated by the message interpreter Manages ‘conversations’ between operators and processes Above this level, each process thinks it has its own private console; the console teleprinter has lost its identity Satisfied by mutual synchronization, “only one conversation at a time” restriction is placed since the processes share the same physical console

Level 3 – Buffering I/O Buffering of input streams Un-buffering of output streams Placed above level 2 to allow conversations with the operator (for error detection) Abstracts the actual peripherals to higher levels as “logical communication units”

Levels 4 and 5 Level 4 contains independent-user programs Level 5 is the operator The EL X8 Operator's Console Image from http://www.science.uva.nl/museum/X1.html

Testing Verification of the system began at level 0 Portions of higher levels were not added until previous levels were thoroughly tested Level 0: inspection that under all circumstances processor time was divided among sequential processes Level 1: all relevant states were formulated in terms of sequential processes making demands on core pages If not for separation between levels 0 and 1, the number of relevant states would have increased to the point that exhaustive testing would not have been possible Testing had not completed at the time paper was written

Conclusions Concepts introduced in the paper are taken for granted today Process/thread abstraction Paged virtual memory abstraction Use of semaphores Implementation of independent abstractions via hierarchical levels Hierarchical structure was vital for verification Levels of complexity were removed at each layer Logical soundness can be proved early At each stage, the number of relevant cases were small enough to allow testing of all and remove doubts about the system Testing was able to continue even after drum channel hardware broke down