Components for Operating System Design

Size: px
Start display at page:

Download "Components for Operating System Design"

From this document you will learn the answers to the following questions:

  • What do we propose for providing components that allow the level of coupling between components to be varied at run - time?

  • What type of software components are too high overhead to be used for?

  • What is the cost of operating system support?

Transcription

1 Components for Operating System Design Alan Messer and Tim Wilkinson SARC, City University, London, UK. Abstract Components are becoming used increasingly in the construction of complex application software. Operating systems suffer from similar complexities, causing a move to micro-kernel architectures. In this paper, we propose low-overhead technique for providing components that allow the level of coupling between components to be varied at run-time. In doing so, we indicate their use in a component-orientated operating system to allow its components to be hot-plugged during execution. Introduction Complex software suffers from problems of maintainability and portability. To limit these problems, many software methodologies, such as modules and object-orientation have been created. With the increasing complexity of a modern operating system, such methodologies have been adopted by operating systems designers. The most recent example is the move to micro-kernel architectures, where services are moved from the kernel into user-space in order to separate each system s complexity. Such micro-kernel systems differ in the level of coupling they provide between the kernel and services. Some [1] rely on objectorientation to reduce coupling, whilst others [2] rely on operating system support (ports). Language support with protection domains has the advantage of allowing kernel-service access with low-overhead, whilst operating system support means that the interfaces are more clearly defined at the cost of speed. The latest methodology to hit the software business is components: objects with clearly designed interfaces that can be interconnected to form software in building block fashion. Component objects are really an extension of the object-oriented paradigm where the calling interface is well defined and all calling is indirect through this interface. In doing so, they reduce the coupling between components allowing them to be changed. Several such systems exist with a variety of aims. Unfortunately, these existing systems [3, 4, 5] provide too high overhead to be used for more than the larger granularity software components of an operating system. The most popular CORBA [3] provides such facilities in a heterogeneous environment between applications. In the distributed system field systems such as: Regis [4] and the Polylith [5] provide a lower overhead solution for building composite applications. It is this latter work, which bears the closest similarity to the components proposed in this paper. In this paper, we propose techniques for providing components that allow the level of coupling between components to be varied at run-time. In doing so, operating systems can be constructed from components and tightly interconnected where performance is a concern. As a side-effect the nature of the dynamic modification of any part of the operating system lends itself directly to 24x7 computing and mobile computing. Existing operating system techniques Reduced coupling between modules exists already at a higher level in operating systems, especially micro-kernels. Dynamically linked libraries are the simplest form. A program can at creation or run-time

2 link itself to a dynamic library and call into it. The interface is defined by the external references from the program and library. If at compile and run-time the interfaces match, the components are dynamically linked. This represents a close form of linking between the two participants and thus involves little overhead. Other systems, such as Mach, support a looser coupling between participants through the use of ports. Each port provides a message queue to the destination (a mailbox) with N-to-1 semantics. This provides buffering between client and server, allowing both source and destination to be changed at run-time. The overhead of such a call is much higher than before. Rather than just a procedure call, a message must be: formed, sent to the port via the operating system, queued and collected by the destination. However, the interface between objects is made explicit and provides more flexibility. At the far extreme are systems based on Linda tuplespaces [6]. Rather than supporting indirect messaging or procedure calls, all communication is performed using tuples (a variable record) which are placed in the tuplespace as offers or requests and matched together by the tuplespace. By doing away with knowledge of the destination or existence of a client or server or their interface, any component can be easily changed, but overhead is severely affected in the matching of tuples. Several systems support a combination of methods of linking code. For example, most operating systems support static and dynamic libraries and kernel loadable modules. These, however only represent the more direct subset of possible linking techniques required. Each type of calling convention has its place, dependent on its use. For example, it would be horrendous to use a tuplespace between a DSM server and the real memory system. Likewise, direct procedure calls are not suitable for linking hot-plugged device drivers in 24x7 computing. We propose using a uniform component framework, where components can be constructed without knowledge of their interconnection. This interconnection can then be chosen to suit the functionality and performance required. An operating system constructed from such a system can then be potentially dynamically changed to suit the situation, as with 24x7 and mobile computing. Functionality of the framework In order for components to be written in such a way that they do not know how they are interconnected, the communication mechanism must be transparent to the component. It is impractical to introduce a new language or stipulate the use of an existing one to permit this, since most code is already written in established languages. This leaves us with a choice of altering one of the existing mechanisms used, either: message passing or procedure calls. Of the two, procedure calls are the best candidate, since they are the most common and provide the least existing overhead. Since an existing procedure call provides a fixed destination, we must adopt the same approach used by dynamic linking, that of indirect procedure calls. Whenever a component call is required, an indirect call through the component s Component Link Table (CLT) is performed (see figure 1). Code Component Link Table Code Source component Destination component Figure 1: Indirect component call Once inter-component procedure calls become indirect, the run-time support for the framework (pico-kernel) has dynamic control

3 over the calling system used between components, allowing a variety of calling systems. For example, an extra component can at run-time be inserted in the call to provide an inter-protection domain call, should protection currently exist between objects (see figure 2). Protection domain switch Source Destination Figure 2: Protection domain component switch Likewise, a queued mailbox, similar to a Mach port can be constructed, by placing a small component at the destination that actively delivers procedure calls to the destination in turn (see figure 3). Call queue and active dispatch Source Destination Figure 3: Destination queuing Tuplespace calling can even be achieved by providing stub components are each end. At the source, a procedure call to tuple conversion component is used to convert the procedure call interface into a typed tuple. This tuple contains the procedure required (service), its arguments and an enquiry for the result. At the destination, an active component places service availability tuples into the tuplespace indicating the procedure available and enquiries for arguments. These stub components can both then use a shared tuplespace component to perform the matching (see figure 4). In each case, the appearance to the component is that the source performs a simple procedure call, whilst the simply destination receives them. This leaves the type of interconnection to be chosen by the pico-kernel, the component or a third-party dependent on speed or functionality. An advantage of this alterable interconnection strategy is that the basic component indirection incurs little overhead, whilst any additional functionality and thus overhead may be used if required. We stipulate that this will allow complex performance sensitive software such as the rest of the operating system to be built out of such a framework. Dynamic modifications Another advantage of the framework is that the components can be changed dynamically. This is especially important in operating systems for 24x7 and mobile computing. Where due to external influences, systems components (such as devices) may appear, disappear or need substituting. In order to achieve this functionality it is important that the pico-kernel can modify a component s CLT atomically. Since we wish to minimise the overhead of the interconnection, using locks to obtain mutual exclusion on the table is not suitable. Instead the pico-kernel must provide system calls to achieve this, by blocking interrupts. 1 With this functionality, access to devices likely to fail or disappear can be called through a queued or transaction based component. If however, a component is expected not to change in the short term (a PCMCIA hard disk) it can be called through faster mechanisms and be informed before the device is removed. Tuplespace Source Destination Figure 4: Tuplespace calling 1 Instead, in the distributed case, it must protect the pages containing the table, preventing access until the interconnection has been modified.

4 Providing the interface Each component in the system has a welldefined interface that is used to determine which procedures the framework will export and which procedure calls are intercomponent. In this paper, we assume that some form of component definition is available for the compiler or pre-processor to have access. Typically, since most languages do not provide this information, this interface definition is separate to the source code itself. This is the Interface Definition Language (IDL) for which much work already exists [3, 4]. With this interface definition, either a preprocessor or the compiler for the language used can turn calls to another component s procedures into an indirection through the component s CLT. This component link table can then be accessed via a well-known name in the object s symbol table. In languages such as C++, it is even possible to integrate the component definition into the language and extract the component interfaces directly from the symbol table. This is similar to the Late Binding in C++ found in [7]. Using this technique, components can be expressed as a special class from which public methods of any sub-class are the component s interface. A simple modification of compiler causes the compiler to emit calls to these objects as indirections through the component s CLT. The resultant object file contains the link table (the external calls) and by scanning for derived methods of the special component class, the exportable procedure interface to the object as a component can be obtained. Component summary To summarise, we shall discuss the various issues together in a particular situation. Consider components written in C++ using a slightly modified compiler. All public method calls to an object derived from a special class called Component are inter-component calls. A CLT entry in the object for the class (and thus component) is built by the compiler and indirected through. The constructor for the Component provides its interface to a wellknown interface service component to which a default interconnection is made. This interface is extracted by the compiler as all the public methods derived from the Component object. With late binding as in [7] this interface can be extracted at run-time for type-checking. The CLT is stored in the component s data segment and is modified by the pico-kernel (through higher-level calls) when interconnections need to be modified. By storing the link table in the component s address-space, no operating system intervention or access is required once the interconnects are unchanged. This leaves the performance of the basic inter-component call is only slightly affected, with the single extra indirection. When the component is created it has its interconnections set-up by itself, the operating system or a third-party and during its run-time they may be changed through the pico-kernel. Operating system from components To construct an operating system out of such components, a small kernel (the pico-kernel) must be provided to provide the framework itself. The pico-kernel provides nothing but system calls to change component link tables. Above the pico-kernel is whatever operating system is being constructed. This will usually include higher-level management of the components, using operating system abstractions. In figure 5, we see an example component operating system structure based around that of a micro-kernel. The pico-kernel at the lowest level above the physical devices provides system calls for maintaining the interconnections only. No abstraction of the CPU, memory or of a process is provided.

5 Local server DSM Server Abstract Mem Virtual Mem Application Native CPU Virtual CPU Pico-kernel Host App. Host CPU Virtual Other Memory CPU Other Figure 5: An example component operating system Above this are virtual device components for multiplexing and arbitrating access to physical devices. This allows multiple abstractions to be presented by higher-level components. This can be seen by both a native and hosted CPU being multiplexed on the actual CPU. Above these, higher level components exist providing abstractions which applications can use. In such an operating system, the use of components throughout the system allows the ability to change any of the inter-connections. As an example, if trusted, the DSM server can be placed in the same protection domain as the rest of the traditional micro-kernel (CPU and Memory), reducing overhead. Also, a virtual device (perhaps network) component servicing an application may be replaced by a queue when the device disappears. The pico-kernel only provides management of the component interconnections. Thus, it is the operating system components responsibility to provide higher-level access to the components. In a typical component operating system this will include: interface name services, component-level access and support for components from the operating systems abstractions. The interface name service is a well-known component that knows the interface of components when created and allows components to find each other. Componentlevel access allows components to alter their interconnection configuration and become aware of the types currently in use. Discussion It is important that the functionality of the pico-kernel is minimised when components are used so low in the operating system, since little control is provided over the CPU and memory subsystems. This means the component mechanism, both run-time support and data-structures must be also minimised. For this reason, the pico-kernel only provides calls for maintaining the CLT. Any other functionality that needs to pertain to operating system abstractions of processes, objects, etc. must be provided by the operating system being built. Given the potential for dynamic modification of parts of the kernel, it is likely new components would be interconnected which where not known at compile-time. In these situations link-time or run-time type-checking is required. Link-time type checking is already found in dynamic linking and many languages contain support for run-time type checking of the procedure interfaces. State is an obvious concern when interchanging components, for which a component framework cannot compensate. Instead new objects must either be able to acquire the new state or start from a safe state. Alternatively, before replacement, a functioning component may have interconnections to it monitored by inserting transaction based calling or have their state checkpointed. Conclusions In this paper, we have presented a uniform component framework that allows the level of coupling between components to be varied at run-time. This ability to vary the coupling is achieved by allowing the calling convention to be changed dynamically by a modification to normal procedure calls. In doing so, basic component

6 interconnection should be achievable with low-overhead. Support for a range of possible calling conventions are discussed, which allow extra functionality to be used where and when necessary. Finally, the structure of a micro-kernel operating constructed from such components is briefly discussed along with its potential uses. Bibliography 1 K. Murray, A. Saulsbury, T.Stiemerling, T. Wilkinson, P. Kelly, and P. Osmon. Design and implementation of an objectorientated 64-bit single address space micro-kernel, in 2 nd USENIX Symposium on Microkernels and Kernel Architectures, Sept R. Rashid, R. Baran, A. Forin, D. Golub, M. Jones, D. Julin, D. Orr, and R. Sanzi. Mach: A Foundation for Open Systems. In Proceedings of the Second IEEE Workshop on Workstation Operating Systems, Sept The Common Object Request Broker: Architecture and Specification. Object Management Group. Document Number J. Magee, J. Kramer, and M. Sloman. REGIS: A Constructive Development Environment for Distributed Programs. Distributed Systems Engineering. 1(5): , J. M. Purtilo. The Polylith software bus. ACM Transactions on Programming Languages and Systems. 16(1): , N. Carriero and D. Gelernter. How to write parallel programs: a first course. MIT Press, T. Wilkinson. An Implementation of Late Binding Functions in C++. Technical Report, City University

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 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

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 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Design and Implementation of the Heterogeneous Multikernel Operating System

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,

More information

VMware Server 2.0 Essentials. Virtualization Deployment and Management

VMware Server 2.0 Essentials. Virtualization Deployment and Management VMware Server 2.0 Essentials Virtualization Deployment and Management . This PDF is provided for personal use only. Unauthorized use, reproduction and/or distribution strictly prohibited. All rights reserved.

More information

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: 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.

More information

Managing Variability in Software Architectures 1 Felix Bachmann*

Managing Variability in Software Architectures 1 Felix Bachmann* Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA fb@sei.cmu.edu Len Bass Software Engineering Institute Carnegie

More information

x64 Servers: Do you want 64 or 32 bit apps with that server?

x64 Servers: Do you want 64 or 32 bit apps with that server? TMurgent Technologies x64 Servers: Do you want 64 or 32 bit apps with that server? White Paper by Tim Mangan TMurgent Technologies February, 2006 Introduction New servers based on what is generally called

More information

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? 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,

More information

CPS221 Lecture: Operating System Structure; Virtual Machines

CPS221 Lecture: Operating System Structure; Virtual Machines Objectives CPS221 Lecture: Operating System Structure; Virtual Machines 1. To discuss various ways of structuring the operating system proper 2. To discuss virtual machines Materials: 1. Projectable of

More information

Example of Standard API

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

More information

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what

More information

Full and Para Virtualization

Full and Para Virtualization Full and Para Virtualization Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF x86 Hardware Virtualization The x86 architecture offers four levels

More information

Chapter 2: OS Overview

Chapter 2: OS Overview Chapter 2: OS Overview CmSc 335 Operating Systems 1. Operating system objectives and functions Operating systems control and support the usage of computer systems. a. usage users of a computer system:

More information

Distributed Objects and Components

Distributed Objects and Components Distributed Objects and Components Introduction This essay will identify the differences between objects and components and what it means for a component to be distributed. It will also examine the Java

More information

COS 318: Operating Systems. Virtual Machine Monitors

COS 318: Operating Systems. Virtual Machine Monitors COS 318: Operating Systems Virtual Machine Monitors Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Introduction Have been around

More information

How To Understand The Concept Of A Distributed System

How To Understand The Concept Of A Distributed System Distributed Operating Systems Introduction Ewa Niewiadomska-Szynkiewicz and Adam Kozakiewicz ens@ia.pw.edu.pl, akozakie@ia.pw.edu.pl Institute of Control and Computation Engineering Warsaw University of

More information

Client/Server Computing Distributed Processing, Client/Server, and Clusters

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

More information

COS 318: Operating Systems. Virtual Machine Monitors

COS 318: Operating Systems. Virtual Machine Monitors COS 318: Operating Systems Virtual Machine Monitors Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318/ Introduction u Have

More information

Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary

Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary C H A P T E R 1 1 Overview of CORBA 11.1 Introduction to CORBA 11.2 CORBA architecture 11.3 Client and object implementations 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary In previous

More information

1 Organization of Operating Systems

1 Organization of Operating Systems COMP 730 (242) Class Notes Section 10: Organization of Operating Systems 1 Organization of Operating Systems We have studied in detail the organization of Xinu. Naturally, this organization is far from

More information

Operating System Organization. Purpose of an OS

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

More information

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont. Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures

More information

An Introduction to Novell Distributed Print Services (NDPS)

An Introduction to Novell Distributed Print Services (NDPS) A P R I L 1 9 9 8 N O V E L L R E S E A R H An Introduction to Novell Distributed Print s (NDPS) MARK E. MKELL Editorial Intern Novell Developer Information RAIG WHITTLE Software Engineer Novell Products

More information

Cloud Computing. Up until now

Cloud Computing. Up until now Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines

More information

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications Chapter 6. CORBA-based Architecture 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications 1 Chapter 6. CORBA-based Architecture Part 6.1 Introduction to

More information

TCP Servers: Offloading TCP Processing in Internet Servers. Design, Implementation, and Performance

TCP Servers: Offloading TCP Processing in Internet Servers. Design, Implementation, and Performance TCP Servers: Offloading TCP Processing in Internet Servers. Design, Implementation, and Performance M. Rangarajan, A. Bohra, K. Banerjee, E.V. Carrera, R. Bianchini, L. Iftode, W. Zwaenepoel. Presented

More information

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

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,

More information

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS Embedded Systems White Paper GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS September 2009 ABSTRACT Android is an open source platform built by Google that includes an operating system,

More information

Mesovirtualization: Lightweight Virtualization Technique for Embedded Systems

Mesovirtualization: Lightweight Virtualization Technique for Embedded Systems Mesovirtualization: Lightweight Virtualization Technique for Embedded Systems Megumi Ito Shuichi Oikawa Department of Computer Science, University of Tsukuba 1-1-1 Tennodai, Tsukuba, Ibaraki 305-8573,

More information

Integrating VoltDB with Hadoop

Integrating VoltDB with Hadoop The NewSQL database you ll never outgrow Integrating with Hadoop Hadoop is an open source framework for managing and manipulating massive volumes of data. is an database for handling high velocity data.

More information

VMkit A lightweight hypervisor library for Barrelfish

VMkit A lightweight hypervisor library for Barrelfish Masters Thesis VMkit A lightweight hypervisor library for Barrelfish by Raffaele Sandrini Due date 2 September 2009 Advisors: Simon Peter, Andrew Baumann, and Timothy Roscoe ETH Zurich, Systems Group Department

More information

Using Multipathing Technology to Achieve a High Availability Solution

Using Multipathing Technology to Achieve a High Availability Solution Using Multipathing Technology to Achieve a High Availability Solution Table of Contents Introduction...3 Multipathing Technology...3 Multipathing I/O Implementations...5 Storage Redundancy...5 Infortrend

More information

Growing Agents - An Investigation of Architectural Mechanisms for the Specification of Developing Agent Architectures

Growing Agents - An Investigation of Architectural Mechanisms for the Specification of Developing Agent Architectures Growing Agents - An Investigation of Architectural Mechanisms for the Specification of Developing Agent Architectures Virgil Andronache Matthias Scheutz University of Notre Dame Notre Dame, IN 46556 e-mail:

More information

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University Virtual Machine Monitors Dr. Marc E. Fiuczynski Research Scholar Princeton University Introduction Have been around since 1960 s on mainframes used for multitasking Good example VM/370 Have resurfaced

More information

Globus Striped GridFTP Framework and Server. Raj Kettimuthu, ANL and U. Chicago

Globus Striped GridFTP Framework and Server. Raj Kettimuthu, ANL and U. Chicago Globus Striped GridFTP Framework and Server Raj Kettimuthu, ANL and U. Chicago Outline Introduction Features Motivation Architecture Globus XIO Experimental Results 3 August 2005 The Ohio State University

More information

Concurrency in Object-Oriented Programming Languages

Concurrency in Object-Oriented Programming Languages Chapter 2 Concurrency in Object-Oriented Programming Languages Michael Papathomas Abstract An essential motivation behind concurrent object-oriented programming is to exploit the software reuse potential

More information

The Service Revolution software engineering without programming languages

The Service Revolution software engineering without programming languages The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)

More information

1. Computer System Structure and Components

1. Computer System Structure and Components 1 Computer System Structure and Components Computer System Layers Various Computer Programs OS System Calls (eg, fork, execv, write, etc) KERNEL/Behavior or CPU Device Drivers Device Controllers Devices

More information

Oracle9i Release 2 Database Architecture on Windows. An Oracle Technical White Paper April 2003

Oracle9i Release 2 Database Architecture on Windows. An Oracle Technical White Paper April 2003 Oracle9i Release 2 Database Architecture on Windows An Oracle Technical White Paper April 2003 Oracle9i Release 2 Database Architecture on Windows Executive Overview... 3 Introduction... 3 Oracle9i Release

More information

Resource Containers: A new facility for resource management in server systems

Resource Containers: A new facility for resource management in server systems CS 5204 Operating Systems Resource Containers: A new facility for resource management in server systems G. Banga, P. Druschel, Rice Univ. J. C. Mogul, Compaq OSDI 1999 Outline Background Previous Approaches

More information

Web Services. Copyright 2011 Srdjan Komazec

Web Services. Copyright 2011 Srdjan Komazec Web Services Middleware Copyright 2011 Srdjan Komazec 1 Where are we? # Title 1 Distributed Information Systems 2 Middleware 3 Web Technologies 4 Web Services 5 Basic Web Service Technologies 6 Web 2.0

More information

HYBRID JINI FOR LIMITED DEVICES

HYBRID JINI FOR LIMITED DEVICES HYBRID JINI FOR LIMITED DEVICES VINCENT LENDERS, POLLY HUANG AND MEN MUHEIM ETH Zürich E-mail: lenders, huang @tik.ee.ethz.ch, men@ife.ee.ethz.ch We envision a future of heterogeneous mobile devices collaborating

More information

Virtualization. Dr. Yingwu Zhu

Virtualization. Dr. Yingwu Zhu Virtualization Dr. Yingwu Zhu What is virtualization? Virtualization allows one computer to do the job of multiple computers. Virtual environments let one computer host multiple operating systems at the

More information

Chapter 13 Embedded Operating Systems

Chapter 13 Embedded Operating Systems Operating Systems: Internals and Design Principles Chapter 13 Embedded Operating Systems Eighth Edition By William Stallings Embedded System Refers to the use of electronics and software within a product

More information

independent systems in constant communication what they are, why we care, how they work

independent systems in constant communication what they are, why we care, how they work Overview of Presentation Major Classes of Distributed Systems classes of distributed system loosely coupled systems loosely coupled, SMP, Single-system-image Clusters independent systems in constant communication

More information

Overlapping Data Transfer With Application Execution on Clusters

Overlapping Data Transfer With Application Execution on Clusters Overlapping Data Transfer With Application Execution on Clusters Karen L. Reid and Michael Stumm reid@cs.toronto.edu stumm@eecg.toronto.edu Department of Computer Science Department of Electrical and Computer

More information

MACH: AN OPEN SYSTEM OPERATING SYSTEM Aakash Damara, Vikas Damara, Aanchal Chanana Dronacharya College of Engineering, Gurgaon, India

MACH: AN OPEN SYSTEM OPERATING SYSTEM Aakash Damara, Vikas Damara, Aanchal Chanana Dronacharya College of Engineering, Gurgaon, India MACH: AN OPEN SYSTEM OPERATING SYSTEM Aakash Damara, Vikas Damara, Aanchal Chanana Dronacharya College of Engineering, Gurgaon, India ABSTRACT MACH is an operating system kernel.it is a Microkernel.It

More information

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE TIGRAN HAKOBYAN SUJAL PATEL VANDANA MURALI INTRODUCTION Common Object Request

More information

OPERATING SYSTEM - MEMORY MANAGEMENT

OPERATING SYSTEM - MEMORY MANAGEMENT OPERATING SYSTEM - MEMORY MANAGEMENT http://www.tutorialspoint.com/operating_system/os_memory_management.htm Copyright tutorialspoint.com Memory management is the functionality of an operating system which

More information

Computer Network. Interconnected collection of autonomous computers that are able to exchange information

Computer Network. Interconnected collection of autonomous computers that are able to exchange information Introduction Computer Network. Interconnected collection of autonomous computers that are able to exchange information No master/slave relationship between the computers in the network Data Communications.

More information

Experience with the integration of distribution middleware into partitioned systems

Experience with the integration of distribution middleware into partitioned systems Experience with the integration of distribution middleware into partitioned systems Héctor Pérez Tijero (perezh@unican.es) J. Javier Gutiérrez García (gutierjj@unican.es) Computers and Real-Time Group,

More information

Toasterkit - A NetBSD Rootkit. Anthony Martinez Thomas Bowen http://mrtheplague.net/toasterkit/

Toasterkit - A NetBSD Rootkit. Anthony Martinez Thomas Bowen http://mrtheplague.net/toasterkit/ Toasterkit - A NetBSD Rootkit Anthony Martinez Thomas Bowen http://mrtheplague.net/toasterkit/ Toasterkit - A NetBSD Rootkit 1. Who we are 2. What is NetBSD? Why NetBSD? 3. Rootkits on NetBSD 4. Architectural

More information

Middleware Lou Somers

Middleware Lou Somers Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,

More information

An Easier Way for Cross-Platform Data Acquisition Application Development

An Easier Way for Cross-Platform Data Acquisition Application Development An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers

More information

THE UNIVERSITY OF AUCKLAND

THE UNIVERSITY OF AUCKLAND THE UNIVERSITY OF AUCKLAND 07.340 T07.340 EXAMINATION FOR BA BSc ETC 1995 COMPUTER SCIENCE Operating Systems ( Time allowed : THREE hours ) NOTES: Answer SIX questions. The total mark for each question

More information

Principles and characteristics of distributed systems and environments

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

More information

Last Class: Communication in Distributed Systems. Today: Remote Procedure Calls

Last Class: Communication in Distributed Systems. Today: Remote Procedure Calls Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking? Buffered or unbuffered? Reliable or unreliable? Server architecture Scalability Push or pull?

More information

An Implementation Of Multiprocessor Linux

An Implementation Of Multiprocessor Linux An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than

More information

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No. # 26 Real - Time POSIX. (Contd.) Ok Good morning, so let us get

More information

International Workshop on Field Programmable Logic and Applications, FPL '99

International Workshop on Field Programmable Logic and Applications, FPL '99 International Workshop on Field Programmable Logic and Applications, FPL '99 DRIVE: An Interpretive Simulation and Visualization Environment for Dynamically Reconægurable Systems? Kiran Bondalapati and

More information

Infrastructure that supports (distributed) componentbased application development

Infrastructure that supports (distributed) componentbased application development Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication

More information

Server Manager Performance Monitor. Server Manager Diagnostics Page. . Information. . Audit Success. . Audit Failure

Server Manager Performance Monitor. Server Manager Diagnostics Page. . Information. . Audit Success. . Audit Failure Server Manager Diagnostics Page 653. Information. Audit Success. Audit Failure The view shows the total number of events in the last hour, 24 hours, 7 days, and the total. Each of these nodes can be expanded

More information

SysPatrol - Server Security Monitor

SysPatrol - Server Security Monitor SysPatrol Server Security Monitor User Manual Version 2.2 Sep 2013 www.flexense.com www.syspatrol.com 1 Product Overview SysPatrol is a server security monitoring solution allowing one to monitor one or

More information

How To Manage A Virtual Data Center In A Country With Limited Space

How To Manage A Virtual Data Center In A Country With Limited Space 3. Technology Technology UKAI This article introduces our research into the UKAI* 1 storage system, which enables flexible control over the actual data locations of virtual disk images of virtual machines

More information

TD 271 Rev.1 (PLEN/15)

TD 271 Rev.1 (PLEN/15) INTERNATIONAL TELECOMMUNICATION UNION STUDY GROUP 15 TELECOMMUNICATION STANDARDIZATION SECTOR STUDY PERIOD 2009-2012 English only Original: English Question(s): 12/15 Geneva, 31 May - 11 June 2010 Source:

More information

Operating System for the K computer

Operating System for the K computer Operating System for the K computer Jun Moroo Masahiko Yamada Takeharu Kato For the K computer to achieve the world s highest performance, Fujitsu has worked on the following three performance improvements

More information

Tuple spaces and Object spaces. Distributed Object Systems 12. Tuple spaces and Object spaces. Communication. Tuple space. Mechanisms 2.

Tuple spaces and Object spaces. Distributed Object Systems 12. Tuple spaces and Object spaces. Communication. Tuple space. Mechanisms 2. Distributed Object Systems 12 Tuple spaces and Object spaces Tuple spaces and Object spaces Tuple spaces Shared memory as a mechanism for exchanging data in a distributed setting (i.e. separate from processes)

More information

Event-based middleware services

Event-based middleware services 3 Event-based middleware services The term event service has different definitions. In general, an event service connects producers of information and interested consumers. The service acquires events

More information

A Model for Component Based E-governance Software Systems

A Model for Component Based E-governance Software Systems A Model for Component Based E-governance Software Systems A.SHRABAN KUMAR 1, G.JAYARAO 2,B.SHANKAR NAYAK 3, KBKS. DURGA 4 A.ESWARA RAO 5 1,2,3,4 Associate Professor CSE, St.MARTIN S ENGINEERING COLLEGE,

More information

S7 for Windows S7-300/400

S7 for Windows S7-300/400 S7 for Windows S7-300/400 A Programming System for the Siemens S7 300 / 400 PLC s IBHsoftec has an efficient and straight-forward programming system for the Simatic S7-300 and ern controller concept can

More information

Processor Capacity Reserves: An Abstraction for Managing Processor Usage

Processor Capacity Reserves: An Abstraction for Managing Processor Usage Processor Capacity Reserves: An Abstraction for Managing Processor Usage Clifford W. Mercer, Stefan Savage, and Hideyuki Tokuda School of Computer Science Carnegie Mellon University Pittsburgh, Pennsylvania

More information

Plug and Play Solution for AUTOSAR Software Components

Plug and Play Solution for AUTOSAR Software Components Plug and Play Solution for AUTOSAR Software Components The interfaces defined in the AUTOSAR standard enable an easier assembly of the ECU application out of components from different suppliers. However,

More information

RHODOS A Microkernel based Distributed Operating System: An Overview of the 1993 Version *

RHODOS A Microkernel based Distributed Operating System: An Overview of the 1993 Version * RHODOS A Microkernel based Distributed Operating System: An Overview of the 1993 Version * D. De Paoli, A. Goscinski, M. Hobbs, G. Wickham {ddp, ang, mick, gjw}@deakin.edu.au School of Computing and Mathematics

More information

Chapter 5 Cloud Resource Virtualization

Chapter 5 Cloud Resource Virtualization Chapter 5 Cloud Resource Virtualization Contents Virtualization. Layering and virtualization. Virtual machine monitor. Virtual machine. Performance and security isolation. Architectural support for virtualization.

More information

Using Predictive Adaptive Parallelism to Address Portability and Irregularity

Using Predictive Adaptive Parallelism to Address Portability and Irregularity Using Predictive Adaptive Parallelism to Address Portability and Irregularity avid L. Wangerin and Isaac. Scherson {dwangeri,isaac}@uci.edu School of Computer Science University of California, Irvine Irvine,

More information

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models Table of Contents J2EE Technology Application Servers... 1 ArchitecturalOverview...2 Server Process Interactions... 4 JDBC Support and Connection Pooling... 4 CMPSupport...5 JMSSupport...6 CORBA ORB Support...

More information

Operating System Tutorial

Operating System Tutorial Operating System Tutorial OPERATING SYSTEM TUTORIAL Simply Easy Learning by tutorialspoint.com tutorialspoint.com i ABOUT THE TUTORIAL Operating System Tutorial An operating system (OS) is a collection

More information

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

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

More information

AC 2009-2223: A VIRTUALIZED NETWORK TEACHING LABORATORY

AC 2009-2223: A VIRTUALIZED NETWORK TEACHING LABORATORY AC 2009-2223: A VIRTUALIZED NETWORK TEACHING LABORATORY Eric Freudenthal, University of Texas, El Paso Eric Freudenthal is an Assistant Professor of computer science at the University of Texas at El Paso.

More information

Basics of Virtualisation

Basics of Virtualisation Basics of Virtualisation Volker Büge Institut für Experimentelle Kernphysik Universität Karlsruhe Die Kooperation von The x86 Architecture Why do we need virtualisation? x86 based operating systems are

More information

Full System Emulation:

Full System Emulation: Full System Emulation: Achieving Successful Automated Dynamic Analysis of Evasive Malware Christopher Kruegel Lastline, Inc. chris@lastline.com 1 Introduction Automated malware analysis systems (or sandboxes)

More information

SPAMfighter Mail Gateway

SPAMfighter Mail Gateway SPAMfighter Mail Gateway User Manual Copyright (c) 2009 SPAMfighter ApS Revised 2009-05-19 1 Table of contents 1. Introduction...3 2. Basic idea...4 2.1 Detect-and-remove...4 2.2 Power-through-simplicity...4

More information

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada ken@unb.ca Micaela Serra

More information

Interface Definition Language

Interface Definition Language Interface Definition Language A. David McKinnon Washington State University An Interface Definition Language (IDL) is a language that is used to define the interface between a client and server process

More information

The Abstraction: Address Spaces

The Abstraction: Address Spaces 13 The Abstraction: Address Spaces In the early days, building computer systems was easy. Why, you ask? Because users didn t expect much. It is those darned users with their expectations of ease of use,

More information

Chapter 6, The Operating System Machine Level

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

More information

Server-Virtualisierung mit Windows Server Hyper-V und System Center MOC 20409

Server-Virtualisierung mit Windows Server Hyper-V und System Center MOC 20409 Server-Virtualisierung mit Windows Server Hyper-V und System Center MOC 20409 Course Outline Module 1: Evaluating the Environment for Virtualization This module provides an overview of Microsoft virtualization

More information

Grid Middleware for Realizing Autonomous Resource Sharing: Grid Service Platform

Grid Middleware for Realizing Autonomous Resource Sharing: Grid Service Platform Grid Middleware for Realizing Autonomous Resource Sharing: Grid Service Platform V Soichi Shigeta V Haruyasu Ueda V Nobutaka Imamura (Manuscript received April 19, 2007) These days, many enterprises are

More information

Switch Fabric Implementation Using Shared Memory

Switch Fabric Implementation Using Shared Memory Order this document by /D Switch Fabric Implementation Using Shared Memory Prepared by: Lakshmi Mandyam and B. Kinney INTRODUCTION Whether it be for the World Wide Web or for an intra office network, today

More information

Performance Optimization Guide

Performance Optimization Guide Performance Optimization Guide Publication Date: July 06, 2016 Copyright Metalogix International GmbH, 2001-2016. All Rights Reserved. This software is protected by copyright law and international treaties.

More information

Windows Server Performance Monitoring

Windows Server Performance Monitoring Spot server problems before they are noticed The system s really slow today! How often have you heard that? Finding the solution isn t so easy. The obvious questions to ask are why is it running slowly

More information

Universidad Simón Bolívar

Universidad Simón Bolívar Cardinale, Yudith Figueira, Carlos Hernández, Emilio Baquero, Eduardo Berbín, Luis Bouza, Roberto Gamess, Eric García, Pedro Universidad Simón Bolívar In 1999, a couple of projects from USB received funding

More information

Virtual Computing and VMWare. Module 4

Virtual Computing and VMWare. Module 4 Virtual Computing and VMWare Module 4 Virtual Computing Cyber Defense program depends on virtual computing We will use it for hands-on learning Cyber defense competition will be hosted on a virtual computing

More information

Implementing Network Attached Storage. Ken Fallon Bill Bullers Impactdata

Implementing Network Attached Storage. Ken Fallon Bill Bullers Impactdata Implementing Network Attached Storage Ken Fallon Bill Bullers Impactdata Abstract The Network Peripheral Adapter (NPA) is an intelligent controller and optimized file server that enables network-attached

More information

Java Virtual Machine: the key for accurated memory prefetching

Java Virtual Machine: the key for accurated memory prefetching Java Virtual Machine: the key for accurated memory prefetching Yolanda Becerra Jordi Garcia Toni Cortes Nacho Navarro Computer Architecture Department Universitat Politècnica de Catalunya Barcelona, Spain

More information

Virtual Private Systems for FreeBSD

Virtual Private Systems for FreeBSD Virtual Private Systems for FreeBSD Klaus P. Ohrhallinger 06. June 2010 Abstract Virtual Private Systems for FreeBSD (VPS) is a novel virtualization implementation which is based on the operating system

More information

Embedded Systems. 6. Real-Time Operating Systems

Embedded Systems. 6. Real-Time Operating Systems Embedded Systems 6. Real-Time Operating Systems Lothar Thiele 6-1 Contents of Course 1. Embedded Systems Introduction 2. Software Introduction 7. System Components 10. Models 3. Real-Time Models 4. Periodic/Aperiodic

More information

(Refer Slide Time: 00:01:16 min)

(Refer Slide Time: 00:01:16 min) Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control

More information

Amoeba Distributed Operating System

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

More information

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. 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

More information