Selected Reports: Fall 1997 Soft ware Systems Course (CMU-CS-98-103)

This technical report contains seven final project reports contributed by sixteen participants in CMU’s Fall97 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.

[1]  Robert H. Thomas,et al.  A Majority consensus approach to concurrency control for multiple copy databases , 1979, ACM Trans. Database Syst..

[2]  Andrew D. Birrell,et al.  An Introduction to Programming with Threads , 1996 .

[3]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[4]  Oleg M. Cheiner Implementation and evaluation of an eventually-serializable data service , 1997 .

[5]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[6]  M. Herlihy A quorum-consensus replication method for abstract data types , 1986, TOCS.

[7]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[8]  Nancy A. Lynch,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[9]  J. D. Day,et al.  A principle for resilient sharing of distributed resources , 1976, ICSE '76.

[10]  Liuba Shrira,et al.  Lazy replication: exploiting the semantics of distributed services (extended abstract) , 1990, OPSR.

[11]  Roger M. Needham,et al.  Grapevine: an exercise in distributed computing , 1982, CACM.

[12]  Michael Stonebraker,et al.  Concurrency Control and Consistency of Multiple Copies of Data in Distributed Ingres , 1979, IEEE Transactions on Software Engineering.

[13]  Nancy A. Lynch,et al.  Eventually-serializable data services , 1996, PODC '96.

[14]  Jim Gray,et al.  Notes on Data Base Operating Systems , 1978, Advanced Course: Operating Systems.

[15]  Michael J. Fischer,et al.  Sacrificing serializability to attain high availability of data in an unreliable network , 1982, PODS.

[16]  David K. Gifford,et al.  Weighted voting for replicated data , 1979, SOSP '79.