A Comparison of Distributed Systems: ChorusOS and Amoeba
|
|
|
- Hilary Montgomery
- 10 years ago
- Views:
Transcription
1 A Comparison of Distributed Systems: ChorusOS and Amoeba Angelo Bertolli Prepared for MSIT 610 on October 27, 2004 University of Maryland University College Adelphi, Maryland United States of America Abstract. Distributed systems provide a framework to take advantage of the under used computing power of idle machines, and to attempt to solve problems too difficult for ordinary machines. This paper will attempt to define distributed computing and demonstrate the strengths, weaknesses, techniques, and theories behind distributed systems. The scope will include an introduction and discussion of distributed systems and a look at two specific systems: ChorusOS and Amoeba. Section 1: General Overview of Distributed Systems Introduction Flynn's taxonomy attempts to categorize computer systems in terms of how they use data, and how that data is controlled or manipulated. It defines two control streams: SI (single instruction) and MI (multiple instruction), and two data streams: SD (single data) and MD (multiple data). Any computer system will have one type of control stream, and one type of data stream: Data Single Multiple Single SISD A sequential computer SIMD Vector Processors Massively Parallel Processors Control Multiple MISD Unusual* MIMD Distributed Systems * There are few machines in this category, none that have been commercially successful or had any impact on computational science. [3] The focus of this paper will be on distributed systems: those computer systems which use multiple control streams upon multiple data streams (MIMD). [10] The category of MIMD machines is the most diverse of the four classifications in Flynn's taxonomy. [3] Distributed systems provide a large amount of computing power by distributing the work load
2 across smaller, less-capable machines. This means that it is less expensive to build a distributed system than to create a new autonomous system which can do the same job. This is typically done with a model called Message Passing in which a program is split into smaller pieces which can pass information to each other. Applications of distributed systems include particle physics, bioinformatics, office resource sharing, visualization & graphics rendering, enterprise management, and embedded systems (like your cell phone). Some issues concerning the design of distributed systems include fault tolerance, process scheduling, and security. Categorization Distributed systems can be divided into two main categories: homogeneous systems and heterogeneous systems. These categorizations are based on function within the system, and sometimes on the types of hardware that make up the system. Examples Homogeneous Processor Pool: connected workstations. Cluster: hardware facility for fault tolerance. Heterogeneous Client/Server: one server machine (bigger, with shared resources), and multiple client machines (smaller). Network of Workstations (NOWs): similar to client/server, but with more equal computing power can be over either a LAN or WAN. Distributed systems can also be categorized according to their software environments (in order of decreasing abstraction from the user): (1) Distributed Operating System: completely manages the hardware of multiple individual nodes, as to appear as one meta-node. (2) Distributed Shared Memory Systems: manages the memory and processor usage of the different nodes. (3) Network Operating System: individual systems with network capabilities, linked to effectively provide a distributed system. Speed-up and Efficiency The critical factor in determining the usefulness of a distributed system is its speed-up or efficiency: how much better multiple processors can solve a problem than one processor. Even without overhead due to communication, no distributed system can run at 100% efficiency (the speed-up is equal to the number of processors). This is because there is always a percentage of sequential code which cannot be done parallel.
3 Let R represent the total run time of the program. Let R S represent the run time of the sequential code. (R S > 0) Let R P represent the run time of the code done in parallel (on one processor). Therefore, our total run time will be the sum of the sequential part of the problem, and the parallel part of the problem: R = R S + R P If we consider n to represent the number of processors, each processor will share the part done in parallel. We have: R = R S + (R P / n) (Again, this is considering there is no loss due to overhead for communication.) The speed-up of a system is defined as the ratio of the system with a single processor to the same system with n processors: S = (R S + R P ) / (R S + (R P / n)) And since R S can never be zero, you cannot achieve a speed-up equal to the number of processors. A speed-up equal to the number of processors means an efficiency of 100%. Efficiency is defined as the speed-up divided by the number of processors: E = S / n Example With an algorithm that is 20% sequential, 80% parallel, and requires 100 seconds to run on a single processor (R), we can determine the speed-up and efficiency of using 4 processors (R 4 ) (assuming no overhead): R = 100 (seconds) = R S + R P R S = 20 R P = 80 R 4 = R S + (R P / n) = 20 + (80 / 4) = 40 S = R / R 4 = 100 / 40 = 2.5 E = S / n = 2.5 / 4 = In this case, our speed-up of four processors is 2.5 times more than of one processor, or an efficiency of 62.5% Software for Distributed Programming There are a number of software packages which have been created to make writing programs for distribution over many machines easier. These packages have some way of transporting data or services among nodes in the system. Three popular packages include PVM, RPC, and CORBA. PVM (Parallel Virtual Machine) This software package was designed to provide a programming environment that emulates a traditional parallel system.
4 RPC (Remote Procedure Call) This software package provides procedures or functions which can be accessed remotely. When the procedure call is made by the first node, data is sent to the second node offering the function, the function is executed, and the results are returned to the first node. CORBA (Common Object Request Broker Architecture) This software package is similar to RPC in architecture, but instead of providing functions, CORBA provides C++ objects to other nodes. Then the first node requests the use of an object offered by the second node, the second node creates the instance of the object locally. All commands issued to the object by the first node occur on the second node. Correct Distributed Systems It is useful to describe a system with more detail, beyond the generic term of just distributing the work. Correct distributed systems (called truly distributed) are defined to have features which not only provide enhanced security and fault tolerance, but a desired level of abstraction to the user. They have four main characteristics: (1) That the relevant information is going to be distributed among the nodes. (2) That each process in the distributed system can make decisions given information which is local to that node. (3) There is no common point of failure. For example, in a homogeneous system, any 1/3 rd of all nodes should be able to go down without there being a noticeable difference except for performance loss. (4) A truly distributed system cannot rely upon a global clock to function. One alternative to a global clock is to use the Lamport Clock Algorithm for a logical clock. A logical clock defines the operation happens before, e.g. a happens before b A node using the Lamport Clock Algorithm can keep track of time by attaching a send time to each message, and increment its local clock according to the messages it received. Section 2: Descriptions of Specific Systems ChorusOS Chorus is an operating system for embedded systems. An embedded system is a specialized system that is part of a larger system or machine. Chorus is a real-time OS (RTOS) which means that it responds immediately to input and can be used in real-time applications to solve real-time problems.
5 At its heart is the Chorus nucleus (microkernel). A microkernel is an OS with only the essential services such as interprocess communication, short-term scheduling, and memory management. Chorus implements these simple tools and makes them distributed on the lowest level. Chorus is designed for reliability, availability, and scalability for critical telecommunications applications. Background Chorus started in 1980 as a research project at the French research institute INRIA. [7] It started with version 0 which implemented structured processes called actors. In 1982, version 1 continued with multi-processor research and included structured messages and support for fault tolerance. Version 2 came out in 1984 and was source compatible with UNIX, meaning that UNIX programs could be recompiled and run on Chorus. In 1987, with version 3, Chorus went commercial, becoming Chorus Systems Inc. Furthermore, version 3 implemented RPC as the communication model. Chorus Cool ORB 3.1 became available in This ORB is designed for distributed, real-time application development, and is targeted at telecommunication companies. It allows companies to create applications that run on different platforms simultaneously over a network. Chorus Cool ORB also complies with CORBA 2.0 object specifications. In 1998 Sun Microsystems acquired Chorus, and since then they have released Chorus Chorus Microkernel The Chorus microkernel (which they like to call the nucleus ) has 4 major parts. The first part, the supervisor, handles hardware interrupts, traps, and exceptions. [7] This portion must be rewritten when it is ported to a new system. The second part, the real-time executive, manages the processes, threads, and scheduling, along with the synchronization between threads. The virtual memory manager takes care of the low-level part of the paging system. The inter-process communication manager handles the UI s (unique identifiers), ports, and sending messages in a transparent way. The Chorus microkernel has low-level transparent connectivity services that let you distribute functions across multiple PCs. When one fails, you can automatically off-load to another. The size of the Chorus microkernel is about 50 to 60 Kb. Processes There are 3 kinds of processes which interact with each other and the nucleus to get jobs done. Starting with the lowest level, the processes are kernel, system, and user. Kernel processes reside in kernel space along with the nucleus. System and user processes reside in user space. Kernel processes are trusted and privileged, able to make demands on the nucleus and implement their own hardware functions. Kernel processes complete the necessary
6 requirements for a basic operating system, and provide things such as file managers, stream and sock managers, device drivers, etc. However, these processes are only loaded as needed and can be removed or added during system execution. The relationship between kernel processes and the nucleus provide a way to extend and configure the functionality of the OS. System processes are trusted, able to send requests to kernel processes and to the nucleus itself. A subsystem consists of a collection of system processes that work together, eg. the UNIX subsystem known as MiX allows binary compatibility with UNIX. [7] User processes are neither trusted or privileged. They may only ask something of the nucleus or kernel through a subsystem. No direct calls are allowed. Real-time processes can run as system processes to reduce overhead. Amoeba The Amoeba operating system is designed to run on multiple machines across a network which appears to each user as a single shared machine. [9] It is a heterogeneous distributed operating system designed for general-purpose computing. It is designed to take a collection of machines and make them act together as a single integrated system. [8] Details about where processes are run or files are being stored are hidden to the user. Amoeba can be used both as a distributed system for multiple users with multiple tasks, or a parallel system for a single difficult job. Background There was an explosion in personal computing in the 1980's when computers became affordable enough for each user to have a workstation. Around this time, a group at the Vrije Universiteit (VU) in Amsterdam started working on the problem of using multiple individual user systems in distributed and parallel ways. System Design The design goals for the Amoeba operating system included distribution, parallelism, transparency, and performance: Distribution Amoeba is a heterogeneous system which can be built on a LAN. Parallelism Amoeba can use multiple processors for a single job to decrease the total run time for the job. Transparency Amoeba hides details about how the resources of the various machines are handled from the user. Performance Amoeba uses an optimized communication system to reduce the overhead associated with distributed and parallel computing.
7 Amoeba also uses a microkernel architecture in which a copy runs on each node in the system. This kernel supports only the basics needed locally for that system such as minimal process and communication primitives, memory management, and raw device I/O. Server processes which run on top of the microkernel are usually in user space. The main communication mechanism for Amoeba is remote procedure call (RPC). This is also hidden from the user in the Amoeba Interface Language (AIL) which provides functions and procedures that handle the details of communication. Filesystem Amoeba has dedicated file servers called Bullet servers. These servers store only the file data and not the names or hierarchy of the filesystem. When a user program needs a file, it will request that the Bullet server send it the entire file in a single RPC. [8] This means that a file server must have at least 16 MB of RAM, and the amount of physical memory limits the maximum file size. Directories and file names are handled by separate directory servers. TCP/IP Amoeba doesn't use TCP/IP for it's internal communication. However, an Amoeba system can contain a special server to provide TCP/IP communication to other systems. Amoeba is available for free to universities and other educational institutions and for special commercial prices and conditions to corporate, government, and other users. [8] Section 3: Comparisons and Conclusions Amoeba was designed to be used on multiple CPU's connected by a LAN, whereas Chorus was designed to provide distributed services and architecture for embedded systems. Chorus started out far from UNIX, but has increasingly become closer and closer to UNIX. While Amoeba is designed to abstract or hide the multiple machines from users, Chorus was designed with the idea that users would not only be logging into a particular machine but would be doing most of their work on that machine. Item Amoeba Chorus Designed for: Distributed system 1 CPU, multiprocessor Automatic load balancing? Yes No Threads managed by: Kernel Kernel Transparent heterogeneity? Yes No Multiprocessor support? Minimal Moderate UNIX emulation Source Binary UNIX compatibility POSIX (partial) System V Automatic file replication? Yes No This is a partial chart from [8] p517: Fig A comparison of Amoeba, Mach, and Chorus
8 References 1. Abrossimov, Armand, Boule, Gien, Guillemont, Herrman, Kaiser, Langlois, Leonard, and Neuhauser. Overview of the Chorus Distributed Operating System Borzo, Jeannette. Chorus System ships real-time application development ORB for telcos. InfoWorld. August 26, 1996: p52 3. Computational Science Education Project. Computer Architecture. Copyright 1991, 1992, 1993, 1994, Section Foley, Mary Jo. SCO, Chorus prep microkernel Unix for real-time apps. PC Week. December 6, 1993: p65 5. Podesta, Karl. Distributed Systems (A very basic introduction of real world examples) Pountain, Dick. The Chorus Microkernel. Byte. January 1994: p Tanenbaum, Andrew S. Distributed Operating Systems. Upper Saddle River, NJ: Prentice Hall, Tenenbaum, Andrew S., and Sharp, Gregory J. The Amoeba Distributed Operating System. Vrije Universiteit, De Boeleaan 1081a, Amsterdam, The Netherlands. 9. Wikipedia, the free encyclopedia. Amoeba distributed operating system Wikipedia, the free encyclopedia. Flynn's taxonomy Williams, Tom. Sun Microsystems maps its embedded systems strategy with Java. Electronic Design. January 26, 1998: p90 12.
Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:
Tools Page 1 of 13 ON PROGRAM TRANSLATION A priori, we have two translation mechanisms available: Interpretation Compilation On interpretation: Statements are translated one at a time and executed immediately.
Principles and characteristics of distributed systems and environments
Principles and characteristics of distributed systems and environments Definition of a distributed system Distributed system is a collection of independent computers that appears to its users as a single
Distributed Operating Systems
Distributed Operating Systems Prashant Shenoy UMass Computer Science http://lass.cs.umass.edu/~shenoy/courses/677 Lecture 1, page 1 Course Syllabus CMPSCI 677: Distributed Operating Systems Instructor:
Amoeba Distributed Operating System
Amoeba Distributed Operating System Matt Ramsay Tim Kiegel Heath Memmer CS470 Case Study Paper 4/19/02 Amoeba Introduction The Amoeba operating system began as a research project at Vrije Universiteit
Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis
Middleware and Distributed Systems Introduction Dr. Martin v. Löwis 14 3. Software Engineering What is Middleware? Bauer et al. Software Engineering, Report on a conference sponsored by the NATO SCIENCE
Components of a Computer System
SFWR ENG 3B04 Software Design III 1.1 3 Hardware Processor(s) Memory I/O devices Operating system Kernel System programs Components of a Computer System Application programs Users SFWR ENG 3B04 Software
Virtual machine interface. Operating system. Physical machine interface
Software Concepts User applications Operating system Hardware Virtual machine interface Physical machine interface Operating system: Interface between users and hardware Implements a virtual machine that
Chapter 1: Operating System Models 1 2 Operating System Models 2.1 Introduction Over the past several years, a number of trends affecting operating system design are witnessed and foremost among them is
CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun
CS550 Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun Email: [email protected], Phone: (312) 567-5260 Office hours: 2:10pm-3:10pm Tuesday, 3:30pm-4:30pm Thursday at SB229C,
Distributed Systems. REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1
Distributed Systems REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1 1 The Rise of Distributed Systems! Computer hardware prices are falling and power increasing.!
2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts
Chapter 2 Introduction to Distributed systems 1 Chapter 2 2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts Client-Server
Principles of Operating Systems CS 446/646
Principles of Operating Systems CS 446/646 1. Introduction to Operating Systems a. Role of an O/S b. O/S History and Features c. Types of O/S Mainframe systems Desktop & laptop systems Parallel systems
How To Understand The Concept Of A Distributed System
Distributed Operating Systems Introduction Ewa Niewiadomska-Szynkiewicz and Adam Kozakiewicz [email protected], [email protected] Institute of Control and Computation Engineering Warsaw University of
CHAPTER 15: Operating Systems: An Overview
CHAPTER 15: Operating Systems: An Overview The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint
Client/Server Computing Distributed Processing, Client/Server, and Clusters
Client/Server Computing Distributed Processing, Client/Server, and Clusters Chapter 13 Client machines are generally single-user PCs or workstations that provide a highly userfriendly interface to the
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
OPERATING SYSTEMS Internais and Design Principles
OPERATING SYSTEMS Internais and Design Principles FOURTH EDITION William Stallings, Ph.D. Prentice Hall Upper Saddle River, New Jersey 07458 CONTENTS Web Site for Operating Systems: Internais and Design
Client/Server and Distributed Computing
Adapted from:operating Systems: Internals and Design Principles, 6/E William Stallings CS571 Fall 2010 Client/Server and Distributed Computing Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Traditional
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
Operating System Components
Lecture Overview Operating system software introduction OS components OS services OS structure Operating Systems - April 24, 2001 Operating System Components Process management Memory management Secondary
Distributed Systems LEEC (2005/06 2º Sem.)
Distributed Systems LEEC (2005/06 2º Sem.) Introduction João Paulo Carvalho Universidade Técnica de Lisboa / Instituto Superior Técnico Outline Definition of a Distributed System Goals Connecting Users
Virtual Machines. www.viplavkambli.com
1 Virtual Machines A virtual machine (VM) is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software
Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture
Review from last time CS 537 Lecture 3 OS Structure What HW structures are used by the OS? What is a system call? Michael Swift Remzi Arpaci-Dussea, Michael Swift 1 Remzi Arpaci-Dussea, Michael Swift 2
Chapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu
Introduction to Operating Systems Indiana University Chen Yu Perspective of the Computer System Software A general piece of software with common functionalities that support many applications. Example:
Chapter 18: Database System Architectures. Centralized Systems
Chapter 18: Database System Architectures! Centralized Systems! Client--Server Systems! Parallel Systems! Distributed Systems! Network Types 18.1 Centralized Systems! Run on a single computer system and
Introduction to Cloud Computing
Introduction to Cloud Computing Parallel Processing I 15 319, spring 2010 7 th Lecture, Feb 2 nd Majd F. Sakr Lecture Motivation Concurrency and why? Different flavors of parallel computing Get the basic
Chapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
Operating System Organization. Purpose of an OS
Slide 3-1 Operating System Organization Purpose of an OS Slide 3-2 es Coordinate Use of the Abstractions he Abstractions Create the Abstractions 1 OS Requirements Slide 3-3 Provide resource abstractions
Design and Implementation of the Heterogeneous Multikernel Operating System
223 Design and Implementation of the Heterogeneous Multikernel Operating System Yauhen KLIMIANKOU Department of Computer Systems and Networks, Belarusian State University of Informatics and Radioelectronics,
CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS
CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS What is an operating? A collection of software modules to assist programmers in enhancing efficiency, flexibility, and robustness An Extended Machine from the users
Operating System Structures
Operating System Structures Meelis ROOS [email protected] Institute of Computer Science Tartu University fall 2009 Literature A. S. Tanenbaum. Modern Operating Systems. 2nd ed. Prentice Hall. 2001. G. Nutt.
A single user ran a single program ran on a single computer there was no need for Page 1 of 6 Copyright Virtual University of Pakistan
Lecture 11 Operating Systems Focus of the last lecture: computer SW 1. We found out about the role SW plays in a computing environment 2. We learned to distinguish between SW belonging to the system &
Centralized Systems. A Centralized Computer System. Chapter 18: Database System Architectures
Chapter 18: Database System Architectures Centralized Systems! Centralized Systems! Client--Server Systems! Parallel Systems! Distributed Systems! Network Types! Run on a single computer system and do
System Models for Distributed and Cloud Computing
System Models for Distributed and Cloud Computing Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF Classification of Distributed Computing Systems
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 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Operating system Dr. Shroouq J.
3 OPERATING SYSTEM STRUCTURES An operating system provides the environment within which programs are executed. The design of a new operating system is a major task. The goals of the system must be well
Chapter 1 - Web Server Management and Cluster Topology
Objectives At the end of this chapter, participants will be able to understand: Web server management options provided by Network Deployment Clustered Application Servers Cluster creation and management
Scalability and Classifications
Scalability and Classifications 1 Types of Parallel Computers MIMD and SIMD classifications shared and distributed memory multicomputers distributed shared memory computers 2 Network Topologies static
Microkernels, virtualization, exokernels. Tutorial 1 CSC469
Microkernels, virtualization, exokernels Tutorial 1 CSC469 Monolithic kernel vs Microkernel Monolithic OS kernel Application VFS System call User mode What was the main idea? What were the problems? IPC,
Distributed System: Definition
Distributed System: Definition A distributed system is a piece of software that ensures that: A collection of independent computers that appears to its users as a single coherent system Two aspects: (1)
Distributed File Systems
Distributed File Systems Paul Krzyzanowski Rutgers University October 28, 2012 1 Introduction The classic network file systems we examined, NFS, CIFS, AFS, Coda, were designed as client-server applications.
Star System. 2004 Deitel & Associates, Inc. All rights reserved.
Star System Apple Macintosh 1984 First commercial OS GUI Chapter 1 Introduction to Operating Systems Outline 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 Introduction What Is an Operating System?
Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines Operating System Concepts 3.1 Common System Components
1.4 SOFTWARE CONCEPTS
22 INTRODUCTION CHAP. 1 1.4 SOFTWARE CONCEPTS Hardware for distributed systems is important, but it is software that largely determines what a distributed system actually looks like. Distributed systems
DISTRIBUTED SYSTEMS AND CLOUD COMPUTING. A Comparative Study
DISTRIBUTED SYSTEMS AND CLOUD COMPUTING A Comparative Study Geographically distributed resources, such as storage devices, data sources, and computing power, are interconnected as a single, unified resource
1.5 Distributed Systems
1.5 Distributed Systems A network, in the simplest terms, is a communication path between two or more systems. Distributed systems depend on networking for their functionality. By being able to communicate,
How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X
(Advanced Topics in) Operating Systems Winter Term 2009 / 2010 Jun.-Prof. Dr.-Ing. André Brinkmann [email protected] Universität Paderborn PC 1 Overview Overview of chapter 3: Case Studies 3.1 Windows Architecture.....3
OpenMosix Presented by Dr. Moshe Bar and MAASK [01]
OpenMosix Presented by Dr. Moshe Bar and MAASK [01] openmosix is a kernel extension for single-system image clustering. openmosix [24] is a tool for a Unix-like kernel, such as Linux, consisting of adaptive
Distributed Systems. Examples. Advantages and disadvantages. CIS 505: Software Systems. Introduction to Distributed Systems
CIS 505: Software Systems Introduction to Distributed Systems Insup Lee Department of Computer and Information Science University of Pennsylvania Distributed Systems Why distributed systems? o availability
Chapter 7: Distributed Systems: Warehouse-Scale Computing. Fall 2011 Jussi Kangasharju
Chapter 7: Distributed Systems: Warehouse-Scale Computing Fall 2011 Jussi Kangasharju Chapter Outline Warehouse-scale computing overview Workloads and software infrastructure Failures and repairs Note:
Introduction to GPU Programming Languages
CSC 391/691: GPU Programming Fall 2011 Introduction to GPU Programming Languages Copyright 2011 Samuel S. Cho http://www.umiacs.umd.edu/ research/gpu/facilities.html Maryland CPU/GPU Cluster Infrastructure
Chapter 3: Operating-System Structures. Common System Components
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1
Chapter 16 Distributed Processing, Client/Server, and Clusters
Operating Systems: Internals and Design Principles Chapter 16 Distributed Processing, Client/Server, and Clusters Eighth Edition By William Stallings Table 16.1 Client/Server Terminology Applications Programming
How To Make A Distributed System Transparent
Operating Systems Interface between the hardware and the rest: editors, compilers, database systems, application programs, your programs, etc. Allows portability, enables easier programming, The manager
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
Software Concepts. Uniprocessor Operating Systems. System software structures. CIS 505: Software Systems Architectures of Distributed Systems
CIS 505: Software Systems Architectures of Distributed Systems System DOS Software Concepts Description Tightly-coupled operating system for multiprocessors and homogeneous multicomputers Main Goal Hide
Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture
Introduction to CORBA 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture 1. Introduction CORBA is defined by the OMG The OMG: -Founded in 1989 by eight companies as a non-profit
Operating Systems. Design and Implementation. Andrew S. Tanenbaum Melanie Rieback Arno Bakker. Vrije Universiteit Amsterdam
Operating Systems Design and Implementation Andrew S. Tanenbaum Melanie Rieback Arno Bakker Vrije Universiteit Amsterdam Operating Systems - Winter 2012 Outline Introduction What is an OS? Concepts Processes
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL This chapter is to introduce the client-server model and its role in the development of distributed network systems. The chapter
Outline. Operating Systems Design and Implementation. Chap 1 - Overview. What is an OS? 28/10/2014. Introduction
Operating Systems Design and Implementation Andrew S. Tanenbaum Melanie Rieback Arno Bakker Outline Introduction What is an OS? Concepts Processes and Threads Memory Management File Systems Vrije Universiteit
Operating System Structure
Operating System Structure Lecture 3 Disclaimer: some slides are adopted from the book authors slides with permission Recap Computer architecture CPU, memory, disk, I/O devices Memory hierarchy Architectural
CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure
CSE 120 Principles of Operating Systems Fall 2000 Lecture 3: Operating System Modules, Interfaces, and Structure Geoffrey M. Voelker Modules, Interfaces, Structure We roughly defined an OS as the layer
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 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
UNISOL SysAdmin. SysAdmin helps systems administrators manage their UNIX systems and networks more effectively.
1. UNISOL SysAdmin Overview SysAdmin helps systems administrators manage their UNIX systems and networks more effectively. SysAdmin is a comprehensive system administration package which provides a secure
Mobile Operating Systems. Week I
Mobile Operating Systems Week I Overview Introduction Mobile Operating System Structure Mobile Operating System Platforms Java ME Platform Palm OS Symbian OS Linux OS Windows Mobile OS BlackBerry OS iphone
Load Balancing in Distributed Data Base and Distributed Computing System
Load Balancing in Distributed Data Base and Distributed Computing System Lovely Arya Research Scholar Dravidian University KUPPAM, ANDHRA PRADESH Abstract With a distributed system, data can be located
Scalable Cloud Computing Solutions for Next Generation Sequencing Data
Scalable Cloud Computing Solutions for Next Generation Sequencing Data Matti Niemenmaa 1, Aleksi Kallio 2, André Schumacher 1, Petri Klemelä 2, Eija Korpelainen 2, and Keijo Heljanko 1 1 Department of
Chapter 14 Virtual Machines
Operating Systems: Internals and Design Principles Chapter 14 Virtual Machines Eighth Edition By William Stallings Virtual Machines (VM) Virtualization technology enables a single PC or server to simultaneously
Rackspace Cloud Databases and Container-based Virtualization
Rackspace Cloud Databases and Container-based Virtualization August 2012 J.R. Arredondo @jrarredondo Page 1 of 6 INTRODUCTION When Rackspace set out to build the Cloud Databases product, we asked many
Semester Thesis Traffic Monitoring in Sensor Networks
Semester Thesis Traffic Monitoring in Sensor Networks Raphael Schmid Departments of Computer Science and Information Technology and Electrical Engineering, ETH Zurich Summer Term 2006 Supervisors: Nicolas
RevoScaleR Speed and Scalability
EXECUTIVE WHITE PAPER RevoScaleR Speed and Scalability By Lee Edlefsen Ph.D., Chief Scientist, Revolution Analytics Abstract RevoScaleR, the Big Data predictive analytics library included with Revolution
How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself
How do Users and Processes interact with the Operating System? Users interact indirectly through a collection of system programs that make up the operating system interface. The interface could be: A GUI,
Weighted Total Mark. Weighted Exam Mark
CMP2204 Operating System Technologies Period per Week Contact Hour per Semester Total Mark Exam Mark Continuous Assessment Mark Credit Units LH PH TH CH WTM WEM WCM CU 45 30 00 60 100 40 100 4 Rationale
Agenda. Enterprise Application Performance Factors. Current form of Enterprise Applications. Factors to Application Performance.
Agenda Enterprise Performance Factors Overall Enterprise Performance Factors Best Practice for generic Enterprise Best Practice for 3-tiers Enterprise Hardware Load Balancer Basic Unix Tuning Performance
Apache Hama Design Document v0.6
Apache Hama Design Document v0.6 Introduction Hama Architecture BSPMaster GroomServer Zookeeper BSP Task Execution Job Submission Job and Task Scheduling Task Execution Lifecycle Synchronization Fault
Grid Scheduling Dictionary of Terms and Keywords
Grid Scheduling Dictionary Working Group M. Roehrig, Sandia National Laboratories W. Ziegler, Fraunhofer-Institute for Algorithms and Scientific Computing Document: Category: Informational June 2002 Status
Lecture 23: Multiprocessors
Lecture 23: Multiprocessors Today s topics: RAID Multiprocessor taxonomy Snooping-based cache coherence protocol 1 RAID 0 and RAID 1 RAID 0 has no additional redundancy (misnomer) it uses an array of disks
Chapter 1: Introduction. What is an Operating System?
Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered System Real -Time Systems Handheld Systems Computing Environments
VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D
ware and CPU Virtualization Technology Jack Lo Sr. Director, R&D This presentation may contain ware confidential information. Copyright 2005 ware, Inc. All rights reserved. All other marks and names mentioned
12. Introduction to Virtual Machines
12. Introduction to Virtual Machines 12. Introduction to Virtual Machines Modern Applications Challenges of Virtual Machine Monitors Historical Perspective Classification 332 / 352 12. Introduction to
Operating System Components and Services
Operating System Components and Services Tom Kelliher, CS 311 Feb. 6, 2012 Announcements: From last time: 1. System architecture issues. 2. I/O programming. 3. Memory hierarchy. 4. Hardware protection.
COSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters
COSC 6374 Parallel I/O (I) I/O basics Fall 2012 Concept of a clusters Processor 1 local disks Compute node message passing network administrative network Memory Processor 2 Network card 1 Network card
An Oracle White Paper July 2011. Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide
Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide An Oracle White Paper July 2011 1 Disclaimer The following is intended to outline our general product direction.
Chapter 1: Distributed Systems: What is a distributed system? Fall 2008 Jussi Kangasharju
Chapter 1: Distributed Systems: What is a distributed system? Fall 2008 Jussi Kangasharju Course Goals and Content Distributed systems and their: Basic concepts Main issues, problems, and solutions Structured
Code and Process Migration! Motivation!
Code and Process Migration! Motivation How does migration occur? Resource migration Agent-based system Details of process migration Lecture 6, page 1 Motivation! Key reasons: performance and flexibility
UNIT I LESSON 1: DISTRIBUTED SYSTEMS
LESSON 1: DISTRIBUTED SYSTEMS UNIT I CONTENTS 1.0 Aim and Objectives 1.1. Introduction 1.2. Organization 1.3. Goals and Advantages 1.4. Disadvantages 1.5. Architecture 1.6. Concurrency 1.7. Languages 1.8.
evm Virtualization Platform for Windows
B A C K G R O U N D E R evm Virtualization Platform for Windows Host your Embedded OS and Windows on a Single Hardware Platform using Intel Virtualization Technology April, 2008 TenAsys Corporation 1400
Operating Systems Overview
Operating Systems Overview No single definition, but many perspectives: Role in an overall system: Intermediary between computer hardware and everything else User view: Provides an environment, preferably
Control 2004, University of Bath, UK, September 2004
Control, University of Bath, UK, September ID- IMPACT OF DEPENDENCY AND LOAD BALANCING IN MULTITHREADING REAL-TIME CONTROL ALGORITHMS M A Hossain and M O Tokhi Department of Computing, The University of
Distributed Operating Systems. Cluster Systems
Distributed Operating Systems Cluster Systems Ewa Niewiadomska-Szynkiewicz [email protected] Institute of Control and Computation Engineering Warsaw University of Technology E&IT Department, WUT 1 1. Cluster
Distributed (Operating) Systems. Introduction
Distributed (Operating) Systems Introduction Distributed Operating Systems 1 Schedule Sessions 1. Introduction: Distributed systems (Hardware/Software issues) 2. Process management in clusters: Load balancing
Gildart Haase School of Computer Sciences and Engineering
Gildart Haase School of Computer Sciences and Engineering Metropolitan Campus I. Course: CSCI 6638 Operating Systems Semester: Fall 2014 Contact Hours: 3 Credits: 3 Class Hours: W 10:00AM 12:30 PM DH1153
Virtualization. Jukka K. Nurminen 23.9.2015
Virtualization Jukka K. Nurminen 23.9.2015 Virtualization Virtualization refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms,
Learning Objectives. Chapter 1: Networking with Microsoft Windows 2000 Server. Basic Network Concepts. Learning Objectives (continued)
Chapter 1: Networking with Microsoft Learning Objectives Plan what network model to apply to your network Compare the differences between Windows 2000 Professional, Server, Advanced Server, and Datacenter
DISTRIBUTED AND PARALLELL DATABASE
DISTRIBUTED AND PARALLELL DATABASE SYSTEMS Tore Risch Uppsala Database Laboratory Department of Information Technology Uppsala University Sweden http://user.it.uu.se/~torer PAGE 1 What is a Distributed
