Distributed System Structures Network Operating Systems –provide an environment where users can access remote resources through remote login or file transfer.

Slides:



Advertisements
Similar presentations
Categories of I/O Devices
Advertisements

Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Database Architectures and the Web
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
Silberschatz and Galvin  Operating System Concepts Module 16: Distributed-System Structures Network-Operating Systems Distributed-Operating.
Silberschatz, Galvin and Gagne  Operating System Concepts Chap15: Distributed System Structures Background Topology Network Types Communication.
Operating System Structure
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Distributed components
Network Operating Systems Users are aware of multiplicity of machines. Access to resources of various machines is done explicitly by: –Logging into the.
Distributed System Structures CS 3100 Distributed System Structures1.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Module 16: Distributed System Structures.
City University London
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
CS444/CS544 Operating Systems Finale 4/27/2007 Prof. Searleman
User Level Interprocess Communication for Shared Memory Multiprocessor by Bershad, B.N. Anderson, A.E., Lazowska, E.D., and Levy, H.M.
Course Overview Principles of Operating Systems
Learning Objectives Understanding the difference between processes and threads. Understanding process migration and load distribution. Understanding Process.
Cs238 Lecture 3 Operating System Structures Dr. Alan R. Davis.
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 17 Client-Server Processing, Parallel Database Processing,
1 Chapter 4 Threads Threads: Resource ownership and execution.
A. Frank - P. Weisberg Operating Systems Introduction to Tasks/Threads.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
1 I/O Management in Representative Operating Systems.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Operating Systems.
Distributed Process Implementation Hima Mandava. OUTLINE Logical Model Of Local And Remote Processes Application scenarios Remote Service Remote Execution.
1 Distributed Operating Systems and Process Scheduling Brett O’Neill CSE 8343 – Group A6.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Distributed Systems. Interprocess Communication (IPC) Processes are either independent or cooperating – Threads provide a gray area – Cooperating processes.
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bộ môn Mạng và Truyền Thông Máy Tính.
Distributed systems A collection of autonomous computers linked by a network, with software designed to produce an integrated computing facility –A well.
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
Chapter 5.4 DISTRIBUTED PROCESS IMPLEMENTAION Prepared by: Karthik V Puttaparthi
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
SUMAN K REDDY BURJUKINDI. Evolution of Modern Operating Systems 1 st Generation: Centralized Operating System 2 nd Generation: Network Operating System.
Multiprossesors Systems.. What are Distributed Databases ? “ A Logically interrelated collection of shared data ( and a description of this data) physically.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
Module 16: Distributed System Structures
Distributed System Concepts and Architectures 2.3 Services Fall 2011 Student: Fan Bai
Distributed System Concepts and Architectures Services
Shuman Guo CSc 8320 Advanced Operating Systems
Processes CSCI 4534 Chapter 4. Introduction Early computer systems allowed one program to be executed at a time –The program had complete control of the.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 16: Distributed System Structures.
Remote Procedure Call Andy Wang Operating Systems COP 4610 / CGS 5765.
Distributed System Services Fall 2008 Siva Josyula
Types of Operating Systems 1 Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2015.
ITGS Network Architecture. ITGS Network architecture –The way computers are logically organized on a network, and the role each takes. Client/server network.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization of Distributed & Mobile Systems Dr. Michael R.
Mark Stanovich Operating Systems COP Primitives to Build Distributed Applications send and receive Used to synchronize cooperating processes running.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Distributed Systems Unit – 1 Concepts of DS By :- Maulik V. Dhamecha Maulik V. Dhamecha (M.Tech.)
Chapter 14: Distributed Operating Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Apr 4, 2005 Outline n Motivation.
Module 16: Distributed System Structures Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Apr 4, 2005 Distributed.
CS307 Operating Systems Distributed System Structures Guihai Chen Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2012.
Intro to Distributed Systems Hank Levy. 23/20/2016 Distributed Systems Nearly all systems today are distributed in some way, e.g.: –they use –they.
Operating Systems Distributed-System Structures. Topics –Network-Operating Systems –Distributed-Operating Systems –Remote Services –Robustness –Design.
Module 16: Distributed System Structures
CHAPTER 3 Architectures for Distributed Systems
Chapter 16: Distributed System Structures
Distributed System Structures 16: Distributed Structures
Distributed Systems Bina Ramamurthy 11/12/2018 From the CDK text.
Sarah Diesburg Operating Systems COP 4610
Multithreaded Programming
Operating System Overview
Distributed Systems and Concurrency: Distributed Systems
Presentation transcript:

Distributed System Structures Network Operating Systems –provide an environment where users can access remote resources through remote login or file transfer Users must know something of the structure of the network -- I.e. machine names, resource locations Distributed Operating Systems –User access to remote resources is transparent through data, computation and process migration

Network OS Remote Login –Essentially logging into another computer All keyboard input sent directly to that computer All video output sent directly to your host computer which does nothing but redirect I/O On the Internet, use telnet (or rlogin) Remote File Transfer –Unlike Remote Login, file transfer usually only knows a few commands like get, put, ls (dir), cd FTP is the common form of file transfer

Data Migration Unlike FTP, the data transfer is transparent Two approaches –Copy entire file from remote to local site use file at local site and copy file (if updated) back to remote site at the end of the session can be thought of as an automated FTP –Copy only the portion of the file from remote to local site that is needed at the moment if another portion is needed later, it will be transferred at that time similar to paging, but in this case, done across the network Sun Network File System works like this

Computation Migration Used so that a calculation is performed on another computer –Useful if remote computer is more effective: remote computer has hardware and/or software required that host computer does not have data required is on remote computer and data transfer is less efficient than computation migration –Computation migration may be initiated by RPC (remote procedure call) Message passing

Process Migration Logical extension to computation migration: –Load balancing to equally distribute processes across network –Computational speedup by subdividing a process into concurrent subprocesses, executed on different machines –Hardware or Software preference for instance, one remote computer has common lisp or another has an array processor –Data access to avoid data migration Decision for process migration may be made by OS or may be built into a program by programmer

Remote Procedure Calls RPCs are common ways to communicate requests with remote computers (including telnet, ftp and other) –A remote computer has an RPC daemon which listens to a port (a memory location) for incoming requests the port is addressed at the beginning of the message the OS receives the message and it places it at that port the daemon invokes the function requested, packages a response and sends it back to the source computer a computer may need to send an RPC to a remote computer to query what port to send a particular request to (see figure 16.1 p. 508 for example)

Threads vs. RPCs Threads may be used to send/receive signals while other operations within the task continue asynchronously A thread that has completed its job can be terminated and the kernel can create a new thread to handle any new incoming requests –This is superior than leaving a daemon process in memory while idea which contains overhead (e.g., memory and register values) –It is cheaper to start a new thread then to restore an existing thread or process

Threads in DCE –Thread management: create, exit, join, detach –Synchronization calls: mutex_init, mutex_destroy, mutex_trylock, mutex_lock, mutex_unlock –Condition-variable calls: cond_init, cond_destroy, cond_wait, cond_signal, cond_broadcast –Scheduling calls: setscheduler, getscheduler, setprio, getprio –Kill thread calls: cancel, setcancel

Robustness A distributed OS may suffer from a number of failures reducing its abilities: –site failure (computer crash, disk failure) –link failure –lost message For a distributed OS to be robust, it must be able to determine these failures AND reconfigure around them

Failure Detection Handshaking is used to ensure that a site is accessible –If handshaking (or if a message times out), can the system determine what is wrong? Site may be down Link may be down Message may be lost –If there is another link between the two sites, try it If the new link works, then the remote site is not down Otherwise, we do not know which of the above is the reason for the failure But in any event, if the link or site is down, reconfiguration should take place

Reconfiguration and Recovery If a site failure is detected –update all network tables (both local and remote) to remove the unavailable site If a link failure is detected and the link can be bypassed –update local tables with new path, and update remote sites if necessary Upon recovery –update local and remote sites to include the recovered site and/or link

Design Issues Ideally, a distributed system should –look like a conventional centralized system –user interface should make the distributed nature of the system transparent user should not know the difference between local and remote resources System should have mobility –any user can log into any machine and still accomplish the same tasks System should be fault tolerant –able to detect, reconfigure and recover from faults System should be scalable –and gracefully degrade

Practical Limitations Very large-scale distributed systems are possible only theoretically –In practice, systems begin to have problems as they get large (hundreds to thousands of components) Centralizing control schemes and resources should not be used to control scalability –authentication servers, naming servers, file servers –centralization is a form of functional asymmetry that defeats the purpose of distribution A different approach is clustering –partitioning one distributed system into several lesser centralized systems