Structuring of Systems using Upcalls

Slides:



Advertisements
Similar presentations
Categories of I/O Devices
Advertisements

More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Using DSVM to Implement a Distributed File System Ramon Lawrence Dept. of Computer Science
Chapter 7 Protocol Software On A Conventional Processor.
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
The Structuring of Systems Using Upcalls David D Clark Presented by: Prassnitha Sampath.
1 Concurrent and Distributed Systems Introduction 8 lectures on concurrency control in centralised systems - interaction of components in main memory -
CS533 Concepts of Operating Systems Class 11 System Structuring using Layers.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
Concurrency, Threads, and Events Robbert van Renesse.
Ralf Juengling Portland State University The Structuring of Systems using Upcalls David D. Clark, “The Structuring of Systems using Upcalls”, Proc. of.
The Structuring of Systems Using Upcalls David D. Clark 4/26/20111Frank Sliz, CS533, Upcalls.
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
The Structuring of Systems Using Upcalls David D. Clark Presenter: Haitham Gad.
The Structuring of Systems Using Upcalls Paper by David D. Clark Presentation by Emerson Murphy-Hill.
PRASHANTHI NARAYAN NETTEM.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Advanced Operating Systems CIS 720 Lecture 1. Instructor Dr. Gurdip Singh – 234 Nichols Hall –
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
CS533 Concepts of Operating Systems Jonathan Walpole.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Concurrency & Dynamic Programming.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
By: Rob von Behren, Jeremy Condit and Eric Brewer 2003 Presenter: Farnoosh MoshirFatemi Jan
CS533 Concepts of Operating Systems Jonathan Walpole.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
Presented by: JungChun Lu. Goal Propose a design methodology suitable for operating system programs which: Permits synchronous procedure call between.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
The Structuring of Systems Using Upcalls By David D. Clark Presented by Samuel Moffatt.
The Structuring of Systems Using Upcalls David D. Clark (Presented by John McCall)
Chapter 2 Operating System Overview Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
Introduction to Operating Systems Concepts
Computer System Structures
Kernel Design & Implementation
Module 12: I/O Systems I/O hardware Application I/O Interface
Advanced Operating Systems CIS 720
Topics Covered What is Real Time Operating System (RTOS)
CS533 Concepts of Operating Systems
CS399 New Beginnings Jonathan Walpole.
CS490 Windows Internals Quiz 2 09/27/2013.
Real-time Software Design
The Structuring of Systems Using Upcalls David D. Clark
Chapter 4: Threads.
Threads and Data Sharing
MPI-Message Passing Interface
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
CS703 - Advanced Operating Systems
Process Description and Control
Operating Systems : Overview
Structuring Of Systems Using Upcalls - By David D. Clark
Operating Systems : Overview
Process Description and Control
Process Description and Control
Operating Systems : Overview
Operating Systems : Overview
Process Description and Control
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Operating Systems : Overview
CS533 Concepts of Operating Systems Class 11
Why Threads Are A Bad Idea (for most purposes)
Operating Systems : Overview
CS510 Operating System Foundations
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Module 12: I/O Systems I/O hardwared Application I/O Interface
Presentation transcript:

Structuring of Systems using Upcalls David D.Clark Presented by Madhura S Rama

Agenda Goal Layers and Upcalls Multitask Modules Control Flow in a N/W Protocol routine Advantages of Upcalls Advantages of Multitask Modules Issues Other Features Conclusion My View

Goal Propose a design methodology suitable for operating system programs which Permits synchronous procedure call between layers in both upward and downward direction. Provides runtime support for highly interactive parallel software packages Swift OS built to implement this methodology

Layered Architecture Traditionally, layer below provides services to layer above. Flow of control – Top-down Each layer is usually implemented as a process Uses asynchronous message passing for communication between layers Inefficient – requires context switches, inter process communication and data buffering.

Swift Layered Architecture Layer provides service to layer above or below depending on the flow of control – called Upcalls Each layer is an encapsulated multitask module Implemented using a single address space For storing variables For efficient passing of data between layers

Multitask Modules Each layer defined as a collection of subroutines – called multitask modules Subroutines live in number of tasks in a layer Layers communicate through subroutine calls Each layer contains private state which are accessible through shared memory Various tasks in a layer communicate using state variables

Layering and Upcalls Swift Layer TCP/IP Layer FTP Client TCP IP Process Multitask Modules TCP Inter-process Communication IP Thread / task Ethernet Driver Subroutine Calls Ethernet Tasks

Ex: Control Flow in a N/W Protocol routine Display_start receive Get_data Keyboard_ handler Display Layer wakeup Transport_open receive Get_port send Arm_send Transport Layer wakeup Net_open Net_receive Net_dispatch Net_send Network Layer Create task wakeup Interrupt Handler

Advantages Of Upcalls: Of Multitask Modules: Efficient - Subroutine call cheaper than IPC Simplicity of implementation Piggybacking achieved effectively Of Multitask Modules: Easier to understand and less threatening Decisions about how tasks are used need not be defined until late in design time

Issue 1 Lower layer left in inconsistent state when upper layer fails during upcall Solution: Partition the data Make that task non-essential and throw it away Mediate the resources used between the client and the layers and run a cleanup procedure

Issue 2 How to distinguish between a task in a loop and the one running for a long time? Solution: Use timers Make a human oversee it

Issue 3 Violation of trust between lower layers Solution: Programmers need to be skilled enough to organize the resources properly

Issue 4 Indirect Recursive Call Solution: Put variables on a consistent state and reevaluate on call return Prohibit an upcall from making any recursive downcall Queue the work request for later execution Make the recursive call set flags for later examination Replace the downcall by extra return arguments to upcall/ another upcall to query the client

Issue 5 Modules failing to use monitor locks properly Solution: Requires programming discipline

Other Features Task Scheduling Address Space Management Associate dynamic priority to tasks scheduled Deadline promotion Address Space Management Use CLU to avoid propagation errors in a single address space Garbage Collection

Conclusion Realizing a layer as a process is a bad idea Upcalls are simple and efficient Swift OS is portable Suitable for Network protocols and text editors Not suitable for large applications like compilers Efficiency of the system depends on the skill level of the programmer

My View If efficiency is one of the goals then, garbage collection should not be used as it is inefficient System cannot be tested layer by layer as the call flow is in both direction. Makes debugging difficult. As calls are in both direction, order of acquiring the locks cannot be enforced – Might lead to deadlocks. Selecting the correct layered architecture is a tradeoff between “Safety and Performance”

Questions????