History: The topics of concurrency and synchronization are difficult to teach in a concrete way and students really don't understand the practical implications from a theoretical presentation, such as is usually found in a typical OS book. In 1988, while teaching the graduate operating systems course, I realized that many of these concepts could be nicely illustrated using forked processes and pipes in a Unix environment. I began giving laboratory assignments to explore these ideas. In 1989, I presented this work at SIGCSE:
K. A. Robbins, N. Wagner and D. J. Wenzel (1989)
Virtual rings: An introduction to concurrency
Proc. 1989 SIGCSE Technical Symp. On Computer Science Education 21:23-28
Neal Wagner is another faculty member at UTSA. Dennis Wenzel was the graduate student who devised an elegant solution for constructing a virtual ring as described in the paper.
Initial NSF ILI grant: We wanted to introduce these concepts at the undergraduate level, but we did not have any Unix machines available for student use at UTSA. With Co-PIs Steve Robbins and Neal Wagner, I submitted an NSF ILI grant Concurrency experiments in a Unix environment. This grant, which was funded in 1990 for $100K, enabled us to set up a laboratory for the CS students at UTSA.
Practical Unix Programming: As part of NSF concurrency grant, we proposed to develop a laboratory curriculum for OS. After several drafts of the curriculum in the form of laboratory manuals, Steve Robbins and I finally produced our PUP book:
Kay A. Robbins and Steven Robbins (1996)
Practical Unix Programming: A Guide to Concurrency, Communication and Multithreading
Prentice Hall, 1996
Practical Unix Programming Website
Unix Systems Programming: When we wrote Practical Unix Programming, the Posix Standard was incomplete. For many topics, such as network communication, we had to pick a particular vendor implementation (we picked Sun Solaris) to describe. After the Posix standard appeared in its entirety, we did a complete rewrite of the book based on POSIX and changed the title of the book to:
Kay A. Robbins and Steven Robbins (2003)
Unix Systems Programming: Communication, Concurrency, and Threads
Prentice Hall, 2003
Unix Systems Programming Website
Additional comments: Steve Robbins and I (mostly Steve) have taught the undergraduate operating system course every semester since 1990, based on the curriculum that we developed. Steve received additional funding from NSF to develop simulators and other support tools for teaching empirically-grounded CS courses. See Simulators for Teaching Operating Systems for more information.
| Research | | Teaching | | Grants | | Institutional | | Societies | |