The Structuring of Systems Using Upcalls David D Clark Presented by: Prassnitha Sampath.

Slides:



Advertisements
Similar presentations
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Advertisements

Computer System Organization Computer-system operation – One or more CPUs, device controllers connect through common bus providing access to shared memory.
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 2 – Protocol Architecture, TCP/IP, and Internet-Based.
1 William Stallings Data and Computer Communications 7 th Edition Chapter 2 Protocols and Architecture.
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 2 – Protocol Architecture, TCP/IP, and Internet-Based.
Semester Copyright USM EEE442 Computer Networks Introduction: Protocols En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK)
Data Communications Architecture Models. What is a Protocol? For two entities to communicate successfully, they must “speak the same language”. What is.
Ralf Juengling Portland State University The Structuring of Systems using Upcalls David D. Clark, “The Structuring of Systems using Upcalls”, Proc. of.
William Stallings Data and Computer Communications 7 th Edition Chapter 2 Protocols and Architecture.
CHAPTER 9: Input / Output
The Structuring of Systems Using Upcalls David D. Clark 4/26/20111Frank Sliz, CS533, Upcalls.
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.
COE 342: Data & Computer Communications (T042) Dr. Marwan Abu-Amara Chapter 2: Protocols and Architecture.
Chapter 2 Network Models.
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
Gursharan Singh Tatla Transport Layer 16-May
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 2 – Protocol Architecture, TCP/IP, and Internet-Based.
ISO Layer Model Lecture 9 October 16, The Need for Protocols Multiple hardware platforms need to have the ability to communicate. Writing communications.
Protocol Architectures. Simple Protocol Architecture Not an actual architecture, but a model for how they work Similar to “pseudocode,” used for teaching.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Protocols and the TCP/IP Suite
CHAPTER 9: Input / Output
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
William Stallings Data and Computer Communications 7 th Edition Data Communications and Networks Overview Protocols and Architecture.
THE OSI REFERENCE MODEL Open Systems Interconnection (OSI) International Organization for Standardization( ISO)
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Introduction Slide 1 A Communications Model Source: generates.
CS533 Concepts of Operating Systems Jonathan Walpole.
Architecting Web Services Unit – II – PART - III.
Internet Model. Interfaces Between Layers The passing of the data and network information down through the layers of the sending device and back up.
Data and Computer Communications Chapter 2 – Protocol Architecture, TCP/IP, and Internet-Based Applications.
Remote Procedure Calls Adam Smith, Rodrigo Groppa, and Peter Tonner.
Chapter 2 Protocols and the TCP/IP Suite 1 Chapter 2 Protocols and the TCP/IP Suite.
William Stallings Data and Computer Communications
Frameworks CompSci 230 S Software Construction.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Prepared by: Azara Prakash L.. Contents:-  Data Transmission  Introduction  Socket Description  Data Flow Diagram  Module Design Specification.
Model View Controller MVC Web Software Architecture.
Open System Interconnection Describe how information from a software application in one computer moves through a network medium to a software application.
Network Models.
Unit III Bandwidth Utilization: Multiplexing and Spectrum Spreading In practical life the bandwidth available of links is limited. The proper utilization.
1 Chap. 2 Protocol. 2 Communication model Simplified communication model  source node  gather data from sensor or switch using ADC (analog-to-digital.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Network Architecture Protocol hierarchies Design Issues for the layers
CSCI 465 D ata Communications and Networks Lecture 2 Martin van Bommel CSCI 465 Data Communications & Networks 1.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 3.
Presented by: JungChun Lu. Goal Propose a design methodology suitable for operating system programs which: Permits synchronous procedure call between.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
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)
Computer Networking A Top-Down Approach Featuring the Internet Introduction Jaypee Institute of Information Technology.
OSI Model OSI MODEL.
Network Models.
Kernel Design & Implementation
Software Design and Architecture
The Structuring of Systems Using Upcalls David D. Clark
Net 323 D: Networks Protocols
Protocol Architectures
Data and Computer Communications by William Stallings Eighth Edition
Chapter 2: The Linux System Part 3
Structuring Of Systems Using Upcalls - By David D. Clark
OSI Model OSI MODEL.
Structuring of Systems using Upcalls
Computer Networking A Top-Down Approach Featuring the Internet
CSE 542: Operating Systems
Presentation transcript:

The Structuring of Systems Using Upcalls David D Clark Presented by: Prassnitha Sampath

Background – Layered Architectures Layered architectures de facto standard for designing complex systems, for example – TCP/IP seven layered stack – OSI reference model – 3-tier client-server architecture Layered architectures have inherent advantages – Helps system organization – Acyclic dependency graph, better for verification – Stand alone testing at any layer – Modularity and portability Layered architectures typically have an implicit hierarchy of trust and reliability – As we move down the stack, the “trustworthiness” of the system increases – If a higher layer of the stack fails, the lower levels are still uncorrupted

Limitations of Layered Architectures The data flow model has an inherent bias top to bottom – “Downcalls”: Data flows down the stack through traditional function calls, rather quick and efficient – Data flow upwards is typically inefficient Either inter-process signaling or polling to indicate data availability Some cases require data buffering and/or copying of data from lower layer to a higher layer Proposal to address the inefficiencies – Add support for “Upcalls”; allow procedure calls from lower layers to higher layers. Intended to address the imbalance of the system – Enable “true” subroutine calls both upwards and downwards. Intended to modulate and balance data flow

Proposed System Organization Swift – Operating System built with the proposed paradigm Each layer is composed of a set of sub- routines which can be invoked both upwards and downwards Coordination across subroutines within the same layer using shared memory Multitask Modules Easy access to relevant state information for all tasks User tasks span a vertical stack all the way from the top layers to the bottom layers Upper layer is always “available” to the lower layer and vice versa

An Example Application Layer Transport Layer Network Layer

An Example Initiates a connection and indicates which function needs to be called when data is available Behavior when data is received. Opens a network layer connection, and sets it up to indicate which function to call when data is received on the network layer. Updates data structures to remember which function to callback Transport layer receive function that reformats the input, and redirects to the application layer receive function. Utility function from the transaction layer. This function understands the format of packets and the port they are associated with. Primarily used by network layer to identify port Opens a network layer connection, spawns a new task that listens on the port, and returns control. It also updates some network layer data structures to associate the listener process with the port Services packets as they come. Redirects to the appropriate transaction layer receive function. This will be called by the net-dispatch, which is a common function called by the interrupt handler Services raw network packets as they come. Puts the packet in the data structure corresponding to the port on which the packet was received. Wakes up the thread associated with the port

Advantages of Upcall Methodology – I Efficiency – All communication between layers is through subroutine calls, which makes it efficient – There is a smaller need for Inter Process Communication, which also adds to efficiency Closely written layers which provides scope for optimizations as against a one-size-fits-all approach – E.g. the transport layer can indicate availability of another packet to send and enable piggy-backing of the ack with new data to send

Advantages of Upcall Methodology – II Programmers tend to understand procedure calls more easily than standardized interfaces Data flow control simplicity – Data is never duplicated in the transaction layer – Application layer can itself back-pressure the network layer – Do not need to enable data buffering and back- pressuring between layers – Disadvantage: The above is also a short-coming because a poorly written application can swamp the full network

Disadvantages of Upcall Methodology – I Reliability: If an upper layer fails, then it potentially brings down the full framework Potential Solutions: – Organize the multi-task modules in a fault-resilient manner by dividing up the “private” variables from the “shared” state – “Tasks” should be expendable Permanent damage to the environment such as a lock held, etc, should be avoided by design – Implement layer specific cleanup mechanisms to reclaim lost resources due to defunct tasks

Disadvantages of Upcall Methodology – II Trust: Common/Shared software for the layers is more “trustworthy” due to a formal spec on the behavior Potential Solutions: – Rely on “competent” programmers – Humbly submit, these are a scarce resource

Disadvantages of Upcall Methodology – III Recursive behavior: One very desirable property of the layered architecture is that the dependency graph is acyclic. – This makes testing and verification simple. – Also the lower layer is in a consistent state w.r.t. the upper layers within each function. However, if upcalls are allowed, the system state can be changed by the upcalled procedure. Potential Solutions: – Lower layer reverifies system state after each upcall. – Prohibit recursive downcall. Preserver acyclic nature of function call graph Possibly use flags for down communication – Use a combination of a pull-push mechanism for poster-boy cases of recursive downcalls For eg. Instead of requesting the upper layer to send data triggering a downcall to send data, send structure for the upper layer to fill

Disadvantages of Upcall Methodology – IV Multitask Module: Multitask module requires parallel programming with shared memory, prone to bugs – Inappropriate usage of locks possible Potential Solutions: – Code carefully, like coding any other parallel system. – Use other inter-process communication techniques for synchronization. Possibly have a main task that performs the actual actions Starts resembling traditional layered architecture with the primary task being a layer in itself