Presented by: JungChun Lu. Goal Propose a design methodology suitable for operating system programs which: Permits synchronous procedure call between.

Slides:



Advertisements
Similar presentations
CT213 – Computing system Organization
Advertisements

Executional Architecture
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
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.
04/14/2008CSCI 315 Operating Systems Design1 I/O Systems Notice: The slides for this lecture have been largely based on those accompanying the textbook.
The Structuring of Systems Using Upcalls David D Clark Presented by: Prassnitha Sampath.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
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)
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
Inter Process Communication:  It is an essential aspect of process management. By allowing processes to communicate with each other: 1.We can synchronize.
3.5 Interprocess Communication
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.
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.
Internetworking Fundamentals (Lecture #2) Andres Rengifo Copyright 2008.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
 The Open Systems Interconnection model (OSI model) is a product of the Open Systems Interconnection effort at the International Organization for Standardization.
Gursharan Singh Tatla Transport Layer 16-May
3/11/2002CSE Input/Output Input/Output Control Datapath Memory Processor Input Output Memory Input Output Network Control Datapath Processor.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Protocol Architectures. Simple Protocol Architecture Not an actual architecture, but a model for how they work Similar to “pseudocode,” used for teaching.
Protocols and the TCP/IP Suite
Distributed Systems. Interprocess Communication (IPC) Processes are either independent or cooperating – Threads provide a gray area – Cooperating processes.
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.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
Computer Networks. Data & Communication When we communicate we share information  Local Communication, if Face to Face  Remote, if through Telephone.
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.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 13.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
EPICS Release 3.15 Bob Dalesio May 19, Features for 3.15 Support for large arrays - done for rsrv in 3.14 Channel access priorities - planned to.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
The Mach System Silberschatz et al Presented By Anjana Venkat.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Implementing Remote Procedure Calls Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Published: ACM Transactions on Computer Systems,
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 3.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 12: I/O Systems I/O hardwared Application I/O Interface Kernel I/O.
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)
Kernel Design & Implementation
Module 12: I/O Systems I/O hardware Application I/O Interface
Microprocessor Systems Design I
CHAPTER 3 Architectures for Distributed Systems
The Structuring of Systems Using Upcalls David D. Clark
Software Architecture
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
CS703 - Advanced Operating Systems
Chapter 2: The Linux System Part 3
Threading And Parallel Programming Constructs
Structuring Of Systems Using Upcalls - By David D. Clark
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
CS533 Concepts of Operating Systems Class 11
Structuring of Systems using Upcalls
Computer Networking A Top-Down Approach Featuring the Internet
CSE 153 Design of Operating Systems Winter 2019
Transport Layer 9/22/2019.
Module 12: I/O Systems I/O hardwared Application I/O Interface
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Presented by: JungChun Lu

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.

Layered 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 layers, the trustworthiness of the system increases. If a higher layer fails, the lower levels are still uncorrupted.

Limitation of Layered Architecture Data flow of Layered Architecture: Each layer is implemented as a process. Data flows are using asynchronous Inter-process communication between layers. 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 Overcome 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 for both upwards and downwards. Intended to modulate and balance data flow.

Swift Layered Architecture Each layer is composed of a set of sub- routines which can be invoked both upwards and downwards and is an encapsulated multitask module. Implemented using a single address space. For storing variables. For efficient passing of data between layers. Coordination across subroutines within the same layer using shared memory. Multitask Modules. Easy access to relevant state information for all tasks. User tasks span vertically all the way from the top layers to the bottom layers. Upper layer is always “available” to the lower layer and vice versa.

Multi-task Modules Each layer defined as a collection of subroutines: called multi-task 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.

Structure Comparison TCP IP Ethernet Driver FTP Client Ethernet Inter-process Communication Process Multitask Modules Thread / task Subroutine Calls Tasks Inter-process Communication Swift Layer StructureTCP/IP Layer Structure

Layered Protocol Example Client has some data to send and initiate a connection with downcall arming. Behavior when data is received. Transport-open downcalled by display-start, and it determines how the data should be formatted. Transport layer receive function that reformats the input and upcalls to the application layer receive function. Upcalled by net-dispatch to determine which transport level entity should receive the packet. Net-open is downcalled by transport-open, and it determines where and when to send the data. The signaled task starts running by executing the program net-receive and then upcalls the subroutine transport-receive. 1.The subroutine net-dispatch is upcalled by interrupt handler. 2.Using information from transport-get-port, it selects the correct task from a table and then signals that task.

Advantages of Methodology All communication between layers is through subroutine calls, which makes it efficient. Inter-Process Communication is limited, only within a layer through private interface of that layer. Transport layer can indicate availability of another packet to send and enable piggy-back of Ack with new data to send.

Advantages of Methodology With Multitask Modules: It is easier to understand and less threading. Decisions about how tasks are used need not be defined until late in design time. Data flow control simplicity: Data is never duplicated in the transaction layer. Do not need to enable data buffering and back-pressuring between layers.

Disadvantages of Methodology Reliability Problem: If an upper layer fails during upcall, data and states in lower layers may be corrupted. Potential Solutions: Recover shared variable in lower layers: Organize the data into two categories – The data associated with each client. The data describes the way various clients interact and share the resources. Recover or determine task executing code: Tasks should be expendable - If a client fails to return, the task can be thrown away as long as no locks for shared resources are held with that task. Implement layer specific cleanup mechanisms to reclaim lost resources due to invalid tasks.

Disadvantages of Methodology Loop Problem: How to distinguish between a task in a loop and the one running for a long time? Potential Solution: Use timers. Make a human oversee it.

Disadvantages of Methodology Trustworthy Problem: Violation of trust between layers. Potential Solution: Programmers need to be skilled enough to organize the resources properly.

Disadvantages of Methodology Recursive Call Problem: Indirect recursive calls can lead data corruption. Potential Solution: Put variables on 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 to query the client.

Disadvantages of Methodology Multitask module requires parallel programming with shared memory can lead to problems: Inappropriate usage of locks can cause deadlock while doing downcall and upcall. Potential Solutions: Rely on Competent programmers. 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.

Conclusion Layers implemented as processes is a bad idea. Upcalls are simple and efficient. Swift OS is portable. The methodology is Suitable for Network protocols and text editors. Efficiency of the system depends on the skill level of the programmer.

Reference David D. Clark, “The Structuring of Systems Using Upcalls.” Slides from Madhura Rama, Winter Slides from Prassnitha Sampath, Winter 2009.