Selected Reports: Fall 1997 Software Systems Course (CMU-CS-98-103)
journal contributionposted on 04.04.1998 by Garth Gibson, Chris Colohan, Chuck Rosenberg, Greg Steffan, David Petrou, John Milford, Oleg Cheiner, Istvan Derenyi, Jun Gao, Sanjay Rao, Peter Venable, Doug Rohde, Rick Romero, Philip Wickline, Michael Mateas, Kamal Nigam, Mihai Budiu
Any type of content formally published in an academic journal, usually following a peer-review process.
This technical report contains seven final project reports contributed by sixteen participants in CMU's Systems Software introductory graduate course offered by Professor Garth 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.