Verteilte Systeme (Distributed Systems)

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Verteilte Systeme (Distributed Systems)"

Transcription

1 Verteilte Systeme (Distributed Systems) Karl M. Göschka VerteilteSysteme/

2 Lecture 4: Operating System Support Processes and Threads Client/Server Support and Concurrency Object Server Issues Code Migration Virtualization

3 Processes and threads (1) Unit of resource ownership and protection: It provides an address space to the program and protects it from other (concurrent) processes Unit of dispatching: A process encapsulates a program in execution - it contains the execution state of the program and is the entity that is scheduled and dispatched by the OS Enforced with hardware support (kernel mode) High cost for allocation and switching (possibly including swapping) granularity not sufficient 3

4 Process Switching (non-distributed) process B Context switching as the result of IPC 5

5 Processes and threads (2) Process remains the unit of resource management and protection, while thread becomes the unit of dispatching (execution state) Within a process, threads provide concurrent executions that share state (and the address space) minimal thread context (CPU, scheduling information, synchronization) Protection, however, is left to the application developer Trade-off: Robustness vs. efficiency 6

6 Multi-threading (1) A thread is an independent stream of execution Different threads in the same process share a global environment (e.g. same object instance) The accesses of threads to shared resources must be coordinated (synchronized) Different threads may run on different processors if available or share a single processor Threads are provided by operating systems, middleware, or even programming languages Java provides support for threads 7

7 Multi-threading (2) Threads are used to increase performance: Parallelism on multiprocessor machines (more finegrained than processes) Multi-threading is often used to reduce the impact of blocking operations (e.g. IO, networking) so that communication and local processing can overlap Local communication cheaper (vs. IPC context switching) 8

8 Multi-threading (3) Threads are used to improve the structure of a process respectively a large program Application-level parallelism Reactive (server) programming application responds to incoming (client) events Interactive (client) programming one thread to respond to user interaction, another to do the background work avoid blocking and increase perceived speed Asynchronous (batch) processing (e.g., autobackup) 9

9 Multi-threading issues Safety how to synchronize threads so that they do not interfere with one another Liveness how to avoid deadlock situations to ensure that all threads make progress (fairness?) Performance Overhead (performance penalty) from context-switching and synchronization 10

10 User level threads Thread library: routines for thread management, e.g. scheduling; saving and restoring thread context The kernel is not aware of the existence of threads All thread management done by the application: Cheap to create and destroy threads and only few instructions for switching, usually for synchronization purpose Scheduling can be application specific Can run on any OS BUT: Kernel schedules process as a unit Blocking system call will block entire process (including all other threads) BUT: Can not take advantage of multiprocessing 11

11 Kernel level threads (e.g., Windows) Kernel maintains context information for the process and the threads: Thread management is done by the kernel, only API to the kernel thread facility Scheduling is done on a thread basis by the kernel Multiprocessor support Non-blocking Kernel itself can be multithreaded BUT: Allocation and switching need expensive system calls: mode switch to the kernel 12

12 User-Level vs. kernel-level Threads 13

13 Combined Approaches Scheduler hints (Mach kernel) Scheduler Activation: Kernel upcall to thread package (kernel calls the user-level scheduler), but violates layered structure Hybrid: lightweight processes (LWP; Solaris) Process includes the user s address space, stack, and process control block User level thread package: Thread creation done in the user space, also the bulk of scheduling and synchronization of threads within application User level threads are mapped onto kernel level threads: Lightweight processes (LWP) Kernel threads (and LWPs) are scheduled by kernel: There is exactly one kernel thread for each LWP 14

14 Lightweight Process (1) 15

15 Lightweight Process (2) LWP exists within the process address space while at the same time it is bound to a single dispatchable kernel thread LWPs of one process share the user level thread table within that process Exploit concurrency application specific: Single threaded (no concurrency required) Logical parallelism (structuring): Multithreaded without need for hardware parallelism Kernel parallelism for multiprocessing or non-blocking Mixture: Background tasks may share LWP, while resource access via single LWP. 16

16 Lightweight Process (3) 17

17 Lecture 4: Operating System Support Processes and Threads Client/Server Support and Concurrency Object Server Issues Code Migration Virtualization

18 Invocations between address spaces (a) System call Thread Control transfer via trap instruction User Kernel Control transfer via privileged instructions (b) RPC/RMI (within one computer) Protection domain boundary Thread 1 Thread 2 (c) RPC/RMI (between computers) User 1 Kernel User 2 Thread 1 Network Thread 2 User 1 User 2 Kernel 1 Kernel 2 20

19 Client and server with threads Thread 1 generates results T1 Thread 2 makes requests to server Receipt & queuing Input-output Requests N threads Client Server Common threads in a client: UI, processing, network connection Common threads in a server: multiple clients; multiple I/O 21

20 Multithreaded Client Interact with human user and remote server in parallel (non blocking towards user) Hide communication latencies: Do something else in parallel (e.g. Web browser) Load balancing (only useful if supported on server side): connections to different replicas, data transfer in parallel Local data processing Compound documents: Drag-and-drop; inplace editing (notifications) Components for distribution transparency 22

21 Client-Side Support for Transparency Access: stub Location: naming and (re-)binding Replication: proxy Failure: retry, redirect, cache Concurrency: transaction monitor A possible approach to transparent replication of a remote object using a client-side solution. 23

22 N-Tier Java Applet Web Browser HTML Client HTTP Devices Presentation Tier Specific servers Windows Application Distribution Protocol: IIOP, RMI, or proprietary (e.g. DCE) Java Application Web Server Glue Logic HTTP Daemon Servlet static content and templates: HTML XHTML XML JSP Business Tier Session Session Session Session Business Logic Distributed Component Based Infrastructure Transaction Manager Content Mgmt Persistence Manager Libraries Wrapper/Connector Resource Tier Database Access Protocol: JDBC, SQLJ, or proprietary (e.g. SQL*Net) Legacy System proprietary legacy protocol Database Server proprietary legacy protocol 27

23 Architecture Results from case studies Often implicitly used by developers 29

24 Modeling MOF Meta-Meta-Model UML Class Diagram ConcurTask Trees Presentation Modeling Modeling Languages Domain Model relate Task Model relate Presentation Models relate Models communicate communicate Model Controller Views communicate Architecture 30

25 Server Design Issues Iterative or concurrent (e.g., multithreaded) Server interrupt / out-of-band control Stateless, stateful, soft state, session state Where/how to find/bind the server Name or directory servers Well known port addresses (0 1023) (see list at Multithreaded server: Simplifies server code Exploit parallelism for high performance (multiprocessor workstation) 31

26 Client/server binding 3.7 a) Client-to-server binding using a daemon as in DCE b) Client-to-server binding using a superserver as in UNIX (inetd, forks process) 32

27 Multithreaded Servers Example: A multithreaded server organized in a dispatcher/worker model. (dispatcher also called coordinator; worker also called servant or object) 34

28 Structure of a server Different architectures are possible Who creates the thread? When is the thread created? Fixed number of threads? Several design patterns 35

29 Pool vs. dynamic thread creation Thread creation is expensive (100s of instructions) The cost of thread creation can be amortized over many requests by keeping a thread around for several requests A fixed number of threads could be created at start-up time and assigned to requests as they come in 36

30 Server threading architectures workers per-connection threads per-object threads I/O remote objects remote objects I/O remote objects a. Thread-per-request b. Thread-per-connection c. Thread-per-object 37

31 The thread-per-request architecture A coordinator thread reads incoming requests As soon as a request is read, it spawns (creates) a thread to handle the request The new thread decodes the request; calls the servant to perform the request exits 38

32 Thread-per-connection architecture The coordinator thread detects a new client It connects the incoming client to a new thread The new thread decodes the request; calls the servant to perform the request returns to read next request from same client 39

33 The thread-per-servant architecture Each servant has its own thread and queue The coordinator reads an incoming request and inserts it in the queue of appropriate servant Each servant thread repeatedly takes a request from its queue and executes it (simple way of making servants thread-safe through strict serialization) 40

34 Server Clusters The general organization of a three-tiered server cluster 41

35 Lecture 4: Operating System Support Processes and Threads Client/Server Support and Concurrency Object Server Issues Code Migration Virtualization

36 Object server Provides means to access objects remotely according to different activation policies Object creation on invocation vs. during server initialization Separate memory segments vs. sharing code (class definition) Thread policies (single, one per object, one per request,...) and pool vs. on demand object adapter implements policies 43

37 Object Adapter (1) An object adapter (OA) implements a particular activation/invocation policy (OA groups objects per policy) Different OAs may coexist in the same server dispatcher OA is unaware of the specific object interface OA extracts reference and invokes skeleton according to policy 44

38 Example: The Ice Runtime System Example of creating an object server in Ice. 45

39 The main components of CORBA client implementation repository interface repository server object skeleton adapter client program proxy for A ORB core Request Reply ORB core Servant A or dynamic invocation or dynamic skeleton Servants (= programmer supplied object implementation) are a) inherited from generated skeleton or b) they are bound (registered) to particular skeletons 49

40 Role of CORBA Object Adapters Portable and transparent activation of object implementations Creation/management of object references Calling implementation skeleton Control of multiple server threads Basic authentication Deactivation of object implementations Support for persistent identities 50

41 Portable Object Adaptor (1) OID: POA assigned or user assigned Activation explicit or on demand 1. Multiple OIDs single servant 2. One servant for all objects 3. Single servant, many objects and types (DSI) Mapping of CORBA object identifiers to servants. a) The POA supports multiple servants. b) The POA supports a single servant. 52

42 Portable Object Adaptor (2) My_servant *my_object; CORBA::Objectid_var oid; // Declare a reference to a C++ object // Declare a CORBA identifier my_object = new MyServant; // Create a new C++ object oid = poa ->activate_object (my_object); // Register C++ object as CORBA OBJECT Changing a C++ object into a CORBA object. 53

43 Lecture 4: Operating System Support Processes and Threads Client/Server Support and Concurrency Object Server Issues Code Migration Virtualization

44 Code migration (1) Parameters passed among client and server may refer not only to data but also to code perhaps even while being executed! Historical: Balancing of computational load Distributed Systems: Moving code to where the data is can lower communication overhead: move query processing to database machine moving code to client can also improve scalability (e.g. form processing) 55

45 Example of Migrating Code The principle of dynamically configuring a client to communicate to a server. The client first fetches the necessary software, and then invokes the server (e.g. Java applet). 56

46 Code migration (2) Exploit parallelism (linear speed-up of e.g. Web search) Flexibility: Moving code can be used to customize (i.e. configure) the client dynamically and provide service interfaces on demand: Improved versioning and evolution BUT Security? BUT Code migration in heterogeneous systems is costly and intricate! Mobile code offers a different paradigm for structuring of distributed applications 57

47 Models for Code Migration Alternatives for code migration: Consider code segment, execution segment, and resource segment 58

48 Migration and Local Resources (1) Resource segment can not always be moved along without being changed Three types of process-to-resource bindings Binding by identifier Binding by value Binding by type Three types of resource-to-machine bindings Unattached resources Fastened resources Fixed resources 59

49 Migration and Local Resources (2) Resource-to machine binding Unattached Fastened Fixed Process-toresource binding By identifier By value By type MV (or GR) CP ( or MV, GR) RB (or GR, CP) GR (or MV) GR (or CP) RB (or GR, CP) GR GR RB (or GR) Actions to be taken with respect to the references to local resources when migrating code to another machine: GR Establish a global systemwide reference MV Move the resource CP Copy the value of the resource RB Rebind process to locally available resource 60

50 Lecture 4: Operating System Support Processes and Threads Client/Server Support and Concurrency Object Server Issues Code Migration Virtualization

51 Virtualization (1) Threads provide illusion of several processors Virtualization extends this idea to the resources 70s: run legacy software, e.g., IBM s: Application software is outliving system (operating system and hardware) portability Administration of large and heterogeneous systems and applications flexibility+portability Isolation: Reliability and security 62

52 The Role of Virtualization in DS a) General organization between a program, interface, and system. b) General organization of virtualizing system A on top of system B. 63

53 Interfaces at different levels (2) Various interfaces offered by computer systems. 65

54 Architectures of Virtual Machines (1) A process virtual machine, with multiple instances of (application, runtime) combinations. E.g., JVM. 66

55 Architectures of Virtual Machines (2) A virtual machine monitor, with multiple instances of (applications, OS) combinations. E.g., VMware, Xen 67

56 Migration in Heterogeneous Systems (1) Can the code segment be executed at all? Is the execution segment properly represented? scripting languages and highly portable languages (Java) rely on a process virtual machine that interprets source code (scripting) or intermediate code (Java) 68

57 Migration in Heterogeneous Systems (2) recently: migrate the whole computing environment (virtual machine monitor): strong mobility resources are part of moved environment service continuation during maintenance resource bindings: network-to-mac binding (storage as separate tier) memory image % 69

58 Migration in Heterogeneous Systems (3) Ways to handle migration (can be combined) Pushing memory pages to the new machine and resending the ones that are later modified during the migration process. ( extra effort) Stopping the current virtual machine; migrate memory, and start the new virtual machine. ( long service interruption) Letting the new virtual machine pull in new pages as needed, that is, let processes start on the new virtual machine immediately and copy memory pages on demand. ( long migration period) pre-copy: method 1 + method 2 (~200ms interruption) 70

59 Summary Concurrency is naturally present in a distributed system and needs operating system support Concurrency may be exploited in several ways in distributed systems: To improve performance by hiding delays due to blocking To structure high-performance servers To structure clients that hide server replication Other paradigms with different operating system support code migration virualization 76

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Chapter 03 (version February 11, 2008) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.

More information

Today: Distributed Middleware. Middleware

Today: Distributed Middleware. Middleware Today: Distributed Middleware Middleware concepts Case study: CORBA Lecture 24, page 1 Middleware Software layer between application and the OS Provides useful services to the application Abstracts out

More information

Types of Virtualization. Types of virtualization

Types of Virtualization. Types of virtualization Types of Virtualization Emulation VM emulates/simulates complete hardware Unmodified guest OS for a different PC can be run Bochs, VirtualPC for Mac, QEMU Full/native Virtualization VM simulates enough

More information

Operating System Support

Operating System Support Operating System Support Dr. Xiaobo Zhou Adopted from Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, Addison-Wesley 2005 1 Learning Objectives Know what a modern

More information

Distributed Information Processing

Distributed Information Processing Distributed Information Processing 7 th Lecture Eom, Hyeonsang ( 엄현상 ) Department of Computer Science & Engineering Seoul National University Copyrights 2017 Eom, Hyeonsang All Rights Reserved Outline

More information

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan. Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan Reading List Remote Object Invocation -- Tanenbaum Chapter 2.3 CORBA

More information

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues 4.2 Silberschatz, Galvin

More information

For use by students enrolled in #71251 CSE430 Fall 2012 at Arizona State University. Do not use if not enrolled.

For use by students enrolled in #71251 CSE430 Fall 2012 at Arizona State University. Do not use if not enrolled. Operating Systems: Internals and Design Principles Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles The basic idea is that the several components

More information

Threads Chapter 5 1 Chapter 5

Threads Chapter 5 1 Chapter 5 Threads Chapter 5 1 Chapter 5 Process Characteristics Concept of Process has two facets. A Process is: A Unit of resource ownership: a virtual address space for the process image control of some resources

More information

Chapter 3 Process Description and Control

Chapter 3 Process Description and Control Operating Systems: Internals and Design Principles Chapter 3 Process Description and Control Seventh Edition By William Stallings Process Control Block Structure of Process Images in Virtual Memory How

More information

Operating Systems: Internals and Design Principles. Chapter 4 Threads Seventh Edition By William Stallings

Operating Systems: Internals and Design Principles. Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles The basic idea is that the several components

More information

! How is a thread different from a process? ! Why are threads useful? ! How can POSIX threads be useful?

! How is a thread different from a process? ! Why are threads useful? ! How can POSIX threads be useful? Chapter 2: Threads: Questions CSCI [4 6]730 Operating Systems Threads! How is a thread different from a process?! Why are threads useful?! How can OSIX threads be useful?! What are user-level and kernel-level

More information

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Software Paradigms (Lesson 10) Selected Topics in Software Architecture Software Paradigms (Lesson 10) Selected Topics in Software Architecture Table of Contents 1 World-Wide-Web... 2 1.1 Basic Architectural Solution... 2 1.2 Designing WWW Applications... 7 2 CORBA... 11 2.1

More information

Chapter 4: Threads. Chapter 4: Threads

Chapter 4: Threads. Chapter 4: Threads Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples

More information

Applications, services. Middleware. OS2 Processes, threads, Processes, threads, communication,... communication,... Platform

Applications, services. Middleware. OS2 Processes, threads, Processes, threads, communication,... communication,... Platform Operating System Support Introduction Distributed systems act as resource managers for the underlying hardware, allowing users access to memory, storage, CPUs, peripheral devices, and the network Much

More information

Chapter 4 Threads, SMP, and

Chapter 4 Threads, SMP, and Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 4 Threads, SMP, and Microkernels Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Roadmap Threads: Resource ownership

More information

Sprite (contd) Code and Process Migration

Sprite (contd) Code and Process Migration Sprite (contd) Sprite process migration Facilitated by the Sprite file system State transfer Swap everything out Send page tables and file descriptors to receiver Demand page process in Only dependencies

More information

SAI/ST course Distributed Systems

SAI/ST course Distributed Systems SAI/ST course Distributed Systems 2013, Sep. 26 Oct 01 Lecture 3: Communication Agenda Overview Concepts Organization in layers IPC primitives Direct communication Indirect communication R.H. Mak 27-9-2013

More information

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title Notes Ask course content questions on Slack (is651-spring-2018.slack.com) Contact me by email to add you to Slack Make sure you checked Additional Links at homework page before you ask In-class discussion

More information

Distributed Objects. Object-Oriented Application Development

Distributed Objects. Object-Oriented Application Development Distributed s -Oriented Application Development Procedural (non-object oriented) development Data: variables Behavior: procedures, subroutines, functions Languages: C, COBOL, Pascal Structured Programming

More information

Operating System Support

Operating System Support Teaching material based on Distributed Systems: Concepts and Design, Edition 3, Addison-Wesley 2001. Copyright George Coulouris, Jean Dollimore, Tim Kindberg 2001 email: authors@cdk2.net This material

More information

Chapter 4: Multi-Threaded Programming

Chapter 4: Multi-Threaded Programming Chapter 4: Multi-Threaded Programming Chapter 4: Threads 4.1 Overview 4.2 Multicore Programming 4.3 Multithreading Models 4.4 Thread Libraries Pthreads Win32 Threads Java Threads 4.5 Implicit Threading

More information

Process Characteristics. Threads Chapter 4. Process Characteristics. Multithreading vs. Single threading

Process Characteristics. Threads Chapter 4. Process Characteristics. Multithreading vs. Single threading Process Characteristics Threads Chapter 4 Reading: 4.1,4.4, 4.5 Unit of resource ownership - process is allocated: a virtual address space to hold the process image control of some resources (files, I/O

More information

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5 Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5 Fall 2008 Jussi Kangasharju Chapter Outline Overview of interprocess communication Remote invocations (RPC etc.) Message

More information

DS 2009: middleware. David Evans

DS 2009: middleware. David Evans DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 4, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Client/Server-Architecture

Client/Server-Architecture Client/Server-Architecture Content Client/Server Beginnings 2-Tier, 3-Tier, and N-Tier Architectures Communication between Tiers The Power of Distributed Objects Managing Distributed Systems The State

More information

Advanced Topics in Operating Systems

Advanced Topics in Operating Systems Advanced Topics in Operating Systems MSc in Computer Science UNYT-UoG Dr. Marenglen Biba 8-9-10 January 2010 Lesson 10 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06:

More information

Threads. Thread Concept Multithreading Models User & Kernel Threads Pthreads Threads in Solaris, Linux, Windows. 2/13/11 CSE325 - Threads 1

Threads. Thread Concept Multithreading Models User & Kernel Threads Pthreads Threads in Solaris, Linux, Windows. 2/13/11 CSE325 - Threads 1 Threads Thread Concept Multithreading Models User & Kernel Threads Pthreads Threads in Solaris, Linux, Windows 2/13/11 CSE325 - Threads 1 Threads The process concept incorporates two abstractions: a virtual

More information

Distributed Technologies - overview & GIPSY Communication Procedure

Distributed Technologies - overview & GIPSY Communication Procedure DEPARTMENT OF COMPUTER SCIENCE CONCORDIA UNIVERSITY Distributed Technologies - overview & GIPSY Communication Procedure by Emil Vassev June 09, 2003 Index 1. Distributed Applications 2. Distributed Component

More information

Chapter 4: Threads. Operating System Concepts 9 th Edit9on

Chapter 4: Threads. Operating System Concepts 9 th Edit9on Chapter 4: Threads Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads 1. Overview 2. Multicore Programming 3. Multithreading Models 4. Thread Libraries 5. Implicit

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure

More information

Chapter 4: Processes. Process Concept

Chapter 4: Processes. Process Concept Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Silberschatz, Galvin and Gagne

More information

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Middleware Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Outline Web Services Goals Where do they come from? Understanding middleware Middleware as infrastructure Communication

More information

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform. CORBA What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform. It includes: an object-oriented Remote Procedure Call (RPC) mechanism object

More information

Verteilte Systeme (Distributed Systems)

Verteilte Systeme (Distributed Systems) Verteilte Systeme (Distributed Systems) Karl M. Göschka Karl.Goeschka@tuwien.ac.at http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/ Some slides based on material from this book (Prentice

More information

Chapter 4: Threads. Operating System Concepts 9 th Edition

Chapter 4: Threads. Operating System Concepts 9 th Edition Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples

More information

Introduction. CS3026 Operating Systems Lecture 01

Introduction. CS3026 Operating Systems Lecture 01 Introduction CS3026 Operating Systems Lecture 01 One or more CPUs Device controllers (I/O modules) Memory Bus Operating system? Computer System What is an Operating System An Operating System is a program

More information

Lecture 2 Process Management

Lecture 2 Process Management Lecture 2 Process Management Process Concept An operating system executes a variety of programs: Batch system jobs Time-shared systems user programs or tasks The terms job and process may be interchangeable

More information

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2 Chapter 1: Distributed Information Systems Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 1 Design

More information

Lecture 15: Network File Systems

Lecture 15: Network File Systems Lab 3 due 12/1 Lecture 15: Network File Systems CSE 120: Principles of Operating Systems Alex C. Snoeren Network File System Simple idea: access disks attached to other computers Share the disk with many

More information

CORBA (Common Object Request Broker Architecture)

CORBA (Common Object Request Broker Architecture) CORBA (Common Object Request Broker Architecture) René de Vries (rgv@cs.ru.nl) Based on slides by M.L. Liu 1 Overview Introduction / context Genealogical of CORBA CORBA architecture Implementations Corba

More information

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Chapter 09 (version 27th November 2001) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.

More information

Last class: Today: Thread Background. Thread Systems

Last class: Today: Thread Background. Thread Systems 1 Last class: Thread Background Today: Thread Systems 2 Threading Systems 3 What kind of problems would you solve with threads? Imagine you are building a web server You could allocate a pool of threads,

More information

Chapter 4: Threads. Operating System Concepts 9 th Edition

Chapter 4: Threads. Operating System Concepts 9 th Edition Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples

More information

Lecture 21 Concurrent Programming

Lecture 21 Concurrent Programming Lecture 21 Concurrent Programming 13th November 2003 Leaders and followers pattern Problem: Clients periodically present service requests which requires a significant amount of work that along the way

More information

SMD149 - Operating Systems

SMD149 - Operating Systems SMD149 - Operating Systems Roland Parviainen November 3, 2005 1 / 45 Outline Overview 2 / 45 Process (tasks) are necessary for concurrency Instance of a program in execution Next invocation of the program

More information

CSCE 313: Intro to Computer Systems

CSCE 313: Intro to Computer Systems CSCE 313 Introduction to Computer Systems Instructor: Dr. Guofei Gu http://courses.cse.tamu.edu/guofei/csce313/ Programs, Processes, and Threads Programs and Processes Threads 1 Programs, Processes, and

More information

Design and Performance of an Asynchronous Method handling Mechanism for CORBA

Design and Performance of an Asynchronous Method handling Mechanism for CORBA Design and Performance of an Asynchronous Method handling Mechanism for CORBA Mayur Deshpande, Douglas C. Schmidt & Carlos O Ryan {deshpanm,schmidt,coryan}@uci.edu Department of Electrical & Computer Engineering

More information

Multithreading. Reading: Silberschatz chapter 5 Additional Reading: Stallings chapter 4

Multithreading. Reading: Silberschatz chapter 5 Additional Reading: Stallings chapter 4 Multithreading Reading: Silberschatz chapter 5 Additional Reading: Stallings chapter 4 Understanding Linux/Unix Programming, Bruce Molay, Prentice-Hall, 2003. EEL 602 1 Outline Process and Threads Multithreading

More information

Chapter 6 Enterprise Java Beans

Chapter 6 Enterprise Java Beans Chapter 6 Enterprise Java Beans Overview of the EJB Architecture and J2EE platform The new specification of Java EJB 2.1 was released by Sun Microsystems Inc. in 2002. The EJB technology is widely used

More information

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Objectives To introduce the notion of a

More information

Operating System 4 THREADS, SMP AND MICROKERNELS

Operating System 4 THREADS, SMP AND MICROKERNELS Operating System 4 THREADS, SMP AND MICROKERNELS PROCESSES AND THREADS Process concept characteristics discussed so far Resource ownership Scheduling/execution These two characteristics are independent.

More information

Adaptive Middleware. Self-Healing Systems. Guest Lecture. Prof. Priya Narasimhan. Assistant Professor of ECE and ISRI Carnegie Mellon University

Adaptive Middleware. Self-Healing Systems. Guest Lecture. Prof. Priya Narasimhan. Assistant Professor of ECE and ISRI Carnegie Mellon University Adaptive Middleware Self-Healing Systems Guest Lecture Prof. Priya Narasimhan Assistant Professor of ECE and ISRI Carnegie Mellon University Recommended readings and these lecture slides are available

More information

Distributed Systems Middleware

Distributed Systems Middleware Distributed Systems Middleware David Andersson, 810817-7539, (D) Rickard Sandell, 810131-1952, (D) EDA 390 - Computer Communication and Distributed Systems Chalmers University of Technology 2005-04-30

More information

Page 1. Analogy: Problems: Operating Systems Lecture 7. Operating Systems Lecture 7

Page 1. Analogy: Problems: Operating Systems Lecture 7. Operating Systems Lecture 7 Os-slide#1 /*Sequential Producer & Consumer*/ int i=0; repeat forever Gather material for item i; Produce item i; Use item i; Discard item i; I=I+1; end repeat Analogy: Manufacturing and distribution Print

More information

presentation DAD Distributed Applications Development Cristian Toma

presentation DAD Distributed Applications Development Cristian Toma Lecture 12 S4 - Core Distributed Middleware Programming in JEE Distributed Development of Business Logic Layer presentation DAD Distributed Applications Development Cristian Toma D.I.C.E/D.E.I.C Department

More information

Outline. Interprocess Communication. Interprocess Communication. Communication Models: Message Passing and shared Memory.

Outline. Interprocess Communication. Interprocess Communication. Communication Models: Message Passing and shared Memory. Eike Ritter 1 Modified: October 29, 2012 Lecture 14: Operating Systems with C/C++ School of Computer Science, University of Birmingham, UK Outline 1 2 3 Shared Memory in POSIX systems 1 Based on material

More information

Chapter 4: Threads. Operating System Concepts 8 th Edition,

Chapter 4: Threads. Operating System Concepts 8 th Edition, Chapter 4: Threads, Silberschatz, Galvin and Gagne 2009 Chapter 4: Threads Overview Multithreading Models Thread Libraries 4.2 Silberschatz, Galvin and Gagne 2009 Objectives To introduce the notion of

More information

Dassault Enovia, a Case Study of CORBA. Introduction Distributed Architecture Orbix Im plem entation Detail Conlcusion

Dassault Enovia, a Case Study of CORBA. Introduction Distributed Architecture Orbix Im plem entation Detail Conlcusion Dassault Enovia, a Case Study of CORBA Introduction Distributed Architecture Orbix Im plem entation Detail Conlcusion Introduction What's a PLM solution? Who uses PLM products? The distributed requirem

More information

(9A05803) WEB SERVICES (ELECTIVE - III)

(9A05803) WEB SERVICES (ELECTIVE - III) 1 UNIT III (9A05803) WEB SERVICES (ELECTIVE - III) Web services Architecture: web services architecture and its characteristics, core building blocks of web services, standards and technologies available

More information

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call 4.3 Remote procedure calls RPC flow Client process Server process Program i = sum (3,7); Procedure sum (j,k) int j,k; {return j+k; Client stub Program Return Call Unpack Pack result para s Invisible to

More information

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR 2011 2012(ODD SEMESTER) QUESTION BANK SUBJECT CODE / NAME: IT1402-MIDDLEWARE TECHNOLOGIES YEAR/SEM : IV / VII UNIT

More information

Mohsin Qasim Syed Abbas Ali

Mohsin Qasim Syed Abbas Ali 2005-5-18 Final version Table of Content 1 -Introduction to CORBA...3 1.1 Overview...3 1.2 Why is CORBA important in a networked environment?... 4 1.3 HOW DOES CORBA WORKS?...4 1.4 CORBA Architecture...

More information

Application Servers in E-Commerce Applications

Application Servers in E-Commerce Applications Application Servers in E-Commerce Applications Péter Mileff 1, Károly Nehéz 2 1 PhD student, 2 PhD, Department of Information Engineering, University of Miskolc Abstract Nowadays there is a growing demand

More information

CS420: Operating Systems

CS420: Operating Systems Threads James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Threads A thread is a basic unit of processing

More information

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University CS 555: DISTRIBUTED SYSTEMS [RPC & DISTRIBUTED OBJECTS] Shrideep Pallickara Computer Science Colorado State University Frequently asked questions from the previous class survey XDR Standard serialization

More information

CS5460: Operating Systems

CS5460: Operating Systems CS5460: Operating Systems Lecture 5: Processes and Threads (Chapters 3-4) Context Switch Results lab2-15 gamow home 3.8 us 1.6 us 1.0 us VirtualBox on lab2-25 VirtualBox on gamow VirtualBox on home 170

More information

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010 Oracle Tuxedo CORBA Technical Articles 11g Release 1 (11.1.1.1.0) March 2010 Oracle Tuxedo CORBA Technical Articles, 11g Release 1 (11.1.1.1.0) Copyright 1996, 2010, Oracle and/or its affiliates. All rights

More information

ICS Principles of Operating Systems

ICS Principles of Operating Systems ICS 143 - Principles of Operating Systems Lectures 3 and 4 - Processes and Threads Prof. Nalini Venkatasubramanian nalini@ics.uci.edu Some slides adapted from http://www-inst.eecs.berkeley.edu/~cs162/

More information

presentation DAD Distributed Applications Development Cristian Toma

presentation DAD Distributed Applications Development Cristian Toma Lecture 9 S4 - Core Distributed Middleware Programming in JEE presentation DAD Distributed Applications Development Cristian Toma D.I.C.E/D.E.I.C Department of Economic Informatics & Cybernetics www.dice.ase.ro

More information

CORBA Object Transaction Service

CORBA Object Transaction Service CORBA Object Transaction Service Telcordia Contact: Paolo Missier paolo@research.telcordia.com +1 (973) 829 4644 March 29th, 1999 An SAIC Company Telcordia Technologies Proprietary Internal Use Only This

More information

Enterprise Java Security Fundamentals

Enterprise Java Security Fundamentals Pistoia_ch03.fm Page 55 Tuesday, January 6, 2004 1:56 PM CHAPTER3 Enterprise Java Security Fundamentals THE J2EE platform has achieved remarkable success in meeting enterprise needs, resulting in its widespread

More information

May Gerd Liefländer System Architecture Group Universität Karlsruhe (TH), Systemarchitektur

May Gerd Liefländer System Architecture Group Universität Karlsruhe (TH), Systemarchitektur Distributed Systems 6 Instances May-20-2009 Gerd Liefländer System Architecture Group 1 Overview Schedule Templates for Distributed Instances Process Task with Threads Client Templates Server Templates

More information

Definition Multithreading Models Threading Issues Pthreads (Unix)

Definition Multithreading Models Threading Issues Pthreads (Unix) Chapter 4: Threads Definition Multithreading Models Threading Issues Pthreads (Unix) Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads 1 Thread A Unix process (heavy-weight process HWP)

More information

Concurrency, Thread. Dongkun Shin, SKKU

Concurrency, Thread. Dongkun Shin, SKKU Concurrency, Thread 1 Thread Classic view a single point of execution within a program a single PC where instructions are being fetched from and executed), Multi-threaded program Has more than one point

More information

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc.

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc. When the Servlet Model Doesn't Serve Gary Murphy Hilbert Computing, Inc. glm@hilbertinc.com Motivation? Many decision makers and programmers equate Java with servlets? Servlets are appropriate for a class

More information

5 Distributed Objects: The Java Approach

5 Distributed Objects: The Java Approach 5 Distributed Objects: The Java Approach Main Points Why distributed objects Distributed Object design points Java RMI Dynamic Code Loading 5.1 What s an Object? An Object is an autonomous entity having

More information

Operating Systems. Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) alphapeeler.sf.net/pubkeys/pkey.htm

Operating Systems. Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) alphapeeler.sf.net/pubkeys/pkey.htm Operating Systems Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) armahmood786@yahoo.com alphasecure@gmail.com alphapeeler.sf.net/pubkeys/pkey.htm http://alphapeeler.sourceforge.net pk.linkedin.com/in/armahmood

More information

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Chapter 01 (version September 5, 2007) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.

More information

DISTRIBUTED COMPUTER SYSTEMS

DISTRIBUTED COMPUTER SYSTEMS DISTRIBUTED COMPUTER SYSTEMS Communication Fundamental REMOTE PROCEDURE CALL Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Outline Communication Architecture Fundamentals

More information

Xen and the Art of Virtualization. CSE-291 (Cloud Computing) Fall 2016

Xen and the Art of Virtualization. CSE-291 (Cloud Computing) Fall 2016 Xen and the Art of Virtualization CSE-291 (Cloud Computing) Fall 2016 Why Virtualization? Share resources among many uses Allow heterogeneity in environments Allow differences in host and guest Provide

More information

Chapter 3: Processes. Operating System Concepts 8 th Edition,

Chapter 3: Processes. Operating System Concepts 8 th Edition, Chapter 3: Processes, Silberschatz, Galvin and Gagne 2009 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Silberschatz, Galvin and Gagne 2009

More information

Lecture Topics. Announcements. Today: Advanced Scheduling (Stallings, chapter ) Next: Deadlock (Stallings, chapter

Lecture Topics. Announcements. Today: Advanced Scheduling (Stallings, chapter ) Next: Deadlock (Stallings, chapter Lecture Topics Today: Advanced Scheduling (Stallings, chapter 10.1-10.4) Next: Deadlock (Stallings, chapter 6.1-6.6) 1 Announcements Exam #2 returned today Self-Study Exercise #10 Project #8 (due 11/16)

More information

Architectural Models

Architectural Models Architectural Models Dr. Gannouni Sofien Most concepts are drawn from Chapter 2 Pearson Education Some ideas from Chapter 1 Pearson Education Presentation Outline Introduction Architectural Models Software

More information

RMI: Design & Implementation

RMI: Design & Implementation RMI: Design & Implementation Operating Systems RMI 1 Middleware layers Applications, services RMI and RPC request-reply protocol marshalling and external data representation Middleware layers UDP and TCP

More information

CORBA vs. DCOM. Master s Thesis in Computer Science

CORBA vs. DCOM. Master s Thesis in Computer Science Master s Thesis in Computer Science Preliminary version December 21, 2000 CORBA vs. DCOM Fredrik Janson and Margareta Zetterquist The Royal Institute of Technology Kungliga Tekniska Högskolan Examiner:

More information

Advanced Java Programming

Advanced Java Programming Advanced Java Programming Length: 4 days Description: This course presents several advanced topics of the Java programming language, including Servlets, Object Serialization and Enterprise JavaBeans. In

More information

Chapter 3 Processes. Process Concept. Process Concept. Process Concept (Cont.) Process Concept (Cont.) Process Concept (Cont.)

Chapter 3 Processes. Process Concept. Process Concept. Process Concept (Cont.) Process Concept (Cont.) Process Concept (Cont.) Process Concept Chapter 3 Processes Computers can do several activities at a time Executing user programs, reading from disks writing to a printer, etc. In multiprogramming: CPU switches from program to

More information

Chapter 18 Distributed Systems and Web Services

Chapter 18 Distributed Systems and Web Services Chapter 18 Distributed Systems and Web Services Outline 18.1 Introduction 18.2 Distributed File Systems 18.2.1 Distributed File System Concepts 18.2.2 Network File System (NFS) 18.2.3 Andrew File System

More information

Distributed File Systems. CS432: Distributed Systems Spring 2017

Distributed File Systems. CS432: Distributed Systems Spring 2017 Distributed File Systems Reading Chapter 12 (12.1-12.4) [Coulouris 11] Chapter 11 [Tanenbaum 06] Section 4.3, Modern Operating Systems, Fourth Ed., Andrew S. Tanenbaum Section 11.4, Operating Systems Concept,

More information

Chapter 1: Distributed Systems: What is a distributed system? Fall 2013

Chapter 1: Distributed Systems: What is a distributed system? Fall 2013 Chapter 1: Distributed Systems: What is a distributed system? Fall 2013 Course Goals and Content n Distributed systems and their: n Basic concepts n Main issues, problems, and solutions n Structured and

More information

Remote Invocation Vladimir Vlassov and Johan Montelius

Remote Invocation Vladimir Vlassov and Johan Montelius KTH ROYAL INSTITUTE OF TECHNOLOGY Middleware Remote Invocation Vladimir Vlassov and Johan Montelius Application layer Remote invocation / indirect communication Socket layer Network layer ID2201 DISTRIBUTED

More information

PARALLEL PROGRAM EXECUTION SUPPORT IN THE JGRID SYSTEM

PARALLEL PROGRAM EXECUTION SUPPORT IN THE JGRID SYSTEM PARALLEL PROGRAM EXECUTION SUPPORT IN THE JGRID SYSTEM Szabolcs Pota 1, Gergely Sipos 2, Zoltan Juhasz 1,3 and Peter Kacsuk 2 1 Department of Information Systems, University of Veszprem, Hungary 2 Laboratory

More information

Lecture 3: Synchronous Interaction Patterns Traditional Middleware

Lecture 3: Synchronous Interaction Patterns Traditional Middleware Lecture 3: Synchronous Interaction Patterns Traditional Middleware Gustavo Alonso Systems Group Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch Reading assignment

More information

Programmer s Guide. VisiBroker for Java VERSION 4.0. Inprise Corporation, 100 Enterprise Way Scotts Valley, CA

Programmer s Guide. VisiBroker for Java VERSION 4.0. Inprise Corporation, 100 Enterprise Way Scotts Valley, CA Programmer s Guide VERSION 4.0 VisiBroker for Java Inprise Corporation, 100 Enterprise Way Scotts Valley, CA 95066-3249 Inprise may have patents and/or pending patent applications covering subject matter

More information

Exercise (could be a quiz) Solution. Concurrent Programming. Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - IV Threads

Exercise (could be a quiz) Solution. Concurrent Programming. Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - IV Threads Exercise (could be a quiz) 1 2 Solution CSE 421/521 - Operating Systems Fall 2013 Lecture - IV Threads Tevfik Koşar 3 University at Buffalo September 12 th, 2013 4 Roadmap Threads Why do we need them?

More information

Irbid National University, Irbid, Jordan. 1. The concept of distributed corporate systems

Irbid National University, Irbid, Jordan. 1. The concept of distributed corporate systems Developing Enterprise Systems with CORBA and Java Integrated Technologies Safwan Al Salaimeh, Amer Abu Zaher Irbid National University, Irbid, Jordan ABSTRACT: The questions of corporate systems development

More information

Operating System Services

Operating System Services CSE325 Principles of Operating Systems Operating System Services David Duggan dduggan@sandia.gov January 22, 2013 Reading Assignment 3 Chapter 3, due 01/29 1/23/13 CSE325 - OS Services 2 What Categories

More information

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of MCA

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of MCA SOLUTION SET- TEST 2 Subject & Code : Operating System (16MCA24) Name of faculty : Ms. Richa Sharma Max Marks: 40 1 Explain in detail Symmetric multiprocessing 8 2 Explain in detail principles of concurrency

More information