The Structure of the “THE” -Multiprogramming System Edsger W. Dijkstra Jimmy Pierce.

Slides:



Advertisements
Similar presentations
Chapter 5 Concurrency: Mutual Exclusion and Synchronization Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee.
Advertisements

Operating Systems Part III: Process Management (Process Synchronization)
1 Chapter 5 Concurrency: Mutual Exclusion and Synchronization Principals of Concurrency Mutual Exclusion: Hardware Support Semaphores Readers/Writers Problem.
CAS3SH3 Midterm Review. The midterm 50 min, Friday, Feb 27 th Materials through CPU scheduling closed book, closed note Types of questions: True & False,
Global Environment Model. MUTUAL EXCLUSION PROBLEM The operations used by processes to access to common resources (critical sections) must be mutually.
Concurrency: Mutual Exclusion and Synchronization Chapter 5.
Ch. 7 Process Synchronization (1/2) I Background F Producer - Consumer process :  Compiler, Assembler, Loader, · · · · · · F Bounded buffer.
Chapter 6 Process Synchronization Bernard Chen Spring 2007.
Chapter 6: Process Synchronization
5.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 5: CPU Scheduling.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 6: Process Synchronization.
Process Synchronization. Module 6: Process Synchronization Background The Critical-Section Problem Peterson’s Solution Synchronization Hardware Semaphores.
Intertask Communication and Synchronization In this context, the terms “task” and “process” are used interchangeably.
1 Concurrency: Mutual Exclusion and Synchronization Chapter 5.
Informationsteknologi Wednesday, September 26, 2007 Computer Systems/Operating Systems - Class 91 Today’s class Mutual exclusion and synchronization 
The Structure of the “THE”- Multiprogramming System
Chapter 5 Concurrency: Mutual Exclusion and Synchronization Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee.
1 Concurrency: Mutual Exclusion and Synchronization Chapter 5.
1 Synchronization Coordinating the Activity of Mostly Independent Entities.
The Structure of “THE” – Multiprogramming System by Edsger W. Dijksta Technological University, Eindhoven, Netherlands. Presented by Navya Jammula.
6/16/2015 Chapter Eight Process Synchronisation. Index Objectives Concurrent processes and Asynchronous concurrent processes Process synchronisation Mutual.
OS Spring’04 Concurrency Operating Systems Spring 2004.
Inter Process Communication:  It is an essential aspect of process management. By allowing processes to communicate with each other: 1.We can synchronize.
Semaphores CSCI 444/544 Operating Systems Fall 2008.
Chapter 11 Operating Systems
CS533 - Concepts of Operating Systems
A. Frank - P. Weisberg Operating Systems Introduction to Cooperating Processes.
Concurrency - 1 Tasking Concurrent Programming Declaration, creation, activation, termination Synchronization and communication Time and delays conditional.
Using Two Queues. Using Multiple Queues Suspended Processes Processor is faster than I/O so all processes could be waiting for I/O Processor is faster.
Instructor: Umar KalimNUST Institute of Information Technology Operating Systems Process Synchronization.
Review of The Structure of the “THE”-Multiprogramming System Edsger W. Dijkstra Technological University, Eindhoven, The Netherlands Communications of.
1 Micro-kernel. 2 Key points Microkernel provides minimal abstractions –Address space, threads, IPC Abstractions –… are machine independent –But implementation.
1 CSE Department MAITSandeep Tayal Computer-System Structures Computer System Operation I/O Structure Storage Structure Storage Hierarchy Hardware Protection.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
Concurrency, Mutual Exclusion and Synchronization.
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
1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
Computer Architecture Lecture 2 System Buses. Program Concept Hardwired systems are inflexible General purpose hardware can do different tasks, given.
Concurrency: Mutual Exclusion and Synchronization Chapter 5.
1 Concurrency: Mutual Exclusion and Synchronization Chapter 5.
Chapter 5 Concurrency: Mutual Exclusion and Synchronization Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee.
1 Concurrency: Mutual Exclusion and Synchronization Chapter 5.
PZ12B Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ12B - Synchronization and semaphores Programming Language.
Synchronization and semaphores Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Chapter 5 Concurrency: Mutual Exclusion and Synchronization Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee.
The Structure of the “THE”- Multiprogramming System Edsger W. Dijkstra Presented by: Jin Li.
13-1 Chapter 13 Concurrency Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads C# Threads.
Concurrency in Shared Memory Systems Synchronization and Mutual Exclusion.
C H A P T E R E L E V E N Concurrent Programming Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
Chapter 5 Concurrency: Mutual Exclusion and Synchronization Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee.
CS533 Concepts of Operating Systems Jonathan Walpole.
SOCSAMS e-learning Dept. of Computer Applications, MES College Marampally INTERPROCESS COMMUNICATION AND SYNCHRONIZATION SYNCHRONIZATION.
Distributed Mutual Exclusion Synchronization in Distributed Systems Synchronization in distributed systems are often more difficult compared to synchronization.
Chapter 6 Synchronization Dr. Yingwu Zhu. The Problem with Concurrent Execution Concurrent processes (& threads) often access shared data and resources.
The Structure of the "THE"- Multiprogramming Edsger W. Dijkstra Technological University, Eindhoven, The Netherlands System Andrew Edwards.
Review of The Structure of the “THE”-Multiprogramming System
Background on the need for Synchronization
The Structure of “THE” – Multiprogramming System
Concurrency: Mutual Exclusion and Synchronization
Threading And Parallel Programming Constructs
BIC 10503: COMPUTER ARCHITECTURE
Lecture 2 Part 2 Process Synchronization
Concurrency: Mutual Exclusion and Process Synchronization
The Structure of the “The” –Multiprogramming System
CSE 153 Design of Operating Systems Winter 19
CSE 451 Section 1/27/2000.
Presentation transcript:

The Structure of the “THE” -Multiprogramming System Edsger W. Dijkstra Jimmy Pierce

Progress Report on the multiprogramming effort at the Department of Mathematics at the Technological University in Eindhoven. (1968) EL X8 Modern 2.5 μsMemory Cycle Time Address Size Memory Size 27 bits 32K ns 64 bit GB

Goals Reduction in turn around time for programs of short duration Economic use of peripherals Automatic control of backing store with economic use of central processor Economic feasibility to use machine for programs which only need flexibility of the processor and not the capacity or power of it NOT multi access system Testable

Guiding Principles Select project as ambition as justifiably possible Select a machine with sound basic characteristics Experience does not lead to wisdom and understanding Don’t over incorporate features that only add work Don’t depend on specific properties of a machine Make an effort to learn as much as possible from past experiences

Layered Operating System

Bottom layers provide abstraction of resources Top layers access lower levels for resources Access always proceeds from top down

Testing Done in stages Bottom layer thoroughly tested before implementing layer above Allows full system testing in manageable time vs. 5 * 5 * 5 * 5 * 5 * 5 “… testing had not yet been completed, but the resulting system is guaranteed to be flawless.”

Contains: Processor Allocation Real-time Clock Interrupt Provides: Processor Abstraction Each process appears to have own processor Level 0

Processor Allocation Only unidirectional passing of time through various program states has meaning, not amount of time Delaying of process execution will have no harmful effects to the internal logic of the process Thus numerous processes can be executing independently of number of actual processors, as long as processors can switch to the various processes Semaphores used to regulate cooperation between processes

Semaphores Integer variable initialized to 1 or 0 P decrements variable and places process on a waiting list if new value is negative Works since delaying a process has no ill effects Two atomic methods, P and V V increments variable and removes a process from waiting list if new value is non-positive

Mutual Exclusion Protection of critical sections Mutex is globally accessible mutex = 1; P(mutex); critical section V(mutex);

Private Semaphores Used to block process while configuring environment ( creation of reader-writer buffer ) mutex = 1; privateSemaphore = 0; P(mutex); modify global state variables V(privateSemaphore); V(mutex); P(privateSemaphore); Private semaphore can be released globally but only locked privately

Contains: Segment Controller Provides: Memory Abstraction Each process has a segment of memory to use Level 1

Memory Allocation Unique identifiers for each segment of memory Detaches memory from core or drum identifier Memory can be located in any page at core or drum Segment identifier in core indicating segment is (non)empty and page address Memory swapped out of core does not have to return to same drum page from which it originated

Contains: Message Interpreter Provides: Device Abstraction Each process has own individual device handle Level 2

Message Interpreter All processes share console using mutual synchronization Process sends message to console with an identification header Handles interaction between processes and the user Operator must identify which process to communicate with Memory segments contain vocabulary for messages

Contains: Communication Units Provides: Logical Communication Units Buffering is handled automatically via communication channels Level 3

Communication Buffering Mutual exclusion needed to allocate peripherals to processes Processes must be able to communicate with operator ( hardware failure, anomalous conditions ) Peripherals wrapped by buffers and abstracted to logical communication units

Contains: Independent User Programs Provides: Independent user code to be executed “simultaneously” Level 4

Contains: The Operator Sold Separately Level 5

Proving Harmonious Cooperation Processes at rest are at homing positions When process accepts task, it leaves homing position Upon return from task, process returns to homing position Facts:

Processes performing a task will only generate a finite number of tasks for other processes Processes can only generate tasks at a lower level Thus cannot have circular process calls Attention must be paid to ensure process requesting segment from segment controller remains in core when call returns

It is impossible that all processes have returned to homing positions while there is still a generated, pending, unaccepted task Calls leave homing positions when tasks are accepted Calls to lower levels cause higher levels to block until call returns Calls return to homing positions when tasks are completed

Each process will eventually return to homing position after accepting a task Calls cannot generate an infinite number of child procedures Any blocked calls are due to lower process performing work on the higher level’s behalf Unidirectional flow through layers prevents circular waits ( A waiting on B waiting on C waiting on A )