Amoeba made compatible with Unix: the ADE approach. School of Computing & Information Technology, Grith University

Size: px
Start display at page:

Download "Amoeba made compatible with Unix: the ADE approach. School of Computing & Information Technology, Grith University"

Transcription

1 Amoeba made compatible with Unix: the A approach CZ Sun P Keuning + G Dekker + J Schipper + M De Lange + + ACE Associated Computer Experts BV Van Eeghenstraat 100, 1071 GL Amsterdam, The Netherlands amoeba@acenl School of Computing & Information Technology, Grith University Nathan, Brisbane, Queensland 4111, Australia CSun@citgueduau Abstract This paper 1 reports a recent development on the Amoeba distributed operating system the A emulation system, which aims at making Amoeba fully compatible with the Unix (POSIX) operating system so that existing Unix applications can directly run on the Amoeba system and immediately benet from the use of the Amoeba multiple processors 1 Introduction Amoeba is a generalpurpose distributed operating system [1] It is intended for parallel and distributed applications, as well as traditional applications It takes a collection of machines and make them act together as a single integrated system In Amoeba, multiple processors can be dynamically allocated to a single job or program to gain speed In general, users are not aware of the number and location of the processors that run their commands, nor of the number and location of the le servers that store their les To the casual user, an Amoeba system looks like a single oldfashioned timesharing system Amoeba was originally designed and implemented by a group under the direction of Prof Andrew S Tanenbaum at the Vrije Universiteit (VU) in Amsterdam, The Nether 1 This paper was published in the 17th Australian Computer Scinece Conference held in Christchurch, New Zealand, Jan 19{ It is also available in the proceedings of ACSC17 on pp 249{258 lands, partly in cooperation with the Centrum voor Wiskunde en Informatica (CWI), also located in Amsterdam When Amoeba reached the point where it was beyond the laboratory stage and was ready for commercial use, VU and CWI decided to join forces with ACE, a leading Dutch R & D company specializing in advanced software, including operating systems, compilers, CASE tools, and networking While the research labs will continue to push the OS technology forward, ACE will provide commercial support for and conduct further R & D work on Amoeba This paper reports a recent development on Amoeba conducted at ACE This work aims at making Amoeba fully compatible with the Unix operating system so that existing Unix applications can directly run on the Amoeba system and immediately benet from the use of the Amoeba multiple processors The rest of this paper is organized as follows: First, the incompatible aspects between Amoeba and Unix are discussed in Section 2 Then, the basic idea of the A approach compatibility by integration is described in Section 3 Next, the design and implementation strategies of the A system are discussed in Section 4 Finally, some concluding remarks are given in Section 5 2 Incompatible aspects between Amoeba and Unix In contrast to other parallel/distributed operating systems [3, 4, 5], the Amoeba distributed 1

2 operating system was originally designed without regard for backward compatibility with systems like Unix From an operating system research point of view, having the freedom to selectively use ideas from existing systems is an advantage, which has resulted in one of the fastest distributed operating systems in the world [2] However, when Amoeba has gone beyond the laboratory stage and used in research institutes and companies all over the world, its compatibility with Unix has become very important to its success in supporting migration of existing software systems from sequential platforms to parallel and distributed platforms In many aspects (eg process management, signal handling, etc), Amoeba is incompatible with Unix Some Unix features are fundamentally dierent with that in Amoeba and are virtually impossible to be emulated on top of Amoeba, including: Protection mechanism: Since capabilities are used for protection of objects in Amoeba, it does not have the Unix equivalent of userids or groupids The whole concept of userids and groupids is very hard to get right in a capabilitybased system Directory service semantics: There are no symbolic links in the Amoeba Soap directory server [1] The only kind of links are hard links but they have a different semantics from those of Unix hard links There are no link counts anywhere in Amoeba so that deleting an object will break all links to it! Emulating Unix directory service (which is tightly coupled with the le service) on top of the Soap Server is virtually impossible File service semantics: The Amoeba Bullet le server implements immutable les [1] That is, once a Bullet le has been created it cannot be changed Combined with the incompatible semantics of the Soap directory server, the Bullet le service semantics makes the emulation of Unix le service on top of it virtually impossible Although the Ajax approach has been taken to emulate partial Unix functionality on top of the Amoeba kernel and standard servers (eg the Soap directory server and the Bullet le server) [1], 100 % compatibility has never been a goal and may never be achieved by the Ajax approach To make Amoeba fully compatible with Unix, an alternative approach is needed to deal with the above basic incompatible aspects 3 Compatibility by integration The basic idea of our approach is to achieve compatibility by integrating real Unix systems as specialized Unix servers into the Amoeba environment As shown in Fig 1, the Amoeba architecture consists of four principle components: First, each user has a workstation for running the user interface and X window System; Second, there exists a pool of processors (computing servers) that are dynamically allocated to users as required; Third, there are specialized servers, such as le servers, database servers, and Unix servers which provides transparent Unix system service to applications running in the Amoeba environment; Finally, there are gateway machines that allow multiple Amoeba systems that are far apart to be connected together transparently In the proposed approach, the real Unix system is used to provide the Unix le system service and protection based on Unix userids and groupids, avoiding the basic incompatible problems between Amoeba and Unix, 100% compatibility is achievable Furthermore, most of the Unix system functionalities (eg le system, process management and signal handling) can be directly obtained from the real Unix system The main task of the emulation software is to integrate the Unix functionalities into the Amoeba system by implementing proper RPCs (Remote Procedure Calls [7]) on the Unix system, which is signicantly simpler than implementing an emulator on top of the Amoeba kernel Since many Unix system calls, particularly the le system calls, will be served on the re 2

3 Processor Pool (Computing Servers) Workstations Gateway WAN File DB Unix Server Server Server Specialized Servers Figure 1: An Amoeba conguration with real Unix systems as Unix servers mote Unix system, the performance of this emulation will be slower than that of emulation on top of the Amoeba kernel and Amoeba standard servers However, the proposed approach is mainly intended as a bridge for a smooth migration of existing Unix applications from traditional sequential environment to the Amoeba parallel and distributed environment Unix applications with concurrent processes can not only migrate to the Amoeba system without modication, but also immediately benet from having these concurrent processes executed on multiple processors in Amoeba Furthermore, migrated applications can be gradually adapted to the new environment to take advantage of Amoeba's facilities for parallel and distributed computing (eg the highly ecient interprocess communication facilities) 4 A prototype implementation of the A system To realize the proposed approach, a prototype system, called the A (Amoeba Dedicated Engine) system, has been developed [8, 9] The design and implementation strategies of the A system are discussed in this section 41 System structure The A system consists of two multilayered subsystems distributed on two operating system environments: the Amoeba system and the Unix system, as shown in Fig 2 The AmoebaRPC layer and the FLIP (Fast Local Internet Protocol) layer connect the Amoeba system and the Unix system together and provide a fast remote procedure call interface for communication between the A components of the two sides On the Amoeba system side, the AXSI layer and ARPC layer are built on top of the AmoebaRPC layer, and the application program () is running on top of the AXSI layer On the Unix server system side, the (Unix Server) component is built on top of the AmoebaRPC layer Dynamically, the A system consists of multiple processes running on both the Amoeba system and the Unix system, as shown in Fig 3 There are two types of processes in the A system: one is the process, which executes the application program () linked with the library ( = AXSI + ARPC) program and runs on the Amoeba system; the other is the process, which executes the Unix Server program and runs on the Unix system There is an onetoone correspondence between processes and processes 3

4 Amoeba System AXSI ARPC AmoebaRPC AmoebaRPC FLIP FLIP : AXSI: ARPC: : AmoebaRPC: FLIP: Application Program A X/Open System Interface library A Remote Procedure Call stub library Unix Server Ethernet Amoeba Remote Procedure Call interface Fast Local Internet Protocol Figure 2: Statical structure of the A system 42 Functional specication of the A components The functionalities of the A components are briey specied below For descriptions of the AmoebaRPC layer and the FLIP layer, the reader is referred to [11, 6] The AXSI layer: The AXSI layer supports the functions and headers of XSI the X/Open System Interface dened in the X/Open Portability Guide of 1989, informally known as XPG3 [13] Since XPG3 is a superset of POSIX [12], most of the XSI interface routines are implemented as C library routines, without communicating with the process For these XSI interface routines whose implementations rely on the process, the main functionality of this layer is to prepare and format the parameters properly for the ARPC layer The ARPC layer: The ARPC layer is a remote procedure call interface to the process The main functionality of this layer is to marshal parameters, to call the AmoebaRPC primitives for communicating with the process, and to unmarshal the results from the process Every Unix system call whose implementation relies on the process has a corresponding ARPC routine 4

5 Amoeba System (Dedicated Engine) = AXSI + ARPC Figure 3: Dynamic structure of the A system with the same Unix call name prexed by "us " Amoeba System The process: The process runs on the Unix server system and provides remote Unix system services, including the le service, process and job control, and signal delivery As shown in Fig 4, when an application program () makes a Unix system call, an RPC is made to the process by the part of the process The process makes the corresponding Unix call on the Unix server system and returns the result to the application process 43 Implementation strategies Most of the Unix system calls can be implemented with the strategy illustrated in Fig 4 However, a few Unix system calls, such as execve(), fork(), exit(), and the Unix signal handling, need special arrangement on both the process side and the process side, which are discussed in following subsections Unix call(1) RPC(2) Unix call(3) Unix kernel Figure 4: Remote implementation of a Unix call 431 Program execution In Amoeba, a library routine exec f ile() is used to execute a new program To execute a Unix executable le in Amoeba, the format of the Unix executable le need to be changed into the format of the Amoeba executable le There is an Amoeba utility ainstall [11], which reformats and installs the Unix executable le into the Amoeba system To emulate the Unix execve() call, the following steps are executed (see Fig 5): When 5

6 Amoeba System exec le(4) execve(1) exitprocess(5) Amoeba kernel us install(2) Unix kernel ainstall(3) Figure 5: Protocols for executing a program the part of the process calls execve(), the part makes an RPC call to the process, which uses ainstall() to reformat and install the Unix executable le to the Amoeba system Then, a new process is created for the new program and connected to the old process Finally, the old process calls Amoeba library routine exitprocess() to quit itself The reason for creating a new process rst and then quitting the old one is that the Amoeba routine exec f ile() does not replace the existing program with the new one (like the Unix execve()) Instead, it always creates a new process for executing a new program 432 Process forking The emulation of the Unix fork() involves the forking of both a child process on the Unix system and a child process on the Amoeba system In Amoeba, a process server interface routine pro exec() is used to create a new process [11], whose behavior and status are determined by the process data structure provided as an argument As shown in Fig 6, the following steps are executed: When the part of the process calls fork(), the part makes an RPC call to the process Then, the process asks the Unix kernel to fork a child process on the Unix system The child will inherent all the attributes (eg userid/groupid, pid and ppid, etc) of the parent On the Amoeba side, if the process is able to make a copy of its own process data structure, then it would be farely easy to "fork" a child process by calling pro exec() However, the current version of Amoeba has no way for a process to get the process data structure of itself Therefore, an auxiliary owner process is used, which receives a checkpoint message from the parent process, makes a copy of the parent process data structure, and calls the pro exec() routine to start a child process 433 Process termination An process can be terminated abnormally by signals (to be discussed in Section 434) or normally by calling Unix exit() As shown in Fig 7, the normal termination of an process takes the following steps: rst, the part of the process calls 6

7 Amoeba System pro exec(6) checkpoint(5) OWNER 6 fork(1) pro stun(4) Amoeba kernel us fork(2) fork(3) Unix kernel Figure 6: Protocols for forking a new process exit() explicitly or the C language runtime system calls it implicitly Then, the part of the process makes an RPC call to the corresponding process, which terminates itself immediately after replying the process Finally, the process calls the Amoeba library routine exitprocess() to terminate itself exitprocess(4) Amoeba System exit(1) exit(3) Amoeba kernel us exit(2) Unix kernel Figure 7: Protocols for terminating a process normally 434 Signal and exception handling In Amoeba, signals are used for asynchronous communication between threads within a process A thread may specify a catcher function (via sig catch()) for a particular signal number; another thread may asynchronously cause a call to this catcher in the catching thread by generating a signal (via sig raise()) When a signal is generated, it is broadcast to all threads in the same process that have a catcher for it Threads that have no catcher for the signal are completely unaected In threads that catch the signal, system calls are completed or aborted; the catcher is called just before the system call returns If the 7 catcher returns, the thread continues where it was interrupted When a thread causes an exception (eg, it tries to divide by zero), and it has a catcher for the corresponding exception number, that catcher is called When a thread causes an exception for which it has no catcher, the process is stunned and its owner receives a checkpoint Exceptions are not broadcast to other threads, nor can they be ignored [11] To emulate the Unix signal handling, the following infrastructures are implemented in the A system: Signal server thread: In addition to the main thread which executes the appli

8 Amoeba System signal handler(7) 6 signal dispatcher(6) 6 signal propagator(4) signal server kill(1) sig raise(5) Amoeba kernel us kill(2) kill(3) Unix kernel Figure 8: Protocols for propagating signals cation program, a signal server thread exists in the process to receive messages (containing signal numbers) from the signal propagator (see below) in the process and raise the corresponding signals to the main thread Signal dispatcher: A signal dispatcher routine is used in the process to catch Amoeba signals and to dispatch the signal to a proper handler stored in the signal handler vector (see below) When the process is started, the dispatcher routine is installed in the Amoeba kernel for all Unix signal numbers and those Amoeba exception numbers which can be mapped into a Unix signal number Signal handler vector: There is a signal handler vector maintained by the process to store application signal handlers Initially, all signal handlers in the vector will be set to SIG DF L (Unix de ned default handler) When the application program installs a new handler for a signal (via sigaction()), this handler will be stored in the vector When the application program calls a Unix execve() to execute a new program, the contents of the vector will be updated according to the XSI denition of the semantics of the execve() (see [13]) Signal propagator: A signal propagator is used in the process to catch Unix signals and to propagate them (by sending messages) to the signal server thread in the process The signal propagator routine is basically a Unix signal handler in the process, and it is installed in the Unix kernel for a signal if this signal has a user dened routine as its signal handler, or this signal has SIG DF L as its signal handler and the default action is to terminate the process Signal generation and delivery Signals can be generated on both the Unix system side and the Amoeba system side When the part of an process calls a Unix kill(), the part will make an RPC call to the process, which simply asks the Unix kernel to generate and deliver the Unix sig 8

9 nal to the proper process (see Fig 8) For Unix signals generated by terminal activities and timer expiration, the Unix kernel will deliver them to the proper processes When the part of an process generates an exception (eg illegal memory reference) on the Amoeba system, the Amoeba kernel will deliver it to the proper process For signals propagated as messages from the signal propagator in the process, the signal server thread of an process will rely on the the Amoeba kernel to deliver them to the main thread of this process Signal propagation When a signal is delivered to a process, if SIG IGN (Unix dened ignore handler) has been installed for this signal, it will be ignored automatically by the Unix kernel without bothering the process and the process However, if SIG DF L has been installed for this signal and the default action is not to terminate the process, the default action will be taken automatically by the Unix kernel Otherwise, the signal propagator routine must have been installed for this signal, and will be called at the moment just before returning from a Unix system call It will send the signal number to the signal server thread in the process On the Amoeba system side, when the signal server thread has received the signal number from the signal propagator, it will raise this signal to the main thread of this process by calling the Amoeba routine sig raise() (see Fig 8) Signal dispatching Since the signal dispatcher routine is installed for all the Unix signal numbers and those Amoeba exception numbers which can be mapped into a Unix signal number, once a Unix signal is propagated from the process or an Amoeba exception is delivered by the Amoeba kernel, the signal dispatcher routine will be called at the moment just before an Amoeba system call returns Depending on the nature of the handler for this signal in the signal handler vector, the signal dispatcher routine will ignore the signal, or terminate the process, or call the user dened routine to handle the signal (see Fig 8) 5 Conclusions We have proposed a new approach to making the Amoeba distributed operating system fully compatible with Unix (POSIX) at the source level This approach integrates existing Unix systems into the Amoeba distributed computing environment as specialized Unix servers, so that existing Unix source programs can migrate to the Amoeba distributed environment without modication, immediately benet from the multiple processors computation power in Amoeba, and gradually be adapted to the new environment to make full use of the parallel and distributed facilities in Amoeba A prototype implementation of the A system has been operational on an existing Amoeba system with a network of 3 MC68030 processors plus a Sun 3/60 station The A system is now being used to combine the Amoeba distributed operating system with the sharedmemory Multiprocessor Unix (MU) operating system [10] Work on the A system is continued to make it a standard component of Amoeba Acknowledgements The work described in this paper was partially supported by the CAMAS (ESPRITIII 6756) project References [1] Mullender, SJ, Rossum, G van, Tanenbaum, AS, Renesse, R van, Staveren, H van: \Amoeba { A Distributed Operating System for the 1990s," IEEE Computer Magazine, May 1990 [2] Renesse, R van, Staveren, H van, Tanenbaum, AS: \Performance of the World's Fastest Distributed Operating System," Operating System Review, ACM Press, vol 22 No 4, Octo

10 [3] Accetta, A etc: \Mach: A New Kernel Foundation for UNIX Development," Proceedings of the Summer Unenix Conference, Atlanta, GA, July 1986 [4] Rozier, M etc: \CHOR Distributed Operating Systems," Technical Report 8876, Chorus Systems, Nov 1988 [5] Ousterhout, J, Cherenson, A, Douglis, F, Nelson, M, and Welch, B: \The Sprite network operating system," IEEE Computer, 21(2):2336, Feb 1988 [6] Kaashoek, MF, van Renesse, R, van Staveren, H, and Tanenbaum, AS: \FLIP: an Internetwork Protocol for Supporting Distributed Systems," Vrije University, Amsterdam, The Netherlands, 1992 [7] Birrell, AD, and Nelson, BJ: \Implementing remote procedure calls," ACM Transactions on Computer Systems, 2(1):3959, Feb 1984 [8] Sun, CZ: \Design and implementation of the A system," ACE3002design, ACE Associated Computer Experts BV, Amsterdam, The Netherlands, 1993 [9] Sun, CZ: \Interface specication of the A system," ACE3003spec, ACE Associated Computer Experts BV, Amsterdam, The Netherlands, 1993 [10] Sun, CZ, Keunin, P, Dekker, G, Schipper, J, De Lange, M : \Towards the combination of distributedmemory operating systems with sharedmemory operating systems," Proceedings of Parallel Computing & Transputer Conference, pp 5865, Brisbane, Australia, Nov 1993 [11] The Amoeba Reference Manual, Version 50, 1992 [12] Partable Operating System Interface for Computer Environments, IEEE Standard [13] X/Open Portability Guide, XSI System Interface and Headers, X/Open Company Limited,

AN EXPERIMENTAL COMPARISON OF REMOTE PROCEDURE CALL AND GROUP COMMUNICATION

AN EXPERIMENTAL COMPARISON OF REMOTE PROCEDURE CALL AND GROUP COMMUNICATION AN EXPERIMENTAL COMPARISON OF REMOTE PROCEDURE CALL AND GROUP COMMUNICATION M. Frans Kaashoek Andrew S. Tanenbaum Kees Verstoep ABSTRACT This paper suggests that a distributed system should support two

More information

A Comparison of Distributed Systems: ChorusOS and Amoeba

A Comparison of Distributed Systems: ChorusOS and Amoeba 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.

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

The Amoeba Distributed Operating System

The Amoeba Distributed Operating System The Amoeba Distributed Operating System Andrew S. Tanenbaum & Gregory J. Sharp Vrije Universiteit De Boelelaan 1081a Amsterdam, The Netherlands Email: ast@cs.vu.nl, gregor@cs.vu.nl 1. INTRODUCTION Roughly

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

THE AMOEBA DISTRIBUTED OPERATING SYSTEM A STATUS REPORT

THE AMOEBA DISTRIBUTED OPERATING SYSTEM A STATUS REPORT THE AMOEBA DISTRIBUTED OPERATING SYSTEM A STATUS REPORT Andrew S. Tanenbaum M. Frans Kaashoek Robbert van Renesse Henri E. Bal Dept. of Mathematics and Computer Science Vrije Universiteit Amsterdam, The

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

The Amoeba interaction network. monitor initial results. Paul Ashton. Department of Computer Science. University of Canterbury

The Amoeba interaction network. monitor initial results. Paul Ashton. Department of Computer Science. University of Canterbury The Amoeba interaction network monitor initial results Paul Ashton Department of Computer Science University of Canterbury TR-COSC 09/95, Oct 1995 The contents of this work reect the views of the authors

More information

Bullet Server Design, Advantages and Disadvantages

Bullet Server Design, Advantages and Disadvantages - 75 - The Design of a High-Performance File Server Robbert van Renesse* Andrew S. Tanenbaum Annita Wilschut Dept. of Computer Science Vrije Universiteit The Netherlands ABSTRACT The Bullet server is an

More information

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest 1. Introduction Few years ago, parallel computers could

More information

- 2 - TECHNICAL OVERVIEW OF AMOEBA Before describing the software, it is worth saying something about the system architecture on which Amoeba runs.

- 2 - TECHNICAL OVERVIEW OF AMOEBA Before describing the software, it is worth saying something about the system architecture on which Amoeba runs. Experiences with the Amoeba Distributed Operating System Andrew S. Tanenbaum Robbert van Renesse 1 Hans van Staveren Gregory J. Sharp Dept. of Mathematics and Computer Science Vrije Universiteit De Boelelaan

More information

Process Migration and Load Balancing in Amoeba

Process Migration and Load Balancing in Amoeba Process Migration and Load Balancing in Amoeba Chris Steketee Advanced Computing Research Centre, School of Computer and Information Science, University of South Australia, The Levels SA 5095 Email: Chris.Steketee@cis.unisa.edu.au

More information

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

More information

Weiping Zhu C.F. Steketee. processes into account. to the potential performance gain from this service.

Weiping Zhu C.F. Steketee. processes into account. to the potential performance gain from this service. An Experimental Study of Load Balancing on Amoeba Weiping Zhu C.F. Steketee School of Computer and Information Science University of South Australia Adelaide, Australia SA5095 Abstract This paper presents

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

Introduction. What is an Operating System?

Introduction. What is an Operating System? Introduction What is an Operating System? 1 What is an Operating System? 2 Why is an Operating System Needed? 3 How Did They Develop? Historical Approach Affect of Architecture 4 Efficient Utilization

More information

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun CS550 Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun Email: sun@iit.edu, Phone: (312) 567-5260 Office hours: 2:10pm-3:10pm Tuesday, 3:30pm-4:30pm Thursday at SB229C,

More information

Software Quality Factors OOA, OOD, and OOP Object-oriented techniques enhance key external and internal software quality factors, e.g., 1. External (v

Software Quality Factors OOA, OOD, and OOP Object-oriented techniques enhance key external and internal software quality factors, e.g., 1. External (v Object-Oriented Design and Programming Deja Vu? In the past: Structured = Good Overview of Object-Oriented Design Principles and Techniques Today: Object-Oriented = Good e.g., Douglas C. Schmidt www.cs.wustl.edu/schmidt/

More information

Real Time Programming: Concepts

Real Time Programming: Concepts Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize

More information

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

More information

An interaction network monitor. for Amoeba. Paul Ashton. Department of Computer Science. University of Canterbury. TR-COSC 10/95, Oct 1995

An interaction network monitor. for Amoeba. Paul Ashton. Department of Computer Science. University of Canterbury. TR-COSC 10/95, Oct 1995 An interaction network monitor for Amoeba Paul Ashton Department of Computer Science University of Canterbury TR-COSC 10/95, Oct 1995 The contents of this work reect the views of the authors who are responsible

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 3 Operating-System Structures

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

More information

Automatic load balancing and transparent process migration

Automatic load balancing and transparent process migration Automatic load balancing and transparent process migration Roberto Innocente rinnocente@hotmail.com November 24,2000 Download postscript from : mosix.ps or gzipped postscript from: mosix.ps.gz Nov 24,2000

More information

How To Protect A Computer From Being Hacked By A Hacker

How To Protect A Computer From Being Hacked By A Hacker Using Sparse Capabilities in a Distributed Operating System Andrew S. Tanenbaum Dept. of Mathematics and Computer Science Vrije Universiteit Amsterdam, The Netherlands Sape J. Mullender Centre for Mathematics

More information

Li Gong. University of Cambridge. Hogan in her recent paper [4] presented the requirements and the characteristics

Li Gong. University of Cambridge. Hogan in her recent paper [4] presented the requirements and the characteristics On Security in Capability-Based Systems Li Gong University of Cambridge Computer Laboratory Cambridge CB2 3QG, England November 1988 1 Introduction Hogan in her recent paper [4] presented the requirements

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

COS 318: Operating Systems COS 318: Operating Systems OS Structures and System Calls Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Outline Protection mechanisms

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

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

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

REBELS: REmote Execution BasEd Load-balancing System A. Puliato, O. Tomarchio, G. Haring, G. Kotsis Ist. di Informatica e Telecomunicazioni Dept. of Applied Computer Science Universita' di Catania UniversityofVienna

More information

How To Protect With Hidden Capabilities In A Protected System (Permanent Powerpoint)

How To Protect With Hidden Capabilities In A Protected System (Permanent Powerpoint) Hidden Software Capabilities D. Hagimont, J. Mossière. X. Rousset de Pina, F. Saunier Laboratoire IMAG-LSR, 2 av. de Vignate, 38610 Gières - France Internet: Daniel.Hagimont@imag.fr Abstract: Software

More information

Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis

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

More information

Parallel Processing over Mobile Ad Hoc Networks of Handheld Machines

Parallel Processing over Mobile Ad Hoc Networks of Handheld Machines Parallel Processing over Mobile Ad Hoc Networks of Handheld Machines Michael J Jipping Department of Computer Science Hope College Holland, MI 49423 jipping@cs.hope.edu Gary Lewandowski Department of Mathematics

More information

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

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 brinkman@upb.de Universität Paderborn PC 1 Overview Overview of chapter 3: Case Studies 3.1 Windows Architecture.....3

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

ELEC 377. Operating Systems. Week 1 Class 3

ELEC 377. Operating Systems. Week 1 Class 3 Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation

More information

Distributed File Systems

Distributed File Systems Distributed File Systems File Characteristics From Andrew File System work: most files are small transfer files rather than disk blocks? reading more common than writing most access is sequential most

More information

Unix as an Application Program

Unix as an Application Program Unix as an Application Program David Golub, Randall Dean, Alessandro Forin, Richard Rashid School of Computer Science Carnegie Mellon University Pittsburgh, Pennsylvania 15213 1. Abstract Since March of

More information

Operating System Components

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

More information

CS161: Operating Systems

CS161: Operating Systems CS161: Operating Systems Matt Welsh mdw@eecs.harvard.edu Lecture 2: OS Structure and System Calls February 6, 2007 1 Lecture Overview Protection Boundaries and Privilege Levels What makes the kernel different

More information

Understanding the OS Architecture and Linux History. Zhiqiang Lin

Understanding the OS Architecture and Linux History. Zhiqiang Lin CS 6V81-05: System Security and Malicious Code Analysis Understanding the OS Architecture and Linux History Zhiqiang Lin Department of Computer Science University of Texas at Dallas February 15 th, 2012

More information

How To Understand How A Process Works In Unix (Shell) (Shell Shell) (Program) (Unix) (For A Non-Program) And (Shell).Orgode) (Powerpoint) (Permanent) (Processes

How To Understand How A Process Works In Unix (Shell) (Shell Shell) (Program) (Unix) (For A Non-Program) And (Shell).Orgode) (Powerpoint) (Permanent) (Processes Content Introduction and History File I/O The File System Shell Programming Standard Unix Files and Configuration Processes Programs are instruction sets stored on a permanent medium (e.g. harddisc). Processes

More information

Software design (Cont.)

Software design (Cont.) Package diagrams Architectural styles Software design (Cont.) Design modelling technique: Package Diagrams Package: A module containing any number of classes Packages can be nested arbitrarily E.g.: Java

More information

Centralized Systems. A Centralized Computer System. Chapter 18: Database System Architectures

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

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

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization Lesson Objectives To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization AE3B33OSD Lesson 1 / Page 2 What is an Operating System? A

More information

File System Client and Server

File System Client and Server COMP 790-088 -- Distributed File Systems With Case Studies: Andrew and Google 1 File System Client and Server Server request (e.g., read) response (e.g., file block) Client 2 Factors Encouraging Migration

More information

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Fall 2007 Lecture 5 - DBMS Architecture

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Fall 2007 Lecture 5 - DBMS Architecture CSE 544 Principles of Database Management Systems Magdalena Balazinska Fall 2007 Lecture 5 - DBMS Architecture References Anatomy of a database system. J. Hellerstein and M. Stonebraker. In Red Book (4th

More information

The Interaction Network: a Performance Measurement and Evaluation Tool for Loosely-Coupled Distributed Systems

The Interaction Network: a Performance Measurement and Evaluation Tool for Loosely-Coupled Distributed Systems The Interaction Network: a Performance Measurement and Evaluation Tool for Loosely-Coupled Distributed Systems A thesis submitted in partial fulfilment of the requirements for the Degeee of Doctor of Philosophy

More information

Distributed Operating Systems State-of-the-Art and Future Directions

Distributed Operating Systems State-of-the-Art and Future Directions - 53 - Distributed Operating Systems State-of-the-Art and Future Directions Sape J. Mullender CWI, the Centre for Mathematics and Computer Science, Amsterdam, and Computer Laboratory, Cambridge University

More information

PRODUCTIVITY ESTIMATION OF UNIX OPERATING SYSTEM

PRODUCTIVITY ESTIMATION OF UNIX OPERATING SYSTEM Computer Modelling & New Technologies, 2002, Volume 6, No.1, 62-68 Transport and Telecommunication Institute, Lomonosov Str.1, Riga, LV-1019, Latvia STATISTICS AND RELIABILITY PRODUCTIVITY ESTIMATION OF

More information

Chapter 2 System Structures

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

More information

REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux

REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux Lesson-12: Real Time Linux 1 1. Real Time Linux 2 Linux 2.6.x Linux is after Linus Torvalds, father of the Linux operating

More information

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

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

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

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

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters COMP5426 Parallel and Distributed Computing Distributed Systems: Client/Server and Clusters Client/Server Computing Client Client machines are generally single-user workstations providing a user-friendly

More information

Chapter 10 Case Study 1: LINUX

Chapter 10 Case Study 1: LINUX MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 10 Case Study 1: LINUX History of UNIX and Linux UNICS PDP-11 UNIX Portable UNIX Berkeley UNIX Standard UNIX MINIX Linux UNIX/Linux Goals

More information

Components of a Computer System

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

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

Agenda. Distributed System Structures. Why Distributed Systems? Motivation

Agenda. Distributed System Structures. Why Distributed Systems? Motivation Agenda Distributed System Structures CSCI 444/544 Operating Systems Fall 2008 Motivation Network structure Fundamental network services Sockets and ports Client/server model Remote Procedure Call (RPC)

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

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

Distributed Systems. Distributed Systems

Distributed Systems. Distributed Systems Distributed Systems Prof. Steve Wilbur Department of Computer Science University College London 1 Distributed Systems... use of more than one computer connected by communications links to carry out a computational

More information

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

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:

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

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Processes and Non-Preemptive Scheduling. Otto J. Anshus Processes and Non-Preemptive Scheduling Otto J. Anshus 1 Concurrency and Process Challenge: Physical reality is Concurrent Smart to do concurrent software instead of sequential? At least we want to have

More information

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015 Operating Systems 05. Threads Paul Krzyzanowski Rutgers University Spring 2015 February 9, 2015 2014-2015 Paul Krzyzanowski 1 Thread of execution Single sequence of instructions Pointed to by the program

More information

Distributed Operating Systems

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:

More information

TPCC-UVa: An Open-Source TPC-C Implementation for Parallel and Distributed Systems

TPCC-UVa: An Open-Source TPC-C Implementation for Parallel and Distributed Systems TPCC-UVa: An Open-Source TPC-C Implementation for Parallel and Distributed Systems Diego R. Llanos and Belén Palop Universidad de Valladolid Departamento de Informática Valladolid, Spain {diego,b.palop}@infor.uva.es

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

Distributed Operating Systems. Cluster Systems

Distributed Operating Systems. Cluster Systems Distributed Operating Systems Cluster Systems Ewa Niewiadomska-Szynkiewicz ens@ia.pw.edu.pl Institute of Control and Computation Engineering Warsaw University of Technology E&IT Department, WUT 1 1. Cluster

More information

Libmonitor: A Tool for First-Party Monitoring

Libmonitor: A Tool for First-Party Monitoring Libmonitor: A Tool for First-Party Monitoring Mark W. Krentel Dept. of Computer Science Rice University 6100 Main St., Houston, TX 77005 krentel@rice.edu ABSTRACT Libmonitor is a library that provides

More information

OPERATING SYSTEM SERVICES

OPERATING SYSTEM SERVICES OPERATING SYSTEM SERVICES USER INTERFACE Command line interface(cli):uses text commands and a method for entering them Batch interface(bi):commands and directives to control those commands are entered

More information

Linux Kernel Architecture

Linux Kernel Architecture Linux Kernel Architecture Amir Hossein Payberah payberah@yahoo.com Contents What is Kernel? Kernel Architecture Overview User Space Kernel Space Kernel Functional Overview File System Process Management

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

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023 Operating Systems Autumn 2013 Outline 1 2 Types of 2.4, SGG The OS Kernel The kernel is the central component of an OS It has complete control over everything that occurs in the system Kernel overview

More information

Distributed Systems LEEC (2005/06 2º Sem.)

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

More information

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast. Interprocess communication (Part 2) For an application to send something out as a message, it must arrange its OS to receive its input. The OS is then sends it out either as a UDP datagram on the transport

More information

Kernel comparison of OpenSolaris, Windows Vista and. Linux 2.6

Kernel comparison of OpenSolaris, Windows Vista and. Linux 2.6 Kernel comparison of OpenSolaris, Windows Vista and Linux 2.6 The idea of writing this paper is evoked by Max Bruning's view on Solaris, BSD and Linux. The comparison of advantages and disadvantages among

More information

Chapter 15 Windows Operating Systems

Chapter 15 Windows Operating Systems Understanding Operating Systems, Fifth Edition 15-1 Chapter 15 Windows Operating Systems At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class Discussion Topics Additional

More information

Programming real-time systems with C/C++ and POSIX

Programming real-time systems with C/C++ and POSIX Programming real-time systems with C/C++ and POSIX Michael González Harbour 1. Introduction The C language [1], developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories, is the most widely

More information

CIS 551 / TCOM 401 Computer and Network Security. Spring 2005 Lecture 4

CIS 551 / TCOM 401 Computer and Network Security. Spring 2005 Lecture 4 CIS 551 / TCOM 401 Computer and Network Security Spring 2005 Lecture 4 Access Control: The Big Picture Objects - resources being protected E.g. files, devices, etc. Subjects - active entities E.g. processes,

More information

Chapter 1 Computer System Overview

Chapter 1 Computer System Overview Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Eighth Edition By William Stallings Operating System Exploits the hardware resources of one or more processors Provides

More information

CS420: Operating Systems OS Services & System Calls

CS420: Operating Systems OS Services & System Calls NK YORK COLLEGE OF PENNSYLVANIA HG OK 2 YORK COLLEGE OF PENNSYLVAN OS Services & System Calls James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts,

More information

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns

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

Module 20: The Linux System

Module 20: The Linux System Module 20: The Linux System History Design Principles Kernel Modules Process Management Scheduling Memory Management File Systems Input and Output Interprocess Communication Network Structure Security

More information

Components for Operating System Design

Components for Operating System Design 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.

More information

The Sprite Network Operating System

The Sprite Network Operating System The Sprite Network Operating System John K. Ousterhout Andrew R. Cherenson Frederick Douglis Michael N. Nelson Brent B. Welch Computer Science Division Department of Electrical Engineering and Computer

More information

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems Lecture Outline Operating Systems Objectives Describe the functions and layers of an operating system List the resources allocated by the operating system and describe the allocation process Explain how

More information

Chapter 18: Database System Architectures. Centralized Systems

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

More information

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

More information

Internet Protocol Address

Internet Protocol Address SFWR 4C03: Computer Networks & Computer Security Jan 17-21, 2005 Lecturer: Kartik Krishnan Lecture 7-9 Internet Protocol Address Addressing is a critical component of the internet abstraction. To give

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

Weighted Total Mark. Weighted Exam Mark

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

More information