Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Norman C. Hutchinson is active.

Publication


Featured researches published by Norman C. Hutchinson.


IEEE Transactions on Software Engineering | 1987

Distrbution and Abstract Types in Emerald

Andrew P. Black; Norman C. Hutchinson; Eric Jul; Henry M. Levy; Larry Carter

Emerald is an object-based language for programming distributed subsystems and applications. Its novel features include 1) a single object model that is used both for programming in the small and in the large, 2) support for abstract types, and 3) an explicit notion of object location and mobility. This paper outlines the goals of Em-erald, relates Emerald to previous work, and describes its type system and distribution support. We are currently constructing a prototype implementation of Emerald.


symposium on operating systems principles | 1999

Deciding when to forget in the Elephant file system

Douglas S. Santry; Michael J. Feeley; Norman C. Hutchinson; Alistair Veitch; Ross W. Carton; Jacob Ofir

Modern file systems associate the deletion of a file with the immediate release of storage, and file writes with the irrevocable change of file contents. We argue that this behavior is a relic of the past, when disk storage was a scarce resource. Today, large cheap disks make it possible for the file system to protect valuable data from accidental delete or overwrite.This paper describes the design, implementation, and performance of the Elephant file system, which automatically retains all important versions of user files. Users name previous file versions by combining a traditional pathname with a time when the desired version of a file or directory existed. Storage in Elephant is managed by the system using file-grain user-specified retention policies. This approach contrasts with checkpointing file systems such as Plan-9, AFS, and WAFL that periodically generate efficient checkpoints of entire file systems and thus restrict retention to be guided by a single policy for all files within that file system.Elephant is implemented as a new Virtual File System in the FreeBSD kernel.


conference on object oriented programming systems languages and applications | 1986

Object structure in the Emerald system

Andrew P. Black; Norman C. Hutchinson; Eric Jul; Henry M. Levy

Emerald is an object-based language for the construction of distributed applications. The principal features of Emerald include a uniform object model appropriate for programming both private local objects and shared remote objects, and a type system that permits multiple user-defined and compiler-defined implementations. Emerald objects are fully mobile and can move from node to node within the network, even during an invocation. This paper discusses the structure, programming, and implementation of Emerald objects, and Emeralds use of abstract types.


Software - Practice and Experience | 1990

Emerald: a general-purpose programming language

Rajendra K. Raj; Ewan D. Tempero; Henry M. Levy; Andrew P. Black; Norman C. Hutchinson; Eric Jul

Emerald is a general‐purpose language with aspects of traditional object‐oriented languages, such as Smalltalk, and abstract data type languages, such as Modula‐2 and Ada. It is strongly typed with a non‐traditional object model and type system that emphasize abstract types, allow separation of typing and implementation, and provide the flexibility of polymorphism and subtyping with compile‐time checking. This paper describes the Emerald language and its programming methodology. We give examples that demonstrate Emeralds features, and compare and contrast the Emerald approach to programming with the approaches used in other similar languages.


symposium on operating systems principles | 1989

RPC in the x-Kernel: evaluating new design techniques

Larry L. Peterson; Norman C. Hutchinson; Sean W. O'Malley; M. Abbott

This paper reports our experiences implementing remote procedure call (RPC) protocols in the x-kernel. This exercise is interesting because the RPC protocols exploit two novel design techniques: virtual protocols and layered protocols. These techniques are made possible because the x-kernel provides an object-oriented infrastructure that supports three significant features: a uniform interface to all protocols, a late binding between protocol layers, and a small overhead for invoking any given protocol layer. For each design technique, the paper motivates the technique with a concrete example, describes how it is applied to the implementation of RPC protocols, and presents the results of experiments designed to evaluate the technique.


IEEE Computer | 1990

The x-kernel: a platform for accessing internet resources

Larry L. Peterson; Norman C. Hutchinson; Sean W. O'Malley; Herman C. Rao

x-kernel is an experimental operating system for personal workstations that allows uniform access to resources throughout a nationwide internet: an interconnection of networks similar to the TCP/IP internet. This network is also called the National Research and Education Network (NREN). The x-kernel supports a library of protocols, and it accesses different resources with different protocol combinations. In addition, two user-level systems that give users an integrated and uniform interface to resources have been built on top of the x-kernel. These two systems-a file system and a command interpreter-hide differences among the underlying protocols.<<ETX>>


symposium on operating systems principles | 1987

Fine-grained mobility in the emerald system

Eric Jul; Henry M. Levy; Norman C. Hutchinson; Andrew P. Black

The Emerald compiler analyzes object definitions and attempts to produce efficient implementations commensurate with the way in which objects are used. For example, an object that moves around the network will require a very general remote procedure call implementation; however, an object that is completely internal to that mobile object can be implemented using direct memory addressing and inline code or procedure calls. We wanted to achieve performance competitive with standard procedural languages in the local case and standard remote procedure call systems in the remote case. These goals are not trivial in a location-independent object-based environment. To meet them, we relied heavily on an appropriate choice of language semantics, a tight coupling between the compiler and run-time kernel, and careful attention to implementation. As an example of Emeralds local performance, Table 1 shows execution times for several local Emerald operations executed on a Micro VAX II1. The “resident global invocation” time is for a global object (i.e., one that can move around the network) when invoked by another object resident on the same node. By comparison, other object-based distributed systems are typically over 100 times slower for local invocations of their most general objects [6, 1]. The Emerald language uses call-by-object-reference parameter passing semantics for all invocations, local or remote. While call-by-object-reference is the natural semantics for object-based systems, it presents a potential performance problem in a distributed environment. When a remotely invoked object attempts to access its arguments, those accesses will typically require remote invocations. Because Emerald objects are mobile, it may be possible to avoid some of these remote references by moving argument objects to the site of a remote invocation. From this table we can compute the benefit of call-by-move for a simple argument object. For this simple argument object, the additional cost of call-by-move was 2 milliseconds while call-by-visit cost 6.4 milliseconds. These are computed by subtracting the time for a remote invocation with an argument reference that is local to the destination. The call-by-visit time includes sending the invocation message and the argument object, performing the remote invocation (which then invokes its argument), and returning the argument object with the reply. Had the argument been a reference to a remote object (i.e., had the object not been moved), the incremental cost would have been 30.8 milliseconds. These measurements are somewhat of a lower bound because the cost of moving an object depends on the complexity of the object and the types of objects it names. Emerald currently executes on a small network of MicroVAX IIs and has recently been ported to the SUN 32. We have concentrated on implementing fine-grained mobility in Emerald while minimizing its impact on local performance. This has presented significant problems; however, through the use of language support and a tightly-coupled compiler and kernel, we believe that our design has been successful in meeting both its conceptual and performance goals.


Communications of The ACM | 1987

Heterogeneous computing environments: report on the ACM SIGOPS workshop on accommodating heterogeneity

David Notkin; Norman C. Hutchinson; Jan Sanislo; Michael F. Schwartz

The ACM SIGOPS Workshop on Accommodating Heterogeneity was conducted in December 1985 in Eastbound, Wash., as a forum for an international group of fifty researchers to discuss the technical issues surrounding heterogeneous computing environments.


ad hoc networks | 2004

Realistic Mobility for Mobile Ad Hoc Network Simulation

Michael J. Feeley; Norman C. Hutchinson; Suprio Ray

In order to conduct meaningful performance analysis of routing algorithms for Mobile Ad Hoc Networks (MANETs), it is essential that the mobility model on which the simulation is based reflects realistic mobility behavior. However, current mobility models for MANET simulation are either unrealistic or are tailor-made for particular scenarios. We introduce GEMM, a tool for generating mobility models that are both realistic and heterogeneous. These models are capable of simulating complex and dynamic mobility patterns representative of real-world situations. We present simulation results using AODV, OLSR and ZRP, three MANET routing algorithms and show that mobility-model changes have a significant impact on their performance.


acm multimedia | 1997

An evaluation of VBR disk admission algorithms for continuous media file servers

Dwight J. Makaroff; Gerald W. Neufeld; Norman C. Hutchinson

In this paper, we address the problem of choosing a disk admission algorithm for continuous media streams where each stream may have a different bit rate, and more importantly, where the bit rate within a single stream may vary considerably. We evaluate several different Variable Bit Rate (VBR) disk admission control algorithms for continuous media. An algorithm which accepts too few streams under-utilizes the server resources, while an algorithm which accepts too many streams over-utilizes the resources resulting in inadequate service (i.e. missing or delayed data) to the clients. The evaluation process is based on a representative set of video streams encoded in MJPEG. We conclude that one particular algorithm, the VBR simulation algorithm, performs the best among realizable algorithms in terms of system utilization and delivery guarantees and performs close to an optimal algorithm,

Collaboration


Dive into the Norman C. Hutchinson's collaboration.

Top Co-Authors

Avatar

Michael J. Feeley

University of British Columbia

View shared research outputs
Top Co-Authors

Avatar

Andrew P. Black

Portland State University

View shared research outputs
Top Co-Authors

Avatar

Henry M. Levy

University of Washington

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Andrew Warfield

University of British Columbia

View shared research outputs
Top Co-Authors

Avatar

Eric Jul

University of Copenhagen

View shared research outputs
Top Co-Authors

Avatar

Gerald W. Neufeld

University of British Columbia

View shared research outputs
Top Co-Authors

Avatar

Terry Coatta

University of British Columbia

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge