Stackable Layers: An Object-Oriented Approach to. Distributed File System Architecture. Department of Computer Science

Size: px
Start display at page:

Download "Stackable Layers: An Object-Oriented Approach to. Distributed File System Architecture. Department of Computer Science"

Transcription

1 Stackable Layers: An Object-Oriented Approach to Distributed File System Architecture Thomas W. Page Jr., Gerald J. Popek y, Richard G. Guy Department of Computer Science University of California Los Angeles 1 Introduction Operating systems and their ling environments are traditionally implemented as large, monolithic pieces of software. The lack of a clean structure renders it expensive to add features to an operating system, and dicult to integrate independently added functionality without extensive reimplementation. It is increasingly recognized that there are great potential benets to be had from structuring an operating system so that services can be easily added by independent third parties. The Mach approach [1] is a ne example of the application of that philosophy to produce an abstraction at the virtual memory and process layer that permits multiple and independent operating system designs and implementations to be provided on top. The Unix System V streams design provides an environment and a set of interfaces by which network and device protocols may be added to an operating system at run time, stacking new layers on existing ones [8]. The ling service is a key component of most operating systems. The denition and support of well-dened internal interfaces in this area would allow a variety of services, perhaps developed by dierent groups or vendors, to be introduced to many systems without re-implementation of the rest of the le system. The ability to snap such components together depends on an architecture which provides eective interfaces, both in terms of assuring that necessary characteristics are present, and doing so in a manner that allows superior quality implementations without forcing signicant compromises. Clearly, these requirements call out for an object-oriented approach. Our group (and independent work by Rosenthal [9]) has proposed a stackable layers architecture for distributed le systems that we believe achieves these goals [7, 4, 3]. We have evaluated the stackable layers approach by designing, building, and using several new layers for the Unix le system. Most signicantly, we have used the architecture to construct a replicated le system, a key component in a general distributed ling environment. This work is sponsored by DARPA under contract number F C y This author is also associated with Locus Computing Corporation 1

2 2 The Stackable Architecture In most modern implementations of Unix, the rest of the operating system kernel interacts with the le system via the virtual node (vnode) interface [5, 2, 6]. In a manner analogous to object-oriented programming, vnodes are an abstract representation of a le object which has a private data area and a public interface (vnode operations). Each vnode has a vector of pointers to the functions which implement the vnode operations resulting in a form of operator overloading; dierent types of vnodes may point to a dierent vector of operators. A major motivation for the vnode architecture was to permit multiple implementations of the le system without modications to the rest of the kernel. So long as a new implementation adheres to the vnode interface, it may be substituted transparently to the rest of the kernel. Stackable layers are a generalization of vnodes. If the kernel interacts with the le system through a well-dened interface, why not slip in a layer between the le system and the rest of the kernel? If this \slipped in" layer supports the same interface both above and below, it may be inserted completely transparently to the kernel and to the underlying original le system. Further, if one such layer can be inserted transparently, so can many, creating a stack (or tree) of layers. Each layer in the stack implements a value-added service. The base layer (in our case, the Unix le system (UFS)) provides the abstraction of a le in a hierarchical name space with operations dened by the vnode interface (read, write, open, lookup, etc.). The next layer up might provide secure storage, encrypting data as it passes down and decrypting it as it passes back up. On top of that might be the replication layer which looks from above like a single le, but is represented by multiple physical replicas at the layer below. The top layer might support caching, looking in a main memory le for a copy of a requested page and returning it if it is found, otherwise forwarding the request down to the layer below. Thus the stack may be viewed as a specialization/generalization hierarchy: the base layer provides the abstraction of Unix les; the next layer up provides secure Unix les; the next layer provides replicated, secure Unix les; the top layer supports cached, replicated, secure Unix les. None of these layers knows or cares whether the layer below is the base le system or some other value added layer. All each layer has is a pointer to one (or more in the case of replication and caching) lower layers. For example, a stack could be congured without the secure le layer and all other layers would perform as before. Each layer must support the entire vnode interface. That is, for each of the vnode operations, the layer may implement the operation directly (overriding the implementation in lower layers), or delegate it to the layers beneath (inheritance). In the course of implementing the operation, a layer may call the same or a dierent operation on its underpinnings. Layers may, in addition, extend the interface providing additional vnode calls. 2

3 2.1 Stackable Layers in a Distributed System In order to support distributed and multiprocessor le systems, it should be possible for adjacent layers in a stack to reside in dierent address spaces, even on dierent sites. What is needed is a mechanism which maps calls from one layer, across address space boundaries or a communications network, to the next layer down. This mapping must be done absolutely transparently as no layer should have to be concerned about where the layers above or below are located. Following the stackable architecture philosophy, we propose a transport layer which accepts the same interface both above and below, mapping calls transparently across a communications channel to the next layer; essentially an RPC mechanism with a layer interface. A transport layer can then be inserted as desired between any pair of layers. Sun's Network File System[10], provides an approximation of such a transport facility. An NFS vnode on a client site, when operated on, performs corresponding operations on a UFS vnode on a remote site. NFS, however, is not a transparent mechanism; it was not intended to be used in this context, but rather to implement access to stateless le servers. As such, it does not obediently forward all operations, instead altering some and dropping others altogether. Using NFS as a starting point, we have implemented a transparent transport layer and used it in the Ficus replicated le system. 2.2 Analogy to Object-Oriented Programming There clearly is a close relationship between the stackable layers architecture and object-oriented programming with inheritance, but the use of object-oriented terminology in its description tends to obscure some dierences. For example, each layer in the stack is mounted on the layers beneath; it is not quite correct to say that a layer \inherits" from the layer below because the upper layer must explicitly pass through (delegate to the lower layer) any function which it does not override. Similarly, it may be confusing to think of these lower layers as having a parent-child relationship as the fan-out (one-to-many relationship) is mostly in the other direction (more like multiple inheritance). However, fan-out in the conventional direction is also conceivable (for example when a layer provides more than one view to layers above). Still, the motivations for, and the eects of the stackable layers architecture are very similar to object-oriented structuring. It provides a methodology for easy extensibility as new layers can be written and debugged without considering the internals of other layers. Similarly, it provides a mechanism for code re-use as older functionality does not have to be continually reimplemented in the context of new additions. It is an architecture with which software vendors potentially can supply \shrink wrapped" software modules which can be dynamically congured into existing operating system kernels. 3

4 3 Experience With Ficus The Ficus replicated le system is operational at UCLA. It is constructed in two layers: a logical layer provides the abstraction of a single copy highly available le and stacks on top of multiple branches, each representing one le replica; a physical layer is associated with each replica and handles the extra information that must be stored with each le to provide concurrency control and recovery from network partitions. Our experience with building the replication functionality in the layered architecture has been extremely positive. Because of our ability to leverage the existing UFS and NFS aorded by the approach, we were able to implement the replication layers in approximately 1:5 man years. A signicant boon to the implementation as been the ability to debug the new layers outside of the operating system kernel. Because the transport layer can map between address spaces on dierent machines, it can equally well map to user space. By simply exposing the vnode interface outside the kernel (via a set of system calls) we are able to test new layers outside the kernel using window-based debugging tools unavailable for in-kernel debugging. Once working in this manner, a layer may be easily moved inside the kernel as its interfaces above and below are identical in both contexts. We are in the process of constructing a measurement layer which may be congured transparently between any pair of adjacent layers. The measurement layer forwards all operations unmodied to the layer below, but allows the selective gathering of performance statistics on the trac between the layers. We look forward to tremendous exibility and ease of data gathering as future layers and versions of the interface are debugged and tuned for performance. 4 Support for User Available Object-Oriented Services It is clear that as systems become increasingly interconnected, the need to exchange data from heterogeneous sources: machine types, operating system types, and even dierent applications, will only continue to increase. Object-oriented services, with \self describing" type structures, have the potential to be very helpful by enabling solutions to the problems that arise in these situations. The operating system environment presents issues that are somewhat dierent from objectoriented programming languages, however. In the distributed environment, where object techniques can be so valuable, it will be necessary if such a system is to be eective that compatible solutions be available on a variety of dierent system types. Thus, in addition to basic functionality, a standard \wire protocol" interface will be needed. Implementations need to be provided in a highly modular manner, so that a given implementation can be easily ported to other environments, with minimal rebuilding. Such ports are probably the best way to assure cross system compatibility. We have thus far discussed the layered architecture as a methodology for adding features to the le environment provided by the operating system kernel. The stackable ling architecture 4

5 described here may be an attractive way to supply object-oriented serves to the users themselves. An object-oriented layer which could be stacked onto a ling system, perhaps into any system that supports NFS and its internal VFS interface, could provide a useful and widely used set of facilities. Of course, such an approach is not by itself a full solution. Changes elsewhere in the set of operating system services and utilities are needed. As just one example, a basic service so simple as le copy should be enhanced so that it can examine the object denitions of its arguments and take appropriate actions (such as updating companion les). Otherwise, each implementor of a new object type potentially would have to replace the copy function. In todays' systems, there usually isn't even a guaranteed way to take that step. Nevertheless, it appears that much of the work of providing an object-oriented layer in a typical operating system can be modularized as a le system addition. This approach is being pursued at UCLA. 5 Summary We have presented a layered architecture for distributed le systems which has been employed successfully in the implementation of the Ficus Replicated File System at UCLA. While the architecture is neither an object-oriented operating system nor supports an object-oriented ling environment, we believe it is an important step along the way. The layered approach supports code reuse, modular kernel extensibility, typed les, information hiding, specialization/generalization hierarchies, operator overloading, and delegation in ways very much analogous to object-oriented systems. References [1] Mike Accetta, Robert Baron, David Golub, Richard Rashid, Avadis Tevanian, and Michael Young. Mach: A new kernel foundation for UNIX development. In USENIX Conference Proceedings, pages 93{113. USENIX, June [2] AT&T. Design of the virtual le system features for UNIX System V Release 4. Internal memorandum, January [3] Richard G. Guy. Ficus: A Very Large Scale Reliable Distributed File System. Ph.D. dissertation, University of California, Los Angeles, In preparation. [4] Richard G. Guy, John S. Heidemann, Wai Mak, Thomas W. Page, Jr., Gerald J. Popek, and Dieter Rothmeier. Implementation of the Ficus replicated le system. In USENIX Conference Proceedings, pages 63{71. USENIX, June [5] S. R. Kleiman. Vnodes: An architecture for multiple le system types in Sun UNIX. In USENIX Conference Proceedings, pages 238{247. USENIX, June

6 [6] Alan Langerman, Joseph Boykin, Susan LoVerso, and Sashi Mangalat. A highly-parallelized Mach-based vnode lesystem. In USENIX Conference Proceedings, pages 297{312. USENIX, January [7] Thomas W. Page, Jr., Gerald J. Popek, Richard G. Guy, and John S. Heidemann. The Ficus distributed le system: Replication via stackable layers. Technical Report CSD , University of California, Los Angeles, April [8] D. M. Ritchie. A stream input-output system. AT&T Bell Laboratories Technical Journal, 63(8):1897{1910, October [9] David S. H. Rosenthal. Evolving the vnode interface. In USENIX Conference Proceedings. USENIX, June [10] Russel Sandberg, David Goldberg, Steve Kleiman, Dan Walsh, and Bob Lyon. Design and implementation of the Sun Network File System. In USENIX Conference Proceedings, pages 119{130. USENIX, June

Appeared in the Proceedings of the Summer USENIX Conference, June 1991, pages 17-29

Appeared in the Proceedings of the Summer USENIX Conference, June 1991, pages 17-29 Management of Replicated Volume Location Data in the Ficus Replicated File System Thomas W. Page Jr., Richard G. Guy, John S. Heidemann, Gerald J. Popek y, Wai Mak, and Dieter Rothmeier Department of Computer

More information

Appeared in the Proceedings of the Summer USENIX Conference, Anaheim, CA, June 1990, pages 63-71

Appeared in the Proceedings of the Summer USENIX Conference, Anaheim, CA, June 1990, pages 63-71 Implementation of the Ficus Replicated File System Richard G. Guy, John S. Heidemann, Wai Mak, Thomas W. Page Jr., Gerald J. Popek y, and Dieter Rothmeier fguy,johnh,waimak,page,popek,dieterg@cs.ucla.edu

More information

Published in the Proceedings of USENIX COOTS '97 1. Frigate: An Object-Oriented File System for Ordinary Users. Ted H. Kim Gerald J.

Published in the Proceedings of USENIX COOTS '97 1. Frigate: An Object-Oriented File System for Ordinary Users. Ted H. Kim Gerald J. Published in the Proceedings of USENIX COOTS '97 1 Frigate: An Object-Oriented File System for Ordinary Users Ted H. Kim Gerald J. Popek y Department of Computer Science University of California, Los Angeles

More information

FLEX: A Tool for Building Ecient and Flexible Systems. John B. Carter, Bryan Ford, Mike Hibler, Ravindra Kuramkote,

FLEX: A Tool for Building Ecient and Flexible Systems. John B. Carter, Bryan Ford, Mike Hibler, Ravindra Kuramkote, FLEX: A Tool for Building Ecient and Flexible Systems John B. Carter, Bryan Ford, Mike Hibler, Ravindra Kuramkote, Jerey Law, Jay Lepreau, Douglas B. Orr, Leigh Stoller, and Mark Swanson University of

More information

Machine-Independent Virtual Memory Management for Paged June Uniprocessor 1st, 2010and Multiproce 1 / 15

Machine-Independent Virtual Memory Management for Paged June Uniprocessor 1st, 2010and Multiproce 1 / 15 Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures Matthias Lange TU Berlin June 1st, 2010 Machine-Independent Virtual Memory Management for Paged June

More information

Transparent Access to Legacy Data in Java. Olivier Gruber. IBM Almaden Research Center. San Jose, CA Abstract

Transparent Access to Legacy Data in Java. Olivier Gruber. IBM Almaden Research Center. San Jose, CA Abstract Transparent Access to Legacy Data in Java Olivier Gruber IBM Almaden Research Center San Jose, CA 95120 Abstract We propose in this paper an extension to PJava in order to provide a transparent access

More information

Performance of Cache Coherence in Stackable Filing

Performance of Cache Coherence in Stackable Filing To appear, ACM Symposium on Operating Systems Principles, December, 1995. Performance of Cache Coherence in Stackable Filing John Heidemann Gerald Popek University of California, Los Angeles Abstract Stackable

More information

Module 17: Distributed-File Systems

Module 17: Distributed-File Systems Module 17: Distributed-File Systems Background Naming and Transparency Remote File Access Stateful versus Stateless Service File Replication Example Systems Operating System Concepts 17.1 Silberschatz

More information

Virtual Swap Space in SunOS

Virtual Swap Space in SunOS Virtual Swap Space in SunOS Howard Chartock Peter Snyder Sun Microsystems, Inc 2550 Garcia Avenue Mountain View, Ca 94043 howard@suncom peter@suncom ABSTRACT The concept of swap space in SunOS has been

More information

File-System Structure

File-System Structure Chapter 12: File System Implementation File System Structure File System Implementation Directory Implementation Allocation Methods Free-Space Management Efficiency and Performance Recovery Log-Structured

More information

Chapter 11: Implementing File-Systems

Chapter 11: Implementing File-Systems Chapter 11: Implementing File-Systems Chapter 11 File-System Implementation 11.1 File-System Structure 11.2 File-System Implementation 11.3 Directory Implementation 11.4 Allocation Methods 11.5 Free-Space

More information

MICROKERNELS: MACH AND L4

MICROKERNELS: MACH AND L4 1 MICROKERNELS: MACH AND L4 CS6410 Hakim Weatherspoon Introduction to Kernels Different Types of Kernel Designs Monolithic kernel Microkernel Hybrid Kernel Exokernel Virtual Machines? Monolithic Kernels

More information

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8

More information

University of California. Stackable Layers: An Architecture for File System Development

University of California. Stackable Layers: An Architecture for File System Development University of California Los Angeles Stackable Layers: An Architecture for File System Development A thesis submitted in partial satisfaction of the requirements for the degree Master of Science in Computer

More information

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems On Object Orientation as a Paradigm for General Purpose Distributed Operating Systems Vinny Cahill, Sean Baker, Brendan Tangney, Chris Horn and Neville Harris Distributed Systems Group, Dept. of Computer

More information

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL Jun Sun, Yasushi Shinjo and Kozo Itano Institute of Information Sciences and Electronics University of Tsukuba Tsukuba,

More information

2 Application Support via Proxies Onion Routing can be used with applications that are proxy-aware, as well as several non-proxy-aware applications, w

2 Application Support via Proxies Onion Routing can be used with applications that are proxy-aware, as well as several non-proxy-aware applications, w Onion Routing for Anonymous and Private Internet Connections David Goldschlag Michael Reed y Paul Syverson y January 28, 1999 1 Introduction Preserving privacy means not only hiding the content of messages,

More information

Extensible Realm Interfaces 1

Extensible Realm Interfaces 1 Extensible Realm Interfaces 1 UT-ADAGE-94-01 Don Batory Department of Computer Sciences The University of Texas Austin, Texas 78712 Abstract The synthesis of avionics software depends critically on components

More information

Distributed File Systems. Distributed Systems IT332

Distributed File Systems. Distributed Systems IT332 Distributed File Systems Distributed Systems IT332 2 Outline Introduction Network File System (NFS) 3 File System Basics A file is a named collection of logically related data A file system Provides a

More information

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs.

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs. and easily tailor it for use within the multicast system. After expressing an initial application design in terms of MIL specications, the application code and speci- cations may be compiled and executed.

More information

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture) EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture) Dept. of Computer Science & Engineering Chentao Wu wuct@cs.sjtu.edu.cn Download lectures ftp://public.sjtu.edu.cn User:

More information

Chapter 11: File System Implementation

Chapter 11: File System Implementation Chapter 11: File System Implementation Chapter 11: File System Implementation File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management Efficiency

More information

Chapter 11: File System Implementation

Chapter 11: File System Implementation Chapter 11: File System Implementation Chapter 11: File System Implementation File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management Efficiency

More information

Implementing remote fork() with checkpoint/restart

Implementing remote fork() with checkpoint/restart Implementing remote fork() with checkpoint/restart Jonathan M Smith John Ioannidis Computer Science Department Columbia University New York, NY 10027 Abstract We describe a method for implementing checkpoints

More information

Module 17: Distributed-File Systems

Module 17: Distributed-File Systems Module 17: Distributed-File Systems Background Naming and Transparency Remote File Access Stateful versus Stateless Service File Replication Example Systems 17.1 Background Distributed file system (DFS)

More information

Chapter 11: Implementing File Systems

Chapter 11: Implementing File Systems Chapter 11: Implementing File-Systems, Silberschatz, Galvin and Gagne 2009 Chapter 11: Implementing File Systems File-System Structure File-System Implementation ti Directory Implementation Allocation

More information

S3FS in the wide area Alvaro Llanos E M.Eng Candidate Cornell University Spring/2009

S3FS in the wide area Alvaro Llanos E M.Eng Candidate Cornell University Spring/2009 S3FS in the wide area Alvaro Llanos E M.Eng Candidate Cornell University Spring/2009 ABSTRACT S3FS[1] is an interface implementation using FUSE and Amazon Storage Services in order to provide a reliable

More information

Distributed Computing Environment (DCE)

Distributed Computing Environment (DCE) Distributed Computing Environment (DCE) Distributed Computing means computing that involves the cooperation of two or more machines communicating over a network as depicted in Fig-1. The machines participating

More information

Notes on the Implementation of a Remote Fork Mechanism

Notes on the Implementation of a Remote Fork Mechanism Notes on the Implementation of a Remote Fork Mechanism Jonathan M. Smith John Ioannidis Computer Science Department Columbia University New York, NY 10027 ABSTRACT We describe a method for implementing

More information

Chapter 11: Implementing File Systems

Chapter 11: Implementing File Systems Chapter 11: Implementing File Systems Chapter 11: File System Implementation File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management Efficiency

More information

Chapter 12 File-System Implementation

Chapter 12 File-System Implementation Chapter 12 File-System Implementation 1 Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management Efficiency and Performance Recovery Log-Structured

More information

Coping with Conflicts in an Optimistically Replicated File System

Coping with Conflicts in an Optimistically Replicated File System Coping with Conflicts in an Optimistically Replicated File System Puneet Kumar School of Computer Science Carnegie Mellon University 1. Introduction Coda is a scalable distributed Unix file system that

More information

AN OVERVIEW OF DISTRIBUTED FILE SYSTEM Aditi Khazanchi, Akshay Kanwar, Lovenish Saluja

AN OVERVIEW OF DISTRIBUTED FILE SYSTEM Aditi Khazanchi, Akshay Kanwar, Lovenish Saluja www.ijecs.in International Journal Of Engineering And Computer Science ISSN:2319-7242 Volume 2 Issue 10 October, 2013 Page No. 2958-2965 Abstract AN OVERVIEW OF DISTRIBUTED FILE SYSTEM Aditi Khazanchi,

More information

Category: Informational October 1996

Category: Informational October 1996 Network Working Group B. Callaghan Request for Comments: 2055 Sun Microsystems, Inc. Category: Informational October 1996 Status of this Memo WebNFS Server Specification This memo provides information

More information

DISTRIBUTED FILE SYSTEMS & NFS

DISTRIBUTED FILE SYSTEMS & NFS DISTRIBUTED FILE SYSTEMS & NFS Dr. Yingwu Zhu File Service Types in Client/Server File service a specification of what the file system offers to clients File server The implementation of a file service

More information

The modularity requirement

The modularity requirement The modularity requirement The obvious complexity of an OS and the inherent difficulty of its design lead to quite a few problems: an OS is often not completed on time; It often comes with quite a few

More information

tmpfs: A Virtual Memory File System

tmpfs: A Virtual Memory File System tmpfs: A Virtual Memory File System Peter Snyder Sun Microsystems Inc. 2550 Garcia Avenue Mountain View, CA 94043 ABSTRACT This paper describes tmpfs, a memory-based file system that uses resources and

More information

Application. CoCheck Overlay Library. MPE Library Checkpointing Library. OS Library. Operating System

Application. CoCheck Overlay Library. MPE Library Checkpointing Library. OS Library. Operating System Managing Checkpoints for Parallel Programs Jim Pruyne and Miron Livny Department of Computer Sciences University of Wisconsin{Madison fpruyne, mirong@cs.wisc.edu Abstract Checkpointing is a valuable tool

More information

Dewayne E. Perry. Abstract. An important ingredient in meeting today's market demands

Dewayne E. Perry. Abstract. An important ingredient in meeting today's market demands Maintaining Consistent, Minimal Congurations Dewayne E. Perry Software Production Research, Bell Laboratories 600 Mountain Avenue, Murray Hill, NJ 07974 USA dep@research.bell-labs.com Abstract. An important

More information

PerlDSM: A Distributed Shared Memory System for Perl

PerlDSM: A Distributed Shared Memory System for Perl PerlDSM: A Distributed Shared Memory System for Perl Norman Matloff University of California, Davis matloff@cs.ucdavis.edu Abstract A suite of Perl utilities is presented for enabling Perl language programming

More information

OPERATING SYSTEM. Chapter 12: File System Implementation

OPERATING SYSTEM. Chapter 12: File System Implementation OPERATING SYSTEM Chapter 12: File System Implementation Chapter 12: File System Implementation File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management

More information

Extending The Mach External Pager Interface To Accommodate User-Level Page Replacement Policies. Dylan McNamee and Katherine Armstrong

Extending The Mach External Pager Interface To Accommodate User-Level Page Replacement Policies. Dylan McNamee and Katherine Armstrong Extending The Mach External Pager Interface To Accommodate User-Level Page Replacement Policies Dylan McNamee and Katherine Armstrong Department of Computer Science and Engineering University of Washington

More information

Appendix 4-B. Case study of the Network File System (NFS)

Appendix 4-B. Case study of the Network File System (NFS) Appendix 4-B. Case study of the Network File System (NFS) The network file system (NFS), designed by Sun Microsystems, nc. in the 980s, is a clientlservice application that provides shared file storage

More information

Filesystems Lecture 13

Filesystems Lecture 13 Filesystems Lecture 13 Credit: Uses some slides by Jehan-Francois Paris, Mark Claypool and Jeff Chase DESIGN AND IMPLEMENTATION OF THE SUN NETWORK FILESYSTEM R. Sandberg, D. Goldberg S. Kleinman, D. Walsh,

More information

Managing Agent Platforms with AgentSNMP

Managing Agent Platforms with AgentSNMP Managing Agent Platforms with AgentSNMP Brian D. Remick, Robert R. Kessler University of Utah, 50 S. Campus Drive, Salt Lake City, UT 84104 { remick, kessler } @cs.utah.edu Abstract. Management of agent

More information

Distributed File Systems

Distributed File Systems Distributed File Systems Today l Basic distributed file systems l Two classical examples Next time l Naming things xkdc Distributed File Systems " A DFS supports network-wide sharing of files and devices

More information

Distributed Systems. Definitions. Why Build Distributed Systems? Operating Systems - Overview. Operating Systems - Overview

Distributed Systems. Definitions. Why Build Distributed Systems? Operating Systems - Overview. Operating Systems - Overview Distributed Systems Joseph Spring School of Computer Science Distributed Systems and Security Areas for Discussion Definitions Operating Systems Overview Challenges Heterogeneity Limitations and 2 Definitions

More information

Distributed File Systems. CS432: Distributed Systems Spring 2017

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

More information

Opal. Robert Grimm New York University

Opal. Robert Grimm New York University Opal Robert Grimm New York University The Three Questions What is the problem? What is new or different? What are the contributions and limitations? The Three Questions What is the problem? Applications

More information

In his paper of 1972, Parnas proposed the following problem [42]:

In his paper of 1972, Parnas proposed the following problem [42]: another part of its interface. (In fact, Unix pipe and filter systems do this, the file system playing the role of the repository and initialization switches playing the role of control.) Another example

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

A Comparison of Two Distributed Systems: Amoeba & Sprite. By: Fred Douglis, John K. Ousterhout, M. Frans Kaashock, Andrew Tanenbaum Dec.

A Comparison of Two Distributed Systems: Amoeba & Sprite. By: Fred Douglis, John K. Ousterhout, M. Frans Kaashock, Andrew Tanenbaum Dec. A Comparison of Two Distributed Systems: Amoeba & Sprite By: Fred Douglis, John K. Ousterhout, M. Frans Kaashock, Andrew Tanenbaum Dec. 1991 Introduction shift from time-sharing to multiple processors

More information

Mario Tokoro 3. Keio University Hiyoshi, Yokohama 223 JAPAN. Abstract

Mario Tokoro 3. Keio University Hiyoshi, Yokohama 223 JAPAN. Abstract Toward a New Computing Model/Methodology for Open Distributed Environment Mario Tokoro 3 Department of Computer Science Keio University 3-14-1 Hiyoshi, Yokohama 223 JAPAN Tel: +81-44-63-1926 Telefax: +81-44-63-3421

More information

Parametric and provisioning approaches are again obviously useful for various

Parametric and provisioning approaches are again obviously useful for various Parametric and provisioning approaches are again obviously useful for various kinds of generic descriptions and provide the most direct means of deriving their product architecture from the product line

More information

Advanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs

Advanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs Object Oriented Database Chapter 13 1 Object DBMSs Underlying concepts: Freely sharing data across processing routines creates unacceptable data dependencies All software should be constructed out of standard,

More information

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream Agent Roles in Snapshot Assembly Delbert Hart Dept. of Computer Science Washington University in St. Louis St. Louis, MO 63130 hart@cs.wustl.edu Eileen Kraemer Dept. of Computer Science University of Georgia

More information

Class Inheritance and OLE Integration (Formerly the Common Object Model)

Class Inheritance and OLE Integration (Formerly the Common Object Model) TM Class Inheritance and OLE Integration (Formerly the Common Object Model) Technical Overview Shawn Woods, Mike Vogl, and John Parodi August 1995 Digital Equipment Corporation Introduction This paper

More information

Frequently asked questions from the previous class survey

Frequently asked questions from the previous class survey CS 455: INTRODUCTION TO DISTRIBUTED SYSTEMS [FILE SYSTEMS] Shrideep Pallickara Computer Science Colorado State University L27.1 Frequently asked questions from the previous class survey How many choices

More information

Storage System. Distributor. Network. Drive. Drive. Storage System. Controller. Controller. Disk. Disk

Storage System. Distributor. Network. Drive. Drive. Storage System. Controller. Controller. Disk. Disk HRaid: a Flexible Storage-system Simulator Toni Cortes Jesus Labarta Universitat Politecnica de Catalunya - Barcelona ftoni, jesusg@ac.upc.es - http://www.ac.upc.es/hpc Abstract Clusters of workstations

More information

Khoral Research, Inc. Khoros is a powerful, integrated system which allows users to perform a variety

Khoral Research, Inc. Khoros is a powerful, integrated system which allows users to perform a variety Data Parallel Programming with the Khoros Data Services Library Steve Kubica, Thomas Robey, Chris Moorman Khoral Research, Inc. 6200 Indian School Rd. NE Suite 200 Albuquerque, NM 87110 USA E-mail: info@khoral.com

More information

CHAPTER 1 Fundamentals of Distributed System. Issues in designing Distributed System

CHAPTER 1 Fundamentals of Distributed System. Issues in designing Distributed System CHAPTER 1 Fundamentals of Distributed System Introduction Distributed Computing Models Software Concepts Issues in designing Distributed System Client Server Model 1 What is a Distributed System? Tanenbaum

More information

Overview of Unix / Linux operating systems

Overview of Unix / Linux operating systems Overview of Unix / Linux operating systems Mohammad S. Hasan Staffordshire University, UK Overview of Unix / Linux operating systems Slide 1 Lecture Outline History and development of Unix / Linux Early

More information

Improving I/O Bandwidth With Cray DVS Client-Side Caching

Improving I/O Bandwidth With Cray DVS Client-Side Caching Improving I/O Bandwidth With Cray DVS Client-Side Caching Bryce Hicks Cray Inc. Bloomington, MN USA bryceh@cray.com Abstract Cray s Data Virtualization Service, DVS, is an I/O forwarder providing access

More information

A Stackable File System Interface For Linux

A Stackable File System Interface For Linux A Stackable File System Interface For Linux Erez Zadok and Ion Badulescu Computer Science Department, Columbia University {ezk,ion}@cs.columbia.edu Abstract Linux is a popular operating system that is

More information

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Diego Sevilla 1, José M. García 1, Antonio Gómez 2 1 Department of Computer Engineering 2 Department of Information and

More information

Background. 20: Distributed File Systems. DFS Structure. Naming and Transparency. Naming Structures. Naming Schemes Three Main Approaches

Background. 20: Distributed File Systems. DFS Structure. Naming and Transparency. Naming Structures. Naming Schemes Three Main Approaches Background 20: Distributed File Systems Last Modified: 12/4/2002 9:26:20 PM Distributed file system (DFS) a distributed implementation of the classical time-sharing model of a file system, where multiple

More information

is developed which describe the mean values of various system parameters. These equations have circular dependencies and must be solved iteratively. T

is developed which describe the mean values of various system parameters. These equations have circular dependencies and must be solved iteratively. T A Mean Value Analysis Multiprocessor Model Incorporating Superscalar Processors and Latency Tolerating Techniques 1 David H. Albonesi Israel Koren Department of Electrical and Computer Engineering University

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System Donald S. Miller Department of Computer Science and Engineering Arizona State University Tempe, AZ, USA Alan C.

More information

How do modules communicate? Enforcing modularity. Modularity: client-server organization. Tradeoffs of enforcing modularity

How do modules communicate? Enforcing modularity. Modularity: client-server organization. Tradeoffs of enforcing modularity How do modules communicate? Enforcing modularity Within the same address space and protection domain local procedure calls Across protection domain system calls Over a connection client/server programming

More information

A Report on RMI and RPC Submitted by Sudharshan Reddy B

A Report on RMI and RPC Submitted by Sudharshan Reddy B A Report on RMI and RPC Submitted by Sudharshan Reddy B Abstract: This report mainly explains the RMI and RPC technologies. In the first part of the paper the RMI technology is briefly explained and in

More information

2 Background: Service Oriented Network Architectures

2 Background: Service Oriented Network Architectures 2 Background: Service Oriented Network Architectures Most of the issues in the Internet arise because of inflexibility and rigidness attributes of the network architecture, which is built upon a protocol

More information

殷亚凤. Processes. Distributed Systems [3]

殷亚凤. Processes. Distributed Systems [3] Processes Distributed Systems [3] 殷亚凤 Email: yafeng@nju.edu.cn Homepage: http://cs.nju.edu.cn/yafeng/ Room 301, Building of Computer Science and Technology Review Architectural Styles: Layered style, Object-based,

More information

Software Component Relationships. Stephen H. Edwards. Department of Computer Science. Virginia Polytechnic Institute and State University

Software Component Relationships. Stephen H. Edwards. Department of Computer Science. Virginia Polytechnic Institute and State University Software Component Relationships Stephen H. Edwards Department of Computer Science Virginia Polytechnic Institute and State University 660 McBryde Hall Blacksburg, VA 24061-0106 Tel: (540)-231-7537 Email:

More information

Technical Briefing. The TAOS Operating System: An introduction. October 1994

Technical Briefing. The TAOS Operating System: An introduction. October 1994 Technical Briefing The TAOS Operating System: An introduction October 1994 Disclaimer: Provided for information only. This does not imply Acorn has any intention or contract to use or sell any products

More information

NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or

NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or other reproductions of copyrighted material. Any copying

More information

PATTERNS AND SOFTWARE DESIGN

PATTERNS AND SOFTWARE DESIGN This article first appeared in Dr. Dobb s Sourcebook, March/April, 1995. Copyright 1995, Dr. Dobb's Journal. PATTERNS AND SOFTWARE DESIGN Patterns for Reusable Object-Oriented Software Richard Helm and

More information

Example File Systems Using Replication CS 188 Distributed Systems February 10, 2015

Example File Systems Using Replication CS 188 Distributed Systems February 10, 2015 Example File Systems Using Replication CS 188 Distributed Systems February 10, 2015 Page 1 Example Replicated File Systems NFS Coda Ficus Page 2 NFS Originally NFS did not have any replication capability

More information

An Introduction to GPFS

An Introduction to GPFS IBM High Performance Computing July 2006 An Introduction to GPFS gpfsintro072506.doc Page 2 Contents Overview 2 What is GPFS? 3 The file system 3 Application interfaces 4 Performance and scalability 4

More information

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Operating systems are those

More information

Technische Universitat Munchen. Institut fur Informatik. D Munchen.

Technische Universitat Munchen. Institut fur Informatik. D Munchen. Developing Applications for Multicomputer Systems on Workstation Clusters Georg Stellner, Arndt Bode, Stefan Lamberts and Thomas Ludwig? Technische Universitat Munchen Institut fur Informatik Lehrstuhl

More information

Weblogs In Libraries: Opportunities and Challenges

Weblogs In Libraries: Opportunities and Challenges Weblogs In Libraries: Opportunities and Challenges Adam Mathes Reference Sources and Services - LIS404A Graduate School of Library and Information Science University of Illinois Urbana-Champaign April

More information

srfs kernel module Nir Tzachar September 25, 2003

srfs kernel module Nir Tzachar September 25, 2003 srfs kernel module Nir Tzachar September 25, 2003 1 Introduction 1.1 A distributed file system A distributed file system should appear to the user as a traditional file system. The user can create files,

More information

Lightweight Remote Procedure Call. Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat

Lightweight Remote Procedure Call. Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat Outline Introduction RPC refresher Monolithic OS vs. micro-kernel

More information

Chapter 12 Distributed File Systems. Copyright 2015 Prof. Amr El-Kadi

Chapter 12 Distributed File Systems. Copyright 2015 Prof. Amr El-Kadi Chapter 12 Distributed File Systems Copyright 2015 Prof. Amr El-Kadi Outline Introduction File Service Architecture Sun Network File System Recent Advances Copyright 2015 Prof. Amr El-Kadi 2 Introduction

More information

Networking Performance for Microkernels. Chris Maeda. Carnegie Mellon University. Pittsburgh, PA March 17, 1992

Networking Performance for Microkernels. Chris Maeda. Carnegie Mellon University. Pittsburgh, PA March 17, 1992 Networking Performance for Microkernels Chris Maeda Brian N. Bershad School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 March 17, 1992 Abstract Performance measurements of network

More information

Chapter 1: Distributed Information Systems

Chapter 1: Distributed Information Systems Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier

More information

Building a Single Distributed File System from Many NFS Servers -or- The Poor-Man s Cluster Server

Building a Single Distributed File System from Many NFS Servers -or- The Poor-Man s Cluster Server Building a Single Distributed File System from Many NFS Servers -or- The Poor-Man s Cluster Server Dan Muntz Hewlett-Packard Labs 1501 Page Mill Rd, Palo Alto CA 94304, USA dmuntz@hpl.hp.com Tel: +1-650-857-3561

More information

Chapter 11: Implementing File Systems

Chapter 11: Implementing File Systems Chapter 11: Implementing File Systems Operating System Concepts 99h Edition DM510-14 Chapter 11: Implementing File Systems File-System Structure File-System Implementation Directory Implementation Allocation

More information

File-System Interface

File-System Interface File-System Interface Chapter 10: File-System Interface File Concept Access Methods Directory Structure File-System Mounting File Sharing Protection Objectives To explain the function of file systems To

More information

On Checkpoint Latency. Nitin H. Vaidya. In the past, a large number of researchers have analyzed. the checkpointing and rollback recovery scheme

On Checkpoint Latency. Nitin H. Vaidya. In the past, a large number of researchers have analyzed. the checkpointing and rollback recovery scheme On Checkpoint Latency Nitin H. Vaidya Department of Computer Science Texas A&M University College Station, TX 77843-3112 E-mail: vaidya@cs.tamu.edu Web: http://www.cs.tamu.edu/faculty/vaidya/ Abstract

More information

An Analysis of Trace Data for Predictive File Caching in Mobile Computing

An Analysis of Trace Data for Predictive File Caching in Mobile Computing To appear, 1994 Summer Usenix Conference. An Analysis of Trace Data for Predictive File Caching in Mobile Computing Geoffrey H. Kuenning, Gerald J. Popek, Peter L. Reiher University of California, Los

More information

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t Data Reduction - an Adaptation Technique for Mobile Environments A. Heuer, A. Lubinski Computer Science Dept., University of Rostock, Germany Keywords. Reduction. Mobile Database Systems, Data Abstract.

More information

Operating Systems 2010/2011

Operating Systems 2010/2011 Operating Systems 2010/2011 File Systems part 2 (ch11, ch17) Shudong Chen 1 Recap Tasks, requirements for filesystems Two views: User view File type / attribute / access modes Directory structure OS designers

More information

A Revocable Backup System

A Revocable Backup System The following paper was originally published in the Proceedings of the Sixth USENIX UNIX Security Symposium San Jose, California, July 1996. A Revocable Backup System Dan Boneh and Richard Lipton Princeton

More information

Algorithms Implementing Distributed Shared Memory. Michael Stumm and Songnian Zhou. University of Toronto. Toronto, Canada M5S 1A4

Algorithms Implementing Distributed Shared Memory. Michael Stumm and Songnian Zhou. University of Toronto. Toronto, Canada M5S 1A4 Algorithms Implementing Distributed Shared Memory Michael Stumm and Songnian Zhou University of Toronto Toronto, Canada M5S 1A4 Email: stumm@csri.toronto.edu Abstract A critical issue in the design of

More information

Chapter 12: File System Implementation

Chapter 12: File System Implementation Chapter 12: File System Implementation Chapter 12: File System Implementation File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management Efficiency

More information

File Concept Access Methods Directory and Disk Structure File-System Mounting File Sharing Protection

File Concept Access Methods Directory and Disk Structure File-System Mounting File Sharing Protection File Concept Access Methods Directory and Disk Structure File-System Mounting File Sharing Protection File Concepts File Attributes File Operations File Types Internal File Structure A uniform logical

More information

Client Server & Distributed System. A Basic Introduction

Client Server & Distributed System. A Basic Introduction Client Server & Distributed System A Basic Introduction 1 Client Server Architecture A network architecture in which each computer or process on the network is either a client or a server. Source: http://webopedia.lycos.com

More information

Computer System Overview

Computer System Overview Computer System Overview Introduction A computer system consists of hardware system programs application programs 2 Operating System Provides a set of services to system users (collection of service programs)

More information