Selected Reports: Fall 1997 Software Systems Course
Carnegie Mellon University School of Computer Science Technical Report CS-CMU-98-103, April 1998.
Edited by Garth A. Gibson
Secure Sharing with Satans File System
- Chris Colohan, Chuck Rosenberg, and Greg Steffan
Proportional-Share Scheduling: Implementation and Evaluation in a Widely-Deployed Operating System
- David Petrou and John Milford
Fault Tolerance in an Eventually-Serializable Data Service
- Oleg Cheiner and Istvan Derenyi
Design and Evaluation of a Compressed File System
- Jun Gao, Sanjay Rao, and Peter Venable
Dishrag: Distributed, Shared Objects in Java
- Doug Rohde, Rick Romero, and Philip Wickline
Fighting Fire with Truth: a Concurrent Transactional Truth Maintenance System
- Michael Mateas and Kamal Nigam
A User-Level File Service Based on Watchdogs
- Mihai Budiu and Raluca Budiu
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213
This technical report contains seven final project reports contributed by sixteen participants in CMU's Systems Software introductory graduate course offered by Professor Garth A. Gibson. This course studies the design and analysis of operating systems and distributed systems through a series of background lectures, paper readings, guest lectures and group projects. Projects were done in groups of two or three, required some kind of implementation and evaluation pertaining to the classroom material, but with the topic of these projects left up to each group. Final reports were held to the standard of a systems conference paper submission; a standard well met by the majority of the completed projects, albeit with less thoroughness in the related work category than is expected in most conferences. The reports that follow cover a broad range of topics. Specifically, these reports describe implementations and experimentation with: secure file systems when servers and administrators are untrusted; proportional share allocation for processor scheduling and its interaction with kernel realities such as locks; eventually serializable replicated databases with constant-order dependency checking; compressed file data structures optimized to specific access patterns; atomic, shared object semantics for distributed computing in JAVA; transaction semantics for federated agent databases; and user-level file service offering enhanced memory caching for remote files. All reports include implementations and experimentation. Two involve operating system kernel changes, four use a middleware /library approach and one implements a client/server system. Three involve Linux specific modifications, one is specific to FreeBSD, one extends JAVA programming, and one exploits MPI communications. Evaluations include microbenchmark measurements, formal correctness evaluation, synthetic benchmarks, and more than a couple specifically developed application codes. While not all of these reports report definitely and positively, all involve novelty in either the systems explored or the applications applied and all are worth reading.
KEYWORDS: Security and protection, Scheduling, Transaction processing, Data compaction and compression, Distributed programming, Access methods.