Newsletter Downloads
JIT instrumentation: a novel approach to dynamically instrument operating systems
As modern operating systems become more complex, understanding their inner workings is increasingly difficult. Dynamic kernel instrumentation is a well established method of obtaining insight into the workings of an OS, with applications including ...
Whodunit: transactional profiling for multi-tier applications
This paper is concerned with performance debugging of multi-tier applications, such as commonly found in servers and dynamic-content web sites. Existing tools and techniques for profiling such applications are not general enough to track and profile ...
Exploiting nonstationarity for performance prediction
Real production applications ranging from enterprise applications to large e-commerce sites share a crucial but seldom-noted characteristic: The relative frequencies of transaction types in their workloads are nonstationary, i.e., the transaction mix ...
Thread clustering: sharing-aware scheduling on SMP-CMP-SMT multiprocessors
The major chip manufacturers have all introduced chip multiprocessing (CMP) and simultaneous multithreading (SMT) technology into their processing units. As a result, even low-end computing systems and game consoles have become shared memory ...
Dryad: distributed data-parallel programs from sequential building blocks
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 ...
Enabling scalability and performance in a large scale CMP environment
- Bratin Saha,
- Ali-Reza Adl-Tabatabai,
- Anwar Ghuloum,
- Mohan Rajagopalan,
- Richard L. Hudson,
- Leaf Petersen,
- Vijay Menon,
- Brian Murphy,
- Tatiana Shpeisman,
- Eric Sprangle,
- Anwar Rohillah,
- Doug Carmean,
- Jesse Fang
Hardware trends suggest that large-scale CMP architectures, with tens to hundreds of processing cores on a single piece of silicon, are iminent within the next decade. While existing CMP machines have traditionally been handled in the same way as SMPs, ...
Latency and bandwidth-minimizing failure detectors
Failure detectors are fundamental building blocks in distributed systems. Multi-node failure detectors, where the detector is tasked with monitoring N other nodes, play a critical role in overlay networks and peer-to-peer systems. In such networks, ...
Melange: creating a "functional" internet
Most implementations of critical Internet protocols are written in type-unsafe languages such as C or C++ and are regularly vulnerable to serious security and reliability problems. Type-safe languages eliminate many errors but are not used to due to the ...
Sweeper: a lightweight end-to-end system for defending against fast worms
- Joseph Tucek,
- James Newsome,
- Shan Lu,
- Chengdu Huang,
- Spiros Xanthos,
- David Brumley,
- Yuanyuan Zhou,
- Dawn Song
The vulnerabilities that plague computers cause endless grief to users. Slammer compromised millions of hosts in minutes; a hit-list worm would take under a second. Recently proposed techniques respond better than manual approaches, but require ...
Removing the memory limitations of sensor networks with flash-based virtual memory
Virtual memory has been successfully used in different domains to extend the amount of memory available to applications. We have adapted this mechanism to sensor networks, where, traditionally, RAM is a severely constrained resource. In this paper we ...
A virtual machine for sensor networks
Sensor networks are increasingly being deployed for a wide variety of tasks. Today, in these networks, the development, deployment, and maintenance of applications are performed largely ad-hoc. Existing platforms help somewhat but also introduce ...
Macroprogramming heterogeneous sensor networks using cosmos
In this paper, we present COSMOS, a novel architecture for macroprogramming heterogeneous sensor network systems. Macroprogramming specifies aggregate system behavior, as opposed to device-specific programs that code distributed behavior using explicit ...
hFS: a hybrid file system prototype for improving small file and metadata performance
Two oft-cited file systems, the Fast File System (FFS) and the Log-Structured File System (LFS), adopt two sharply different update strategies---update-in-place and update-out-of-place. This paper introduces the design and implementation of a hybrid ...
Competitive prefetching for concurrent sequential I/O
During concurrent I/O workloads, sequential access to one I/O stream can be interrupted by accesses to other streams in the system. Frequent switching between multiple sequential I/O streams may severely affect I/O efficiency due to long disk seek and ...
Secure file system versioning at the block level
In typical file systems, valuable data is vulnerable to being accidentally or maliciously deleted or overwritten. Versioning file systems protect data from accidents by transparently retaining old versions, but do less well in protecting data from ...
Automatic configuration of internet services
Recent research has found that operators frequently misconfigure Internet services, causing various availability and performance problems. In this paper, we propose a software infrastructure that eliminates several types of misconfiguration by ...
Comparing the performance of web server architectures
In this paper, we extensively tune and then compare the performance of web servers based on three different server architectures. The μserver utilizes an event-driven architecture, Knot uses the highly-efficient Capriccio thread library to implement a ...
Concierge: a service platform for resource-constrained devices
As mobile and embedded devices become widespread, the management and configuration of the software in the devices is increasingly turning into a critical issue. OSGi is a business standard for the life cycle management of Java software components. It is ...
Fine grained kernel logging with KLogger: experience and insights
Understanding the detailed behavior of an operating system is crucial for making informed design decisions. But such an understanding is very hard to achieve, due to the increasing complexity of such systems and the fact that they are implemented and ...
Container-based operating system virtualization: a scalable, high-performance alternative to hypervisors
Hypervisors, popularized by Xen and VMware, are quickly becoming commodity. They are appropriate for many usage scenarios, but there are scenarios that require system virtualization with high degrees of both isolation and efficiency. Examples include ...
Adaptive control of virtualized resources in utility computing environments
- Pradeep Padala,
- Kang G. Shin,
- Xiaoyun Zhu,
- Mustafa Uysal,
- Zhikui Wang,
- Sharad Singhal,
- Arif Merchant,
- Kenneth Salem
Data centers are often under-utilized due to over-provisioning as well as time-varying resource demands of typical enterprise applications. One approach to increase resource utilization is to consolidate applications in a shared infrastructure using ...
Discrete control for safe execution of IT automation workflows
As information technology (IT) administration becomes increasingly complex, workflow technologies are gaining popularity for IT automation. Writing correct workflow programs is notoriously difficult. Although static analysis tools are available, fixing ...
STMBench7: a benchmark for software transactional memory
Software transactional memory (STM) is a promising technique for controlling concurrency in modern multi-processor architectures. STM aims to be more scalable than explicit coarse-grained locking and easier to use than fine-grained locking. However, STM ...
Dynamic and adaptive updates of non-quiescent subsystems in commodity operating system kernels
Continuously running systems require kernel software updates applied to them without downtime. Facilitating fast reboots, or delaying an update may not be a suitable solution in many environments, especially in pay-per-use high-performance computing ...
Sealing OS processes to improve dependability and safety
- Galen Hunt,
- Mark Aiken,
- Manuel Fähndrich,
- Chris Hawblitzel,
- Orion Hodson,
- James Larus,
- Steven Levi,
- Bjarne Steensgaard,
- David Tarditi,
- Ted Wobber
In most modern operating systems, a process is a hardware-protected abstraction for isolating code and data. This protection, however, is selective. Many common mechanisms---dynamic code loading, run-time code generation, shared memory, and intrusive ...
Authorizing applications in singularity
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 ...
Antiquity: exploiting a secure log for wide-area distributed storage
Antiquity is a wide-area distributed storage system designed to provide a simple storage service for applications like file systems and back-up. The design assumes that all servers eventually fail and attempts to maintain data despite those failures. ...
Sprint: a middleware for high-performance transaction processing
Sprint is a middleware infrastructure for high performance and high availability data management. It extends the functionality of a standalone in-memory database (IMDB) server to a cluster of commodity shared-nothing servers. Applications accessing an ...
Tashkent+: memory-aware load balancing and update filtering in replicated databases
We present a memory-aware load balancing (MALB) technique to dispatch transactions to replicas in a replicated database. Our MALB algorithm exploits knowledge of the working sets of transactions to assign them to replicas in such a way that they execute ...