Network


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

Hotspot


Dive into the research topics where Andrew Birrell is active.

Publication


Featured researches published by Andrew Birrell.


european conference on computer systems | 2007

Dryad: distributed data-parallel programs from sequential building blocks

Michael Isard; Mihai Budiu; Yuan Yu; Andrew Birrell; Dennis Fetterly

Dryad is a general-purpose distributed execution engine for coarse-grain data-parallel applications. A Dryad application combines computational vertices with communication channels to form a dataflow graph. Dryad runs the application by executing the vertices of this graph on a set of available computers, communicating as appropriate through flies, TCP pipes, and shared-memory FIFOs.n The vertices provided by the application developer are quite simple and are usually written as sequential programs with no thread creation or locking. Concurrency arises from Dryad scheduling vertices to run simultaneously on multiple computers, or on multiple CPU cores within a computer. The application can discover the size and placement of data at run time, and modify the graph as the computation progresses to make efficient use of the available resources.n Dryad is designed to scale from powerful multi-core single computers, through small clusters of computers, to data centers with thousands of computers. The Dryad execution engine handles all the difficult problems of creating a large distributed, concurrent application: scheduling the use of computers and their CPUs, recovering from communication or computer failures, and transporting data between vertices.


Operating Systems Review | 2007

A design for high-performance flash disks

Andrew Birrell; Michael Isard; Chuck Thacker; Ted Wobber

Most commodity flash disks exhibit very poor performance when presented with writes that are not sequentially ordered. We argue that performance can be significantly improved through the addition of sufficient RAM to hold data structures describing a fine-grain mapping between disk logical blocks and physical flash addresses. We present a design that accomplishes this.


symposium on principles of programming languages | 2008

Semantics of transactional memory and automatic mutual exclusion

Martín Abadi; Andrew Birrell; Tim Harris; Michael Isard

Software Transactional Memory (STM) is an attractive basis for the development of language features for concurrent programming. However, the semantics of these features can be delicate and problematic. In this paper we explore the tradeoffs between semantic simplicity, the viability of efficient implementation strategies, and the flexibilityof language constructs. Specifically, we develop semantics and type systems for the constructs of the Automatic Mutual Exclusion (AME) programming model; our results apply also to other constructs, such as atomic blocks. With this semantics as a point of reference, we study several implementation strategies. We model STM systems that use in-place update, optimistic concurrency, lazy conflict detection, and roll-back. These strategies are correct only under non-trivial assumptions that we identify and analyze. One important source of errors is that some efficient implementations create dangerous zombie computations where a transaction keeps running after experiencing a conflict; the assumptions confine the effects of these computations.


Software—Practice & Experience - Special issue on object-oriented programming and technology archive | 1995

Network objects

Andrew Birrell; Greg Nelson; Susan S. Owicki; Edward P. Wobber

A network object is an object whose methods can be invoked over a network. The Modula‐3 network objects system is novel for its overall simplicity. It provides distributed type safety through the narrowest surrogate rule, which allows programmers to export new versions of distributed services as subtypes of previous versions. The design and implementation of the system is described, including a thorough description of realistic marshaling algorithms for network objects, precise informal specifications of the major system interfaces, lessons learned from using the system, and performance results.


Annual Asian Computing Science Conference | 2003

Bankable Postage for Network Services

Martín Abadi; Andrew Birrell; Michael Burrows; Frank Dabek; Ted Wobber

We describe a new network service, the ticket server. This service provides tickets that a client can attach to a request for a network service (such as sending email or asking for a stock quote). The recipient of such a request (such as the email recipient or the stockbroker) can use the ticker server to verify that the ticket is valid and that the ticket hasnt been used before. Clients can acquire tickets ahead of time, independently of the particular network service request. Clients can maintain their stock of tickets either on their own storage, or as a balance recorded by the ticket server. Recipients of a request can tell the ticket server to refund the attached ticket to the original client, thus incrementing the clients balance at the ticket server. For example, an email recipient might do this if the email wasnt spam. This paper describes the functions of the ticket server, defines a cryptographic protocol for the ticket servers operations, and outlines an efficient implementation for the ticket server.


international world wide web conferences | 1998

Secure Web tunneling

Martín Abadi; Andrew Birrell; Raymie Stata; Edward P. Wobber

The boundary of an organization does not always coincide with its firewall. A member of an organization that is outside the firewall may wish to access internal Web services with the same ease and security that are common within the firewall. At the same time, the firewall should still be able to perform adequate access control, logging, and auditing. In this paper, we describe a new technique for secure Web tunneling, which permits the desired outside access to internal Web services. We argue that this technique is preferable to alternatives such as special firewall configurations, IP tunneling, and reverse proxies. We describe an implementation of Web tunneling that relies mostly on common, off-the-shelf components.


european conference on computer systems | 2007

Authorizing applications in singularity

Ted Wobber; Aydan R. Yumerefendi; Martín Abadi; Andrew Birrell; Daniel R. Simon

We describe a new design for authorization in operating systems in which applications are first-class entities. In this design, principals reflect application identities. Access control lists are patterns that recognize principals. We present a security model that embodies this design in an experimental operating system, and we describe the implementation of our design and its performance in the context of this operating system.


compiler construction | 2009

Implementation and Use of Transactional Memory with Dynamic Separation

Martín Abadi; Andrew Birrell; Tim Harris; Johnson Hsieh; Michael Isard

We introduce the design and implementation of dynamic separation (DS) as a programming discipline for using transactional memory. Our approach is based on the programmer indicating which objects can be updated in transactions, which can be updated outside transactions, and which are read-only. We introduce explicit operations that identify transitions between these modes of access. We show how to guarantee strong semantics for programs that use these DS operations correctly, even over an STM implementation that provides only weak atomicity. We describe a run-time checking tool (analogous to a data-race detector) that can test whether or not a program is using DS operations correctly. We also examine the use of DS in an asynchronous IO library.


dependable systems and networks | 2008

Experiences with formal specification of fault-tolerant file systems

Roxana Geambasu; Andrew Birrell; John MacCormick

Fault-tolerant, replicated file systems are a crucial component of todaypsilas data centers. Despite their huge complexity, these systems are typically specified only in brief prose, which makes them difficult to reason about or verify. This paper describes the authorspsila experience using formal methods to improve our understanding of and confidence in the behavior of replicated file systems. We wrote formal specifications for three real-world fault-tolerant file systems and used them to: (1) expose design similarities and differences; (2) clarify and mechanically verify consistency properties; and (3) evaluate design alternatives. Our experience showed that formal specifications for these systems were easy to produce, useful for a deep understanding of system functions, and valuable for system comparison.


Sigplan Notices | 1977

Storage management for ALGOL68

Andrew Birrell

This paper describes some of the techniques which can be used for managing the run time storage required for an ALGOL68 program. The emphasis is on stack storage, since garbage collection techniques would require another paper. The problems caused by some ALGOL68 constructs are described: the solutions given are mainly those adopted in the Cambridge ALGOL68C system.

Collaboration


Dive into the Andrew Birrell's collaboration.

Top Co-Authors

Avatar

Edward P. Wobber

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge