[Previous] [Next]

13
READING LIST AND BIBLIOGRAPHY

In the previous 12 chapters we have touched upon a variety of: topics. This chapter is intended as an aid to readers interested in pursuing their study of operating systems further. Section 13.1 is a list of suggested readings. Section 13.2 is an alphabetical bibliography of all sites and articles cited in this site.

In addition to the references given below, the Proceedings of the n-th ACM Symposium on Operating Systems Principles (ACM) held every other year and the Proceedings of the n-th International Conference on Distributed Computing Systems (IEEE) held every year are good places to look for recent papers on operating systems. So is the USENIX Symposium on Operating Systems Design and Implementation. Furthermore, ACM Transactions on Computer Systems and Operating Systems Review are two journals that often have relevant articles.

13.1 SUGGESTIONS FOR FURTHER READING

In the following sections, we give some suggestions for further reading. Unlike the papers cited in the sections entitled “RESEARCH ON …” in the text, which were about current research, these references are mostly introductory or tutorial in nature. They can serve to present material present in this site from a different perspective or with a different emphasis, however.

13.1.1 Introduction and General Works

Kavi et al., “Computer Systems Research: The Pressure is On”

Where is systems research going? What is important now? How about developing robust, predictable systems? How about billion-transistor chips and billion-user worldwide systems? These are some of the questions and answers presented in this paper.

Milojicic, “Operating Systems: Now and in the Future.”

Suppose you were to ask six of the world’s leading experts in operating systems a series of questions about the field and where it was going. Would you get the same answers? Hint: No. Find out what they said here.

Silberschatz et al., Applied Operating System Concepts

A general textsite on operating systems. It covers processes, storage management, distributed systems, and protection. Three case studies are given: UNIX, Linux, and Windows NT. The cover is full of dinosaurs. What, if anything, this has to do with operating systems anno 2000 is unclear.

Stallings, Operating Systems, 4th Ed.

Still another textsite on operating systems. It covers all the traditional topics, and also includes a small amount of material on distributed systems.

Stevens, Advanced Programming in the UNIX Environment

This site tells how to write C programs that use the UNIX system call interface and the standard C library. Examples are based on the System V Release 4 and the 4.4BSD versions of UNIX. The relationship of these implementations to POSIX is described in detail.

13.1.2 Processes and Threads

Andrews and Schneider, “Concepts and Notations for Concurrent Programming”

A tutorial and survey of processes and interprocess communication, including busy waiting, semaphores, monitors, message passing, and other techniques. The article also shows how these concepts are embedded in various programming languages.

Ben-Ari, Principles of Concurrent Programming

This little site is entirely devoted to the problems of interprocess communication. There are chapters on mutual exclusion, semaphores, monitors, and the dining philosophers problem, among others.

Silberschatz et al., Applied Operating System Concepts

Chapters 4 through 6 cover processes and interprocess communication, including scheduling, critical sections, semaphores, monitors, and classical interprocess communication problems.

13.1.3 Deadlocks

Coffman et al., “System Deadlocks”

A short introduction to deadlocks, what causes them, and how they can be prevented or detected.

Holt, “Some Deadlock Properties of Computer Systems”

A discussion of deadlocks. Holt introduces a directed graph model that can be used to analyze some deadlock situations.

Isloor and Marsland, “The Deadlock Problem: An Overview”

A tutorial on deadlocks, with special emphasis on database systems. A variety of models and algorithms are covered.

13.1.4 Memory Management

Denning, “Virtual Memory”

A classic paper on many aspects of virtual memory. Denning was one of the pioneers in this field, and was the inventor of the working set concept.

Denning, “Working Sets Past and Present”

A good overview of numerous memory management and paging algorithms. A comprehensive bibliography is included.

Knuth, The Art of Computer Programming Vol. 1

First fit, best fit, and other memory management algorithms are discussed and compared in this site.

Silberschatz et al., Applied Operating System Concepts

Chapters 9 and 10 deal with memory management, including swapping, paging, and segmentation. A variety of paging algorithms are mentioned.

13.1.5 Input/Output

Chen et al., “RAID: High Performance Reliable Secondary Storage”

The use of multiple disk drives in parallel for fast I/O is a trend in high-end systems. The authors discuss this idea and examine different organizations in terms of performance, cost, and reliability.

Computer, March 1994

This issue of Computer contains eight articles on advanced I/O, and covers simulation, high performance storage, caching, I/O for parallel computers, and multimedia.

Geist and Daniel, “A Continuum of Disk Scheduling Algorithms”

A generalized disk arm scheduling algorithm is presented. Extensive simulation and experimental results are given.

Gibson and Van Meter, “Network Attached Storage”

The Internet is driving the need for vast amounts of storage for Web, database, and other servers. This situation has led to various designs in which freestanding storage can be attached to a network. In this paper, several architectures to accomplish this goal are discussed.

Ng, “Advances in Disk Technology: Performance Issues”

The various factors in disk performance, such as linear bit density, rpm, number of heads, and number of sectors/track can be traded off in various ways to affect system performance. These issues and their impact on performance are covered in this easy-to-read paper on disk technology.

Ruemmler and Wilkes, “An Introduction to Disk Drive Modeling”

The first part of this article is about modern disk drives and how they work inside, including topics such as seeking, zoning, track skewing, sparing, caching, read ahead, and much more. The second part is about modeling disk drives.

Walker and Cragon, “Interrupt Processing in Concurrent Processors”

Implementing precise interrupts on superscalar computers is a challenging activity. The trick is to serialize the state and do it quickly. A number of the design issues and trade-offs are discussed here.

13.1.6 File Systems

Harbron, File Systems

A site on file system design, applications, and performance. Both structure and algorithms are covered.

McKusick et al., “A Fast File System for UNIX”

The UNIX file system was completely redone for 4.2 BSD. This paper describes the design of the new file system, with emphasis on its performance.

Silberschatz et al., Applied Operating System Concepts

Chapter 11 is about file systems. It covers file operations, access methods, directories, and implementation, among other topics.

Stallings, Operating Systems, 2nd Ed.

Chapter 14 contains a fair amount of material about the security environment especially about hackers, viruses, and other threats.

13.1.7 Multimedia Operating Systems

ACM Computing Surveys, Dec. 1995

This issue of ACM Computing Surveys contains 21 short papers on various aspects of multimedia, ranging from low-level technical issues to high-level applications issues.

Computer, May 1995

The theme of this issue of Computer is multimedia and it contains six articles on the subject. After a brief introduction, the papers cover interactive television, multimedia servers, research management, and applications in medicine and education.

Lee, “Parallel Video Servers: A Tutorial”

Many organizations want to offer video on demand, which creates a need for scalable, fault-tolerant parallel video servers. The major issues of how to build them are covered here, including server architecture, striping, placement policies, load balancing, redundancy, protocols, and synchronization.

Leslie et al., “The Design and Implementation of an Operating System to Support Distributed Multimedia Applications.”

Many attempts at implementing multimedia have been based on adding features to an existing operating system. An alternative approach is to start all over again, as described here, and build a new operating system for multimedia from scratch, with no need to be backward compatible for anything. The result is a fairly different design than conventional systems.

Reddy, “I/O Issues in a Multimedia System”

When people talk about computer performance, they usually mean CPU performance. However, for multimedia, I/O performance is at least as important and that is the subject of this paper. Disk scheduling, buffer space trade-offs, and admission control are among the topics covered here.

Sitaram and Dan, “Multimedia Servers”

Multimedia servers have many differences with regular file servers. The authors discuss the differences in detail, especially in the areas of scheduling, the storage subsystem, and caching.

13.1.8 Multiple Processor Systems

Ahmad, “Gigantic Clusters: Where Are They and What Are They Doing?”

To get an idea of the state-of-the-art in large multicomputers, this is a good place to look. It describes the idea and gives an overview of some of the larger systems currently in operation. Given the working of Moore’s law, it is a reasonable bet that the sizes mentioned here will double about every 2 years or so.

Bhoedjang et al., “User-Level Network Interface Protocols”

More and more multicomputers are putting the network interface board in user space to improve performance. Doing so raises many design issues, eleven of which are discussed here. A number of actual systems are also compared.

Computer, Dec 1996

This issue of Computer contains eight papers on multiprocessors. One of them is a tutorial on the semantics of shared memory, but the other seven deal with multiprocessor applications and performance.

Dubois et al., “Synchronization, Coherence, and Event Ordering in Multiprocessors”

A tutorial on synchronization in shared-memory multiprocessor systems. However, some of the ideas are equally applicable to single processor and distributed memory systems as well.

Kwok and Ahmad “Static Scheduling Algorithms for Allocating Directed Task Graphs to Multiprocessors”

Optimal job scheduling of a multicomputer or multiprocessor is possible when the characteristics of all the jobs are known in advance. The problem is that optimal scheduling takes far too long to compute. In this paper, the authors discuss and compare 27 known algorithms for attacking this problem in different ways.

Langendoen et al., “Models for Asynchronous Message Handling”

High performance in multicomputers depends critically on the performance of the message-passing system, especially how incoming messages are handled. The main choices are active messages, upcalls, and pop-up threads. The authors describe all three of them in this paper and then present experimental results comparing them on the same hardware platform.

Protic et al., Distributed Shared Memory: Concepts and Systems

For an introduction to distributed shared memory, this collection of 28 previously published papers is a good start. It collects many of the classic papers on models, algorithms, and implementations into a single convenient site.

Stenstrom et al., “Trends in Shared Memory Multiprocessing.”

Which way are multiprocessors going? The authors believe the future lies more in small-scale multiprocessors than large-scale ones. They also discuss models, architectures, and parallel software.

Waldo, “Alive and Well: Jini Technology Today”

For a quick introduction to Jini, its components, and how they fit together, this paper is a good starting place. Perhaps indicative of how information will be disseminated in the future, it has no bibliography of published papers, but instead provides the URLs of many Web resources on Jini.

13.1.9 Security

Computer, Feb 2000

The theme of this issue of Computer is biometrics, with six papers on the subject. They range from an introduction to the subject, through various specific technologies, to a paper dealing with the legal and privacy issues.

Denning, “The United States vs. Craig Neidorf”

When a young hacker discovered and published information about how the telephone system works, he was indicted for computer fraud. This article describes the case, which involved many fundamental issues, including freedom of speech. The article is followed by some dissenting views and a rebuttal by Denning.

Denning, Information Warfare and Security

Information has become a weapon of war, both military and corporate. The participants not only try to attack the other side’s information systems, but safeguard their own as well. In this fascinating site, the author covers every conceivable topic relating to offensive and defensive strategy, from data diddling to packet sniffers. A must read for anyone seriously interested in computer security.

Hafner and Markoff, Cyberpunk

Three compelling tales of young hackers breaking into computers around the world are told here by the New York Times computer reporter who broke the Internet worm story (Markoff). Computer, Feb 2000

Johnson and Jajodia, “Exploring Steganography: Seeing the Unseen”

Steganography has a long history, going back to the days when the writer would shave the head of a messenger, write a message on the shaved head, and send him off after the hair grew back. Although current techniques are often hairy, they are also digital. For a thorough introduction to the subject as currently practiced, this paper is the place to start.

Ludwig, The Giant Black site of Computer Viruses, 2nd ed.

If you want to write antivirus software and need to understand how viruses work down to the bit level, this is the site for you. Every kind of virus is discussed at length and actual code for most of them is supplied on a floppy disk. A thorough knowledge of programming the Pentium in assembly language is a must, however.

Milojicic, “Security and Privacy.”

Security has many facets including operating systems, networks, implications for privacy, and more. In this article, six security experts are interviewed on their thoughts on the subject.

Nachenberg, “Computer Virus-Antivirus Coevolution”

As soon as the antivirus developers find a way to detect and neutralize some class of computer virus, the virus writers go them one better and improve the virus. The cat-and-mouse game played by the virus and antivirus sides is discussed here, The author is not optimistic about the antivirus writers winning the war, which is bad news for computer users.

Pfleeger, Security in Computing, 2nd ed.

Although a number of sites on computer security have been published, most of them cover only network security. This site does that, but also has three chapters on operating systems security, which make it a good reference for more background on that subject.

13.1.10 UNIX and Linux

Bovet and Cesati, Understanding the Linux Kernel

This site is probably the best overall discussion of the Linux kernel. It covers processes, memory management, file systems, signals, and much more.

IEEE, Information Technology—Portable Operating System Interface (POSIX), Part 1: System Application Program Interface (API) [C Language]

This is the standard. Some parts are actually quite readable, especially Annex B, “Rationale and Notes,” which often sheds light on why things are done as they are. One advantage of referring to the standards document is that, by definition, there are no errors. If a typographical error in a macro name makes it through the editing process it is no longer an error, it is official.

Lewine, POSIX Programmers Guide

This site describes the POSIX standard in more detail than the standards document, and includes discussions on how to convert older programs to POSIX and how to develop new programs for the POSIX environment, with examples.

Maxwell, Linux Core Kernel Commentary

The first 400 pages of this site contain a subset of the Linux kernel code. The last 150 pages consists of comments on the code, very much in the style of John Lions’ classic site (1996). If you want to understand the Linux kernel in all its gory detail, this is the place to begin, but be warned: reading 40,000 lines of C is not for everyone.

McKusick et al., The Design and Implementation of the 4.4 BSD Operating System

The title says it all. But actually, the site is more general than that since all UNIX systems are fairly similar internally. This is an excellent reference for anyone wanting to learn about the internal workings of UNIX in general.

13.1.11 Windows 2000

Cusumano and Selby, “How Microsoft Builds Software”

Have you ever wondered how anyone could write a 29-million-line program (like Windows 2000) and have it work at all? To find out how Microsoft’s build and test cycle is used to manage very large software projects, take a look at this paper.

Norton et al., Complete Guide to Windows 2000 Professional

If you are looking for a site that discusses how to set up and use Windows 2000 but also discusses many of the advanced features in some detail, such as the registry, FAT and NTFS file systems, ActiveX, DCOM, and networking this is a good choice. It lies in between the mass of sites that tell where to click to get which effect and Solomon and Russinovich’s site

Rector and Newcomer, Win32 Programming

If you are looking for one of those 1500-page sites giving a summary of how to write Windows programs, this is not a bad start. It covers windows, devices, graphical output, keyboard and mouse input, printing, memory management, libraries, and synchronization, among many other topics. It requires knowledge of C or C++.

Solomon and Russinovich, Inside Windows 2000, 3rd ed.

If you want to learn how to use Windows 2000, there are hundreds of sites out there. If you want to know how Windows 2000 works inside, this is your best bet. It covers numerous internal algorithms and data structures and in considerable technical detail. No other site comes close.

13.1.12 Design Principles

Brooks, “The Mythical Man Month: Essays on Software Engineering”

Fred Brooks was one of the designers of IBM’s OS/360. He learned the hard way what works and what does not work. The advice given in this witty, amusing, and informative site is as valid now as it was a quarter of a century ago when he first wrote it down.

Cooke et al., “UNIX and Beyond: An Interview with Ken Thompson”

Designing an operating system is much more of an art than a science. Consequently, listening to experts in the field is a good way to learn about the subject. They do not come much more expert than Ken Thompson, co-designer of UNIX, Inferno, and Plan 9. In this wide-ranging interview, Thompson gives his thoughts on where we came from and where we are going in the field.

Corbató, “On Building Systems That Will Fail”

In his Turing Award lecture, the father of timesharing addresses many of the same concerns that Brooks does in the Mythical Men-Month. His conclusion is that all complex systems will ultimately fail, and that to have any chance for success at all, it is absolutely essential to avoid complexity and strive for simplicity and elegance in design.

Crowley, Operating Systems: A Design-Oriented Approach

Most textsites on operating systems just describe the basic concepts (processes, virtual memory, etc.) and a few examples, but say nothing about how to design an operating system. This one is unique in devoting four chapters to the subject.

Lampson, “Hints for Computer System Design”

Butler Lampson, one of the world’s leading designers of innovative operating systems, has collected many hints, suggestions, and guidelines from his years of experience and put them together in this entertaining and informative article. Like Brooks’ site, this is required reading for every aspiring operating system designer

Wirth, “A Plea for Lean Software”

Niklaus Wirth, a famous and experienced system designer, makes the case here for lean and mean software based on a few simple concepts, instead of the bloated mess that much commercial software is. He makes his point by discussing his Oberon system, a network-oriented, GUI-based operating system that fits in 200 KB, including the Oberon compiler and text editor.

13.2 ALPHABETICAL BIBLIOGRAPHY

ABDEL-HAMID, T., and MADNICK, S.: Software Project Dynamics: An Integrated Approach, Upper Saddle River, NJ: Prentice Hall, 1991.

ABRAM-PROFETA, E.L., and SHIN, K,G.: “Providing Unrestricted VCR Functions in Multicast Video-on-Demand Servers,” Proc. Int’l Conf. on Multimedia Comp. Syst., IEEE, pp. 66-75, 1998.

ABUTALEB, A., and LI, V.O.K.: “Paging Strategy Optimization in Personal Communication Systems Wireless Networks,” Wireless Networks, vol. 3, pp. 195-204, Aug. 1997.

ACCETTA, M., BARON, R., GOLUB, D., RASHID, R., TEVANIAN, A., and YOUNG, M.: “Mach: A New Kernel Foundation for UNIX Development,” Proc. Summer 1986 USENIX Conf., USENIX, pp. 93-112, 1986.

ADAMS, G.B. III, AGRAWAL, D.P, and SIEGEL, H.J.: “A Survey and Comparison of Fault-Tolerant Multistage Interconnection Networks,” Computer, vol. 20, pp. 14-27, June 1987.

ADAMS, A., and SASSE, M.A.: “Taming the Wolf in Sheep’s Clothing,” Proc. Seventh Int’l Conf. on Multimedia, ACM, pp. 101-107, 1999.

AHMAD, I.: “Gigantic Clusters: Where Are They and What Are They Doing?” IEEE Concurrency, vol. 8. pp. 83-85, April-June 2000.

ALEXANDROV, A.D., IBEL, M., SCHAUSER, K.E., and SCHEIMAN, C.J.: “UFO: a Personal Global File System Based on User-Level Extensions to the Operating System,” Trans. on Computer Systems, vol. 16, pp. 207-233, Aug. 1998.

ALFIERI, R.A.: “An Efficient Kernel-Based Implementation of POSIX Threads,” Proc. Summer 1994 USENIX Tech. Conf., USENIX, pp. 59-72, June 1994.

ALVAREZ, G.A., BURKHARD, W.A., and CRISTIAN, F.: “Tolerating Multiple Failures in RAID Architectures with Optimal Storage And Uniform Declustering,” Proc. 24th Int’l Symp. on Computer Architecture, ACM, pp. 62-72, 1997.

ANDERSON, T.E.: “The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors,” IEEE Trans. on Parallel and Distr. Systems, vol. 1, pp. 6-16, Jan. 1990.

ANDERSON, T.E., BERSHAD, B.N., LAZOWSKA, E.D., and LEVY, H.M.: “Scheduler Activations: Effective Kernel Support for the User-level Management of Parallelism,” ACM Trans. on Computer Systems, vol. 10, pp. 53-79, Feb, 1992.

ANDREWS, G.R.: Concurrent Programming—Principles and Practice, Redwood City, CA: Benjamin/Cummings, 1991.

ANDREWS, G.R., and SCHNEIDER, F.B.: “Concepts and Notations for Concurrent Programming,” Computing Surveys, vol. 15, pp. 3-43, March 1983.

ARON, M., and DRUSCHEL, P.: “Soft Timers: Efficient Microsecond Software Timer Support for Network Processing,” Proc. 17th Symp. on Operating Systems Principles, ACM, pp. 223-246, 1999.

ARORA, A.S., BLUMOFE, R.D., and PLAXTON, C.G.: “Thread Scheduling for Multiprogrammed Multiprocessors,” Proc. Tenth Symp. on Parallel Algorithms and Architectures, ACM, pp. 119-129, 1998.

BAKER, F.T.: “Chief Programmer Team Management of Production Programming,” IBM Systems Journal, vol. 11, pp. 1, 1972.

BAKER-HARVEY, M.: “ETI Resource Distributor: Guaranteed Resource Allocation and Scheduling in Multimedia Systems,” Proc. Third Symp. on Operating Systems Design and Implementation, USENIX, pp. 131-144, 1999.

BALA, K., KAASHOEK, M.F., WEIHL, W.: “Software Prefetching and Caching for Translation Lookaside Buffers,” Proc. First Symp. on Operating System Design and Implementation, USENIX, pp. 243-254, 1994.

BALLINTIJN, G., VAN STEEN, M., and TANENBAUM, A.S.: “Scalable Naming in Global Middleware,” Proc. 13th Int’l Conf. on Parallel and Distributed Systems, ISCA, pp. 624-631, 2000.

BAYS, C.: “A Comparison of Next-Fit, First-Fit, and Best-Fit.” Commun. of the ACM, vol. 20, pp. 191-192, March 1977.

BECK, M., BOHME, H., DZIADZKA, M., KUNITZ, U., MAGNUS, R., VERWORNER, D.: Linux Kernel Internals, 2nd ed., Reading, MA: Addison-Wesley, 1998.

BELADY, L.A., NELSON, R.A., and SHEDLER, G.S.: “An Anomaly in Space-Time Characteristics of Certain Programs Running in a Paging Machine,” Commun. of the ACM, vol. 12, pp. 349-353, June 1969.

BELL, D., and LA PADULA, L.: “Secure Computer Systems: Mathematical Foundations and Model,” Technical Report MTR 2547 v2, Mitre Corp., Nov. 1973.

BEN-ARI, M.: Principles of Concurrent Programming, Upper Saddle River, NJ: Prentice Hall International, 1982.

BERNHARDT, C., and BIERSACK, E.W.: “The Server Array: A Scalable Video Server Architecture,” in High-Speed Networking for Multimedia Applications, Amsterdam: Kluwer Publishers, 1996.

BERSHADT B.N., SAVAGE, S., PARDYAK, P., BECKER, D., FIUCZYNSKI, M., and SIRER, E.G.: “Protection is a Software Issue,” Proc. Hot Topics in Operating Systems V, IEEE, pp. 62-65, 1995a.

BERSHAD, B.N., SAVAGE, S., PARDYAK, R, SIRER, E.G.., FIUCZYNSKI, M., BECKER, D., CHAMBERS, C., and EGGERS, S.: “Extensibility, Safety, and Performance in the SPIN Operating System,” Proc. 15th Symp. on Operating Systems Principles, ACM. pp. 267-284, 1995b.

BHOEDJANG, R.A.F.: Communication Architectures for Parallel-Programming Systems, Ph.D. Thesis, Vrije Universiteit, Amsterdam, The Netherlands, 2000.

BHOEDJANG, R.A.F., RUHL, T., and BAL, H.E.: “User-Level Network Interface Protocols,” Computer, vol. 31, pp. 53-60, Nov. 1998.

BHUYAN, L.N., YANG, Q., and AGRAWAL, D.P.: “Performance of Multiprocessor Interconnection Networks,” Computer, vol. 22, pp. 25-37, Feb. 1989.

BIBA, K.: “Integrity Considerations for Secure Computer Systems,” Technical Report 76-371, U.S. Air Force Electronic Systems Division, 1977.

BIRRELL, A.D., and NELSON, B.J.: “Implementing Remote Procedure Calls,” ACM Trans. on Computer Systems, vol. 2, pp. 39-59, Feb. 1984.

BISDIKIAN, C.C., and PATEL, B.V.: “Issues on Movie Allocation in Distributed Video-on-Demand Systems,” Proc. Int’l Conf. on Commun., IEEE, pp. 250-255, 1995.

BLAUM, M., BRADY, J., BRUCK, J., and MENON, J.: “EVENODD: An Optimal Scheme for Tolerating Double Disk Failures in RAID Architectures,” Proc. 21st Int’l Symp. on Computer Architecture, ACM, pp. 245-254, 1994.

BLUMOFE, R.D., and LEISERSON, C.E.: “Scheduling Multithreaded Computations by Work Stealing,” Proc. 35th Annual Symp. on Foundations of Computer Science, IEEE, pp. 356-368, Nov. 1994.

BOEHM, B.W.: Software Engineering Economics, Upper Saddle River, NJ: Prentice Hall, 1981.

BOLOSKY, W.J., FITZGERALD, R.P., and DOUCEUR, J.R.: “Distributed Schedule Management in the Tiger Video Fileserver,” Proc. 16th Symp. on Operating Systems Principles, ACM, pp. 212-223, 1997.

BORN, G.: Inside the Microsoft Windows 98 Registry, Redmond, WA: Microsoft Press, 1998.

BOVET, D.P., and CESATI, M.: Understanding the Linux Kernel, Sebastopol, CA: O’Reilly & Associates, 2000.

BRANDWEIN, R., KATSEFF, H., MARKOWITZ, R., MORTENSON, R., and ROBINSON, B.: “Nemesis: Multimedia Information Delivery,” Proc. Second ACM Int’l Conf. on Multimedia, ACM, pp. 473-481, 1994.

BRICKER, A., GIEN, M., GUILLEMONT, M., LIPKIS, J., ORR, D., and ROZIER, M.: “A New Look at Microkernel-Based UNIX Operating Systems: Lessons in Performance and Compatibility,” Proc. EurOpen Spring ’91 Conf., EurOpen, pp. 13-32, 1991.

BRINCH HANSEN, P.: “The Programming Language Concurrent Pascal,” IEEE Trans. on Software Engineering, vol. SE-1, pp. 199-207, June 1975.

BROOKS, F.P., Jr.: The Mythical Man-Month: Essays on Software Engineering, Reading, MA: Addison-Wesley, 1975.

BROOKS, F.P., Jr.: “No Silver Bullet—Essence and Accident in Software Engineering,” Computer, vol. 20, pp. 10-19, April 1987.

BROOKS, F.P., Jr.: The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary edition, Reading, MA: Addison-Wesley, 1995.

BUCHANAN, M., and CHIEN, A.: “Coordinated Thread Scheduling for Workstation Clusters Under Windows NT.” The USENIX Windows NT Workshop, USENIX, pp. 47-??, 1997.

BUGNION, E., DEVINE, S., GOVIL, K., and ROSENBLUM, M.: “Disco: Running Commodity Operating Systems on Scalable Multiprocessors,” Trans. on Computer Systems, vol. 15, pp. 432-447, Nov. 1997.

BUZZARD, G., JACOBSON, D., MACKEY, M., MAROVICH, S., and WILKES, J.: “An Implementation of the Hamlyn Sender-Managed Interface Architecture,” Proc. Second Symp. on Operating System Design and Implementation, USENIX, pp. 245-259, Oct. 1996.

CANT, C: Writing Windows WDM Device Drivers, Lawrence, KS: R&D sites, 1999.

CAO, P., LIN, S.B., VENKATARAMAN, S., and WILKES, J.: “The TickerTAIP Parallel RAID Architecture,” Trans. on Computer Systems, vol. 12, pp. 236-269, Aug. 1994.

CAO, P., FELTEN, E.W., KARLIN, A.R., and LI, K.: “A Study of Integrated Prefetching and Caching Strategies,” Proc. SIGMETRICS Joint Int’l Conf. on Measurement and Modeling of Computer Systems, ACM, pp. 188-197, 1995.

CARLEY, L.R., GANGER, G.R., and NAGLE, D.F.: “MEMS-Based Integrated Circuit Mass Storage Systems,” Commun. of the ACM, vol. 43. pp. 73-80, Nov. 2000.

CARR, R.W., and HENNESSY, J.L.: “WSClock—A Simple and Effective Algorithm for Virtual Memory Management,” Proc. Eighth Symp. on Operating Systems Principles, ACM, pp. 87-95, 1981.

CARRIERO, N., and GELERNTER, D.: “The S/Net’s Linda Kernel,” ACM Trans. on Computer Systems, vol. 4, pp. 110-129, May 1986.

CARRIERO, N., and GELERNTER, D.: “Linda in Context,” Commun. of the ACM, vol. 32, pp. 444-458, April 1989.

CARTER, J.B., BENNETT, J.K., and ZWAENEPOEL, W.: “Techniques for Reducing Consistency-Related Communication in Distributed Shared-Memory Systems,” Trans. on Computer Systems, vol. 13, pp. 205-243, Aug. 1995.

CERF, C, and NAVASKY, V.: The Experts Speak, New York: Random House, 1984.

CHANDRA, A., ADLER, M., GOYAL, P., and SHENOY, P.:s10 “Surplus Fair Scheduling: A Proportional-Share CPU Scheduling Algorithm for Symmetric Multiprocessors,” Proc. Fourth Symp. on Operating Systems Design and Implementation, USENIX, pp. 45-58, 2000.

CHASE, J.S., LEVY, H.M., FEELEY, M.J., and LAZOWSKA, E.D.: “Sharing and Protection in a Single-Address-Space Operating System,” Trans. on Computer Systems, vol. 12, pp. 271-307, Nov. 1994.

CHEN, P.M., LEE, E.K., GIBSON, G.A., KATZ, R.H., and PATTERSON, D.A.: “RAID: High Performance Reliable Storage,” Comp. Surv., vol. 26, pp. 145-185, June 1994.

CHEN, P.M., NG, W.T., CHANDRA, S., AYCOCK, C., RAJAMANI, C., and LOWELL, D.: “The Rio File Cache: Surviving Operating System Crashes,” Proc. Seventh Int’l Conf. on Architectural Support for Programming Languages and Operating Systems, ACM, pp. 74-83, 1996.

CHEN, S., and THAPAR, M.: “A Novel Video Layout Strategy for Near-Video-on-Demand Servers,” Proc. Int’l Conf. on Multimedia Computing and Systems, IEEE, pp. 37-45, 1997.

CHEN, S., and TOWSLEY, D.: “A Performance Evaluation of RAID Architectures,” IEEE Trans. on Computers, vol. 45, pp. 1116-1130, Oct. 1996.

CHERITON, D.R.: “An Experiment Using Registers for Fast Message-Based Interprocess Communication,” Operating Systems Review, vol. 18, pp. 12-20, Oct. 1984.

CHERITON, D.: “The V Distributed System,” Commun. of the ACM, vol. 31, pp. 314-333, March 1988.

CHERVENAK, A., VELLANKI, V., and KURMAS, Z.: “Protecting File Systems: A Survey of Backup Techniques.” Proc. 15th IEEE Symp. on Mass Storage Systems, IEEE, 1998.

CHOW, T.C.K., and ABRAHAM, J.A.: “Load Balancing in Distributed Systems,” IEEE Trans. on Software Engineering, vol. SE-8, pp. 401-412, July 1982.

CLARK, P.C., and HOFFMAN, L.J.: “BITS: A Smartcard Protected Operating System,” Commun. of the ACM, vol. 37, pp. 66-70, Nov. 1994.

COFFMAN, E.C., ELPHICK, M.J., and SHOSHANI, A.: “System Deadlocks,” Computing Surveys, vol. 3, pp. 67-78, June 1971.

COMER, D.: Operating System Design. The Xinu Approach, Upper Saddle River, NJ: Prentice Hall, 1984.

COOKE, D., URBAN, J., and HAMILTON, S.: “Unix and Beyond: An Interview with Ken Thompson,” Computer, vol. 32, pp. 58-64, May 1999.

CORBALAN, J., MARTORELL, X., and LABARTA, J.: “Performance-Driven Processor Allocation,” Proc. Fourth Symp. on Operating Systems Design and Implementation, USENIX, pp. 59-71, 2000.

CORBATO, F.J.: “On Building Systems That Will Fail,” Commun. of the ACM, vol. 34, pp. 72-81, June 1991.

CORBATO, F.J., MERWIN-DAGGETT, M., and DALEY, R.C.: “An Experimental Time-Sharing System,” Proc. AFIPS Fall Joint Computer Conf., AFIPS, pp. 335-344, 1962.

CORBATO, F.J., SALTZER, J.H., and CLINGEN, C.T.: “MULTICS—The First Seven Years,” Proc. AFIPS Spring Joint Computer Conf., AFIPS, pp. 571-583, 1972.

CORBATO, F.J., and VYSSOTSKY, V.A.: “Introduction and Overview of the MULTICS System,” Proc. AFIPS Fall Joint Computer Conf., AFIPS, pp. 185-196, 1965.

COURTOIS, P.J., HEVMANS, F., and PARNAS, D.L.: “Concurrent Control with Readers and Writers,” Commun. of the ACM, vol. 10, pp. 667-668, Oct. 1971.

CRANOR, C.D., and PARULKAR, G.M.: “The UVM Virtual Memory System,” Proc. USENIX Annual Tech. Conf., USENIX, pp. 117-130, 1999.

CROWLEY, C.: Operating Systems: A Design-Oriented Approach, Chicago: Irwin, 1997.

CUSUMANO, M.A., and SELBY, R.W.: “How Microsoft Builds Software,” Commun. of the ACM, vol. 40, pp. 53-61, June 1997.

DALEY, R.C, and DENNIS, J.B.: “Virtual Memory, Process, and Sharing in MULTICS,” Commun. of the ACM, vol. 11, pp. 306-312, May 1968.

DAN, A., SITARAM, D., and SHAHABUDDIN, P: “Scheduling Policies for an On-Demand Video Server with Batching,” Proc. Second Int’l Conf. on Multimedia, ACM, pp. 15-23, 1994.

DANDAMUDI, S.P.: “Reducing Run Queue Contention in Shared Memory Multiprocessors,” Computer, vol. 30, pp. 82-89, March 1997.

DE JONGE, W., KAASHOEK, M.F., and HSIEH, W.C.: “The Logical Disk: A New Approach to Improving File Systems,” Proc. 14th Symp. on Operating Systems Principles, ACM, pp. 15-28, 1993.

DENNING, D.: “A Lattice Model of Secure Information Flow,” Commun. of the ACM, vol. 19. pp. 236-243, 1976.

DENNING, D.: “The United States vs. Craig Neidorf,” Commun. of the ACM, vol. 34, pp. 22-43, March 1991.

DENNING, D.: Information Warfare and Security, Reading, MA: Addison-Wesley, 1999.

DENNING, P.J.: “The Working Set Model for Program Behavior,” Commun. of the ACM, vol. 11. pp. 323-333, 1968a.

DENNING, P.J.: “Thrashing: Its Causes and Prevention,” Proc. AFIPS National Computer Conf., AFIPS, pp. 915-922, 1968b.

DENNING, P.J.: “Virtual Memory,” Computing Surveys, vol. 2, pp. 153-189, Sept. 1970.

DENNING, P.J.: “Working Sets Past and Present,” IEEE Trans. on Software Engineering, vol. SE-6, pp. 64-84. Jan. 1980.

DENNIS, J.B., and VAN HORN, E.C.: “Programming Semantics for Multiprogrammed Computations,” Commun. of the ACM, vol. 9, pp. 143-155. March 1966.

DEVARAKONDA, M., KISH, B., and MOHINDRA, A.: “Recovery in the Calypso File System,” Trans. on Computer Systems, vol. 14, pp. 287-310, Aug. 1996.

DIFFIE, W., and HELLMAN, M.E.: “New Directions in Cryptography,” IEEE Trans. on Information Theory, vol. IT-22, pp. 644-654, Nov. 1976.

DIJKSTRA, E.W.: “Co-operating Sequential Processes,” in Programming Languages, Genuys, F. (Ed.), London: Academic Press, 1965.

DIJKSTRA, E.W.: “The Structure of THE Multiprogramming System,” Commun. of the ACM, vol. 11, pp. 341-346, May 1968.

DUBOIS, M., SCHEURICH, C., and BRIGGS, F.A.:   “Synchronization, Coherence, and Event Ordering in Multiprocessors,” Computer, vol. 21, pp. 9-21, Feb. 1988.

DOUCEUR, J.R., and BOLOSKY, W.J.: “A Large-Scale Study of File-System Contents,” Proc. Int’l Conf. on Measurement and Modeling of Computer Systems, ACM, pp. 59-70, 1999.

DRUSCHEL, P., PAI, V.S., and ZWAENEPOEL, W.: “Extensible Systems are Leading OS Research Astray,” Proc. Hot Topics in Operating Systems VI, IEEE, pp. 38-42, 1997.

DUDA, K.J., and CHERITON, D.R.: “Borrowed-Virtual-Time (BVT) Scheduling: Supporting Latency-Sensitive Threads in a General-Purpose Scheduler,” Proc. 17th Symp. on Operating Systems Principles, ACM, pp. 261 -276, 1999.

EAGER, D.L., LAZOWSKA, E.D., and ZAHORJAN, J.: “Adaptive Load Sharing in Homogeneous Distributed Systems,” IEEE Trans. on Software Engineering, vol. SE-12, pp. 662-675, May 1986.

EAGER, D.L., VERNON, M., and ZAHORJAN, J.: “Optimal and Efficient Merging Schedules for Video-on-Demand Servers,” Proc. Seventh Int’l Conf. on Multimedia, ACM, pp. 199-202, 1099.

EDLER, J., LIPKIS, J., and SCHONBERG, E.: “Process Management for Highly Parallel UNIX Systems,” Proc. USENIX Workshop on UNIX and Supercomputers, USENIX, pp. 1-17, Sept. 1988.

EGAN, J.I., and TEIXEIRA, T.J.: Writing a UNIX Device Driver, 2nd ed.. New York: John Wiley, 1992.

EL GAMAL, A.: “A Public Key Cryptosystem and Signature Scheme Based on Discrete Logarithms,” IEEE Trans. on Information Theory, vol. IT-31, pp. 469-472, July 1985.

ELLIS, C.S.: “The Case for Higher-Level Power Management,” Proc. Hot Topics in Operating Systems VII, IEEE, pp. 162-167, 1999.

ENGLER, D.R, GUPTA, S.K., and KAASHOEK, M.F.: “AVM: Application-Level Virtual Memory,” Proc. Hot Topics in Operating Systems V, IEEE, pp. 72-77, 1995a.

ENGLER, D., CHELF, B., CHOU, A., HALLEM, S.: “Checking System Rules Using System-Specific Programmer-Written Compiler Extensions,” Proc. Fourth Symp. on Operating Systems Design and Implementation, USENIX, pp. 1-16. 2000.

ENGLER, D.R., and KAASHOEK, M.F.: “Exterminate All Operating System Abstractions,” Proc. Hot Topics in Operating Systems V, IEEE, pp. 78-83, 1995.

ENGLER, D.R., KAASHOEK, M.F., and O’TOOLE, J. Jr.: “Exokernel: An Operating System Architecture for Application-Level Resource Management,” Proc. 15th Symp. on Operating Systems Principles, ACM, pp. 251-266, 1995.

EVEN, S.: Graph Algorithms, Potomac, MD: Computer Science Press, 1979.

FABRY. R.S.: “Capability-Based Addressing,” Commun. of the ACM, vol. 17, pp. 403-412, July 1974.

FEELEY, M.J., MORGAN, W.E., PIGHIN, F.H., KARLIN, A.R., LEVY, H.M., and THEKKATH, C.A.: “Implementing Global Memory Management in a Workstation Cluster,” Proc. 15th Symp. on Operating Systems Principles, ACM, pp. 201-212, 1995.

FERGUSON, D., YEMINI, Y., and NIKOLAOC, C.: “Microeconomic Algorithms for Load Balancing in Distributed Computer Systems,” Proc. Eighth Int’l Conf. on Distributed Computing Systems, IEEE, pp. 491-499, 1988.

FEUSTAL, E.A.: “The Rice Research Computer—A Tagged Architecture,” Proc. AFIPS Conf., AFIPS, 1972.

FUNN, J., and SATYANARAYANAN, M.: “Energy-Aware Adaptation for Mobile Applications,” Proc. 17th Symp. on Operating Systems Principles, ACM, pp. 48-63, 1999.

FLUCKIGER, F.: Understanding Networked Multimedia, Upper Saddle River, NJ: Prentice Hall, 1995.

FORD, B., HIBLER, M., LEPREAU, J., TULLMAN, P., BACK, G., CLAWSON, S.: “Microkernels Meet Recursive Virtual Machines,” Proc. Second Symp. on Operating Systems Design and Implementation, USENIX, pp. 137-151, 1996.

FORD, B., and SUSARLA, S.: “CPU Inheritance Scheduling,” Proc. Second Symp. on Operating Systems Design and Implementation, USENIX, pp. 91-105, 1996.

FORD, B., BACK, G., BENSON, G., LEPREAU, J., LIN, A., SHIVERS, O.: The Flux OSkit: A Substrate for Kernel and Language Research,” Proc. 17th Symp. on Operating Systems Principles, ACM pp. 38-51, 1997.

FOTHERINGHAM, J.: “Dynamic Storage Allocation in the Atlas Including an Automatic Use of a Backing Store,” Commun. of the ACM, vol. 4, pp. 435-436. Oct. 1961.

GAFSI, J., and BIERSACK, E.W.:   “A Novel Replica Placement Strategy for Video Servers,” Proc. Sixth Int’l Workshop on Interactive and Distrib. Multimedia Systems, ACM, pp. 321-335.

GEIST, R., and DANIEL, S.: “A Continuum of Disk Scheduling Algorithms,” ACM Trans. on Computer Systems, vol. 5, pp. 77-92, Feb. 1987.

GELERNTER, D.: “Generative Communication in Linda,” ACM Trans. on Programming Languages and Systems, vol. 7, pp. 80-112, Jan. 1985.

GHORMLEY, D., PETROU, D., RODRIGUES, S., VAHDAT, A., and ANDERSON, T.E.: “SLIC: An Extensible System for Commodity Operating Systems,” Proc. USENIX Annual Tech. Conf., USENIX, pp. 39-46, 1998.

GIBSON, G.A., and VAN METER, R.: “Network Attached storage,” Commun. of the ACM, vol. 43, pp. 37-45, Nov. 2000.

GILL, D.S., ZHOU, S., and SANDHU, H.S.: “A Case Study of File System Workload in a Large-Scale Distributed Environment,” Proc. 1994 Conf. on Measurement and Modeling of Computer Systems, ACM, pp. 276-277, 1994.

GOLDBERG, L.A., GOLDBERG, P.W., PHILLIPS, C.A., and SOKKIN, G.B.: “Constructing Virus Phylogenies,” Journal of Algorithms, vol. 26, pp. 188-208, Jan. 1998.

GOLDEN, D., and PECHURA, M.: “The Structure of Microcomputer File Systems,” Commun. of the ACM, vol. 29, pp. 222-230, March 1986.

GONG, L.: Inside Java 2 Platform Security, Reading, MA: Addison-Wesley, 1999.

GOODHEART, B., and COX, J.: The Magic Garden Explained, Upper Saddle River, NJ: Prentice Hall, 1994.

GOVIL, K., TEODOSIU, D., HUANG, Y., and ROSENBLUM, M.: “Cellular Disco: Resource Management Using Virtual Clusters on Shared-Memory Multiprocessors.” Proc. 17th Symp. on Operating Systems Principles, ACM. 1999, pp. 154-169.

GOYAL, P., GUO, X., and VIN, H.M.: “A Hierarchical CPU Scheduler for Multimedia Operating Systems,” Proc. Second Symp. on Operating Systems Design and Implementation, USENIX, pp. 107-121, 1996.

GRAHAM, R.: “Use of High-Level Languages for System Programming,” Project MAC Report TM-13, M.I.T., Sept. 1970.

GRIFFIN, J.L., SCHLOSSER, S.W., GANGER, G.R., and NAGLE, D.F.: “Operating System Management of MEMS-based Storage Devices,” Proc. Fourth Symp. on Operating Systems Design and Implementation, USENIX, pp. 87-102, 2000.

GRIMM, R., and BERSHAD, B: “Security for Extensible Systems,” Proc. Hot Topics in Operating Systems VI, IEEE, pp. 62-66, 1997.

GRIWODZ, C., BAR, M., and WOLF, L.C.: “Long-Term Movie Popularity Models in Video-on-Demand Systems.” Proc. Fifth Int’l Conf. on Multimedia, ACM pp. 349-357, 1997.

GROPP, W., LUSK, E., and SKJELLUM, A.: Using MP1: Portable Parallel Programming with the Message Passing Interface, Cambridge, MA: M.I.T. Press, 1994.

GROSSMAN, D., and SILVERMAN, H.: “Placement of Records on a Secondary Storage Device to Minimize Access Time,” Journal of the ACM, vol. 20, pp. 429-438, 1973.

HAFNER, K., and MARKOFF, J.: Cyberpunk, New York: Simon and Schuster, 1991.

HAND, S.M.: “Self-Paging in the Nemesis Operating System,” Proc. Third Symp. on Operating Systems Design and Implementation, USENIX, pp. 73-86, 1999.

HARBRON, T.R.: File Systems, Upper Saddle River, NJ: Prentice Hall, 1988.

HARCHOL-BALTER, M., and DOWNEY, A.B.: “Exploiting Process Lifetime Distributions for Dynamic Load Balancing,” Proc. SIGMETRICS Conf. on Measurement and Modeling of Computer Systems, ACM, pp. 13-24, 1996.

HARRISON, M.A., RUZZO, W.L., and ULLMAN, J.D.: “Protection in Operating Systems,” Commun. of the ACM, vol. 19, pp. 461-471, Aug. 1976.

HART, J.M.: Win32 System Programming, Reading, MA: Addison-Wesley, 1997.

HARTIG, H., HOHMUTH, M., LIEDTKE, J., and SCHONBERG, S.: “The Performance of Kernel-Based Systems,” Proc. 16th Symp. on Operating Systems Principles, ACM, pp. 66-77, 1997.

HARTMAN, J.H., and OUSTERHOUT, J.K.: “The Zebra Striped Network File System,” Trans. on Computer Systems, vol. 13, pp. 274-310, Aug. 1995.

HAUSER, C., JACOBI, C., THEIMER, M., WELCH, B., and WEISER, M.: “Using Threads in Interactive Systems: A Case Study,” Proc. 14th Symp. on Operating Systems Principles, ACM, pp. 94-105, 1993.

HAVENDER, J.W.: “Avoiding Deadlock in Multitasking Systems.” IBM Systems Journal, vol. 7, pp. 74-84, 1968.

HEBBARD, B., et al.: “A Penetration Analysis of the Michigan Terminal System,” Operating Systems Review, vol. 14, pp. 7-20, Jan. 1980.

HEIDEMANN, J.S., and POPEK, G.J.: “File-System Development with Stackable Layers,” Trans. on Computer Systems, vol. 12. pp. 58-89, Feb. 1994.

HEYBEV, A., SULLIVAN, M., ENGLAND, P.: “Calliope: A Distributed Scalable Multimedia Server,” Proc. USENIX Annual Tech. Conf., USENIX, pp. 75-86, 1996.

HIPSON, P.D.: Mastering Windows 2000 Registry, Alameda, CA: Sybex, 2000.

HOARE, C.A.R.: “Monitors, An Operating System Structuring Concept,” Commun. of the ACM, vol. 17, pp. 549-557, Oct. 1974; Erratum in Commun. of the ACM, vol. 18. p. 95, Feb. 1975.

HOLT, R.C.: “Some Deadlock Properties of Computer Systems.” Computing Surveys, vol. 4, pp. 179-196, Sept. 1972.

HONEYMAN, P., ADAMSON, A., COFFMAN. K., JANAKIRAMAN, J., JERDONEK, R., and REES, J.: “Secure Videoconferencing,” The Seventh USENIX Security Symp., USENIX, pp. 123-133, 1998.

HOWARD, J.H., KAZAR, M.J., MENEES, S.G., NICHOLS, D.A., SATYANARAYANAN, M., SIDEBOTHAM, R.N., and WEST, M.J.: “Scale and Performance in a Distributed File System,” ACM Trans. on Computer Systems, vol. 6. pp. 55-81, Feb. 1988.

HUCK, J., and HAYS, J.:   “Architectural Support for Translation Table Management in Large Address Space Machines,” Proc. 20th Int’l Symp. on Computer Architecture, ACM, pp. 39-50, 1993.

HUTCHINSON, N.C., MANLEY, S., FEDERWISCH, M., HARRIS, G., HITZ, D., KLEIMAN, S., and O’MALLEY, S.: “Logical vs. Physical File System Backup,” Proc. Third Symp. on Operating Systems Design and Implementation, USENIX, pp. 239-249, 1999.

IEEE: Information Technology—Portable Operating System Interface (POSIX), Part 1: System Application Program Interface (API) [C Language], New York: Institute of Electrical and Electronics Engineers, Inc., 1990

ISLOOR, S.S., and MARSLAND, T.A.: “The Deadlock Problem: An Overview,” Computer, vol. 13, pp. 58-78, Sept. 1980.

ITZKOVITZ, A., and SCHUSTER, A.: “MultiView and Millipage—Fine-Grain Sharing in Page-Based DSMs,” Proc. Third Symp. on Operating Systems Design and Implementation, USENIX, pp. 215-228, 1999.

IVENS, K.: Optimizing the Windows Registry, Foster City, CA: IDG sites Worldwide, 1998.

JOHNSON, K.L., KAASHOEK, M.F., and WALLACH, D.A.: “CRL: High-Performance All-Software Distributed Shared Memory,” Proc. 15th Symp. on Operating Systems Principles, ACM, pp. 213-226, 1995.

JOHNSON, N.F., and JAJODIA, S.: “Exploring Steganography: Seeing the Unseen,” Computer, vol. 31, pp. 26-34, Feb. 1998.

JONES, M.B., ROSU, D., and ROSU, M.-C.: “CPU Reservations and Time Constraints Efficient, Predictable Scheduling of Independent Activities,” Proc. 16th Symp. on Operating Systems Principles, ACM, pp. 198-211, 1997.

KAASHOEK, M.F., ENGLER, D.R., GANGER, G.R., BRICENO, H., HUNT, R., MAZIERES, D., PINCKNEY, T., GRIMM, R., JANNOTTI, J., and MACKENZIE, K.: “Application Performance and Flexibility on Exokernel Systems,” Proc. 16th Symp. on Operating Systems Principles, ACM, pp. 52-65, 1997.

KABAY, M.: “Flashes from the Past,” Information Security, p. 17, 1997.

KALLAHALLA, M., and VARMAN, P.J.: “Optimal Read-Once Parallel Disk Scheduling,” Proc. Sixth Workshop on I/O in Parallel and Distributed Systems, ACM pp. 68-77 1999.

KARACALI, B., TAI, K.C., and VOUK, M.A.: “Deadlock Detection of EFSMs Using Simultaneous Reachability Analysis,” Proc. Int’l Conference on Dependable Systems and Networks (DSN 2000), IEEE, pp. 315-324, 2000.

KARLIN, A.R., LI, K., MANASSE, M.S., and OWICKI, S.: “Empirical Studies of Competitive Spinning for a Shared Memory Multiprocessor,” Proc. 13th Symp. on Operating Systems Principles, ACM, pp. 41-54, 1991.

KARLIN, A.R., MANASSE, M.S., McGEOCH, L., and OWICKI, S.: “Competitive Randomized Algorithms for Non-Uniform Problems,” Proc. First Annual ACM Symp. on Discrete Algorithms, ACM, pp. 301-309, 1989.

KARPOVICH, J.F., GRIMSHAW, A.S., and FRENCH, J.C.: “Extensible File System (ELFS): An Object-Oriented Approach to High Performance File I/O,” Proc. Ninth Annual Conf. on Object-Oriented Programming Systems, Language, and Applications, ACM, pp. 191-204, 1994.

KATCHER, D.I., KETTLER, K.A., end STROSNIDER, J.K.: “Real-Time Operating Systems for Multimedia Processing,” Proc. Hot Topics in Operating Systems V, IEEE, 1995.

KAUFMAN, C., PERLMAN, R., and SFECINER, M.: Network Security, Upper Saddle River, NJ: Prentice Hall, 1995.

KAVI, K., BROWNE, J.C., and TRIPATHI, A.: “Computer Systems Research: The Pressure is On,” Computer, vol. 32, pp. 30-39, Jan 1999.

KELEHER, P., COX, A., OWARKADAS, S., and ZWAENEPOEL, W.: “TreadMarks: Distributed Shared Memory on Standard Workstations and Operating Systems,” Proc. USENIX Winter 1994 Conf., USENIX, pp. 115-132, 1994.

KERNIGHAN, B.W., and PIKE, R.: The UNIX Programming Environment, Upper Saddle River, NJ: Prentice Hall, 1984.

KHALIDI, Y.A., and NELSON, M.N.: “Extensible File Systems in Spring,” Proc 14th Symp. on Operating Systems Principles, ACM, pp. 1-14, 1993.

KLEIN, D.V.: “Foiling the Cracker: A Survey of, and Improvements to, Password Security,” Proc. UNIX Security Workshop II, USENIX, Summer 1990.

KLEDNROCK, L.: Queueing Systems. Vol. 1, New York: John Wiley, 1975.

KLINE, R.L., and GLINERT, E.P.: “Improving GUI Accessibility for People with Low Vision,” Proc. Conf. on Human Factors in Computing Systems, ACM, pp. 114-121, 1995.

KNUTH, D.E.: The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Ed., Reading, MA: Addison-Wesley, 1973.

KOCHAN, S.G., and WOOD, P.H.: UNIX Shell Programming, Indianapolis, IN: Hayden sites, 1990.

KRAVETS, R., and KRISHNAN, P.: “Power Management Techniques for Mobile Communication,” Proc. Fourth ACM/IEEE Int’l Conf. on Mobile Computing and Networking, ACM/IEEE, pp. 157-168, 1998.

KRISHNAN, R.: “Timeshared Video-on-Demand: A Workable Solution,” IEEE Multimedia, vol. 6, Jan.-March 1999, pp. 77-79.

KRUEGER, P., LAI, T.-H., and DIXIT-RADIYA, V.A.: “Job Scheduling is More Important than Processor Allocation for Hypercube Computers,” IEEE Trans. on Parallel and Distr. Systems, vol. 5, pp. 488-497, May 1994.

KUMAR, V.P., and REDDY, S.M.: “Augmented Shuffle-Exchange Multistage Interconnection Networks,” Computer, vol. 20, pp. 30-40, June 1987.

KWOK, Y.-K., AHMAD, I.: “Static Scheduling Algorithms for Allocating Directed Task Graphs to Multiprocessors,” Computing Surveys, vol. 31, pp. 406-471, Dec. 1999.

LAMPORT, L.: “Password Authentication with Insecure Communication.” Commun. of the ACM, vol. 24, pp. 770-772, Nov. 1981.

LAMPSON, B.W.: “A Scheduling Philosophy for Multiprogramming Systems,” Commun. of the ACM, vol. 11, pp. 347-360. May 1968.

LAMPSON, B.W.: “A Note on the Confinement Problem,” Commun. of the ACM, vol. 10, pp. 613-615, Oct. 1973.

LAMPSON, B.W.: “Hints for Computer System Design,” IEEE Software, vol. 1, pp. 11-28, Jan. 1984.

LAMPSON, B.W., and STURGIS, H.E.: “Crash Recovery in a Distributed Data Storage System,” Xerox Palo Alto Research Center Technical Report, June 1979.

LANDWEHR, C.E.: “Formal Models of Computer Security,” Computing Surveys, vol. 13, pp. 247-278, Sept. 1981.

LANGENDOEN, K., BHOEDJANG, R., and BAL, H.E.: “Models for Asynchronous Message Passing,” IEEE Concurrency, vol. 5, pp. 28-37, April-June 1997.

LEBECK, A.R., FAN, X., ZENG, H., ELLIS, C.S.: “Power Aware Page Allocation,” Proc. Ninth Int’l Conf. on Architectural Support for Programming Languages and Operating Systems, ACM, 2000.

LEE, J.Y.B.: “Parallel Video Servers: A Tutorial,” IEEE Multimedia, vol. 5, pp. 20-28, April-June 1998.

LEE, W., SU, D., WIJESEKERA, D., SRIVASTAVA, J., KENCHAMMANA-HOSEKOTE, D., and FORESTI, M.: “Experimental Evaluation of PFS Continuous Media File System,” Proc. Sixth Int’l Conf. on Information and Knowledge Managements, ACM, pp. 246-253, 1997.

LESLIE, I., McAULEY, D., BLACK, R., ROSCOE, T., BARHAM, P., EVERS, D., FAIRBAIRNS, R., and HYDEN, E.: “The Design and Implementation of an Operating System to Support Distributed Multimedia Applications,” IEEE Journal on Selected Areas in Commun., vol. 14, pp. 1280-1297, July 1996.

LEVIN, R., COHEN, E.S., CORWIN, W.M., POLLACK, F.J., and WULF, W.A.: “Policy/Mechanism Separation in Hydra,” Proc. Fifth Symp. on Operating Systems Principles, ACM, pp. 132-140, 1975.

LEWINE, D.: POSIX Programmer’s Guide, Sebastopol, CA: O’Reilly & Associates, 1991.

LI, K.: “Shared Virtual Memory on Loosely Coupled Multiprocessors.” Ph.D. Thesis. Yale Univ., 1986.

LI, K., and HUDAK, P.: “Memory Coherence in Shared Virtual Memory Systems.” ACM Trans. on Computer Systems, vol. 7, pp. 321-359, Nov. 1989.

LI, K., KUMPF, R., HORTON, P., and ANDERSON, T.: “A Quantitative Analysis of Disk Drive Power Management in Portable Computers,” Proc. 1994 Winter Conf., USENIX, pp. 279-291, 1994.

LIEDTKE, J.: “Improving IPC by Kernel Design,” Proc. 14th Symp. on Operating Systems Principles, ACM, pp. 175-188, 1993.

LIEDTKE, J.: “On Micro-Kernel Construction,” Proc. 15th Symp. on Operating Systems Principles, ACM, pp. 237-250, 1995.

LIEDTKE, J.: “Toward Real Microkernels,” Commun. of the ACM, vol. 39. pp. 70-77, Sept. 1996.

LINDE, R.R.: “Operating System Penetration,” Proc. AFIPS National Computer Conf., AFIPS, pp. 361-368, 1975.

LIONS, J.: Lions’ Commentary on Unix 6th Edition, with Source Code, San Jose, CA: Peer-to-Peer Communications, 1996.

LIU, C.L., and LAYLAND, J.W.: “Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment,” Journal of the ACM, vol. 20, pp. 46-61, Jan. 1973.

LO, V.M.: “Heuristic Algorithms for Task Assignment in Distributed Systems,” Proc. Fourth Int’l Conf. on Distributed Computing Systems, IEEE, pp. 30-39, 1984.

LORCH, J.R., and SMITH, A.J.: “Reducing Processor Power Consumption by Improving Processor Time Management In a Single-User Operating System,” Proc. Second Int’l Conf. on Mobile Computing and Networking, ACM, pp. 143-154, 1996.

LORCH, J., and SMITH, A.J.: “Apple Macintosh’s Energy Consumption,” IEEE Micro, vol. 18, pp. 54-63, Nov./Dec. 1998.

LOUGHER, P., PEGLER, D., and SHEPHERD, D.: “Scalable Storage Servers for Digital Audio and Video,” Proc. IEE Int’l Conf. on Storage and Recording Systems, London-IEE, pp. 140-143, 1994.

LV, Y.-H., SIMUNIC, T., DE MICHELI, G.: “Software Controlled Power Management,” Proc. Seventh Int’l Workshop on Hardware/Software Codesign, ACM, pp 157-161, 1999.

LUDWIG, M.A.: The Giant Black site of Computer Viruses, 2nd ed., Show Low, AZ: American Eagle Publications, 1998.

LUMB, C.R., SCHINDLER, J., GANGER, G.R., and NAGLE, D.F.: “Towards Higher Disk Head Utilization: Extracting Free Bandwidth from Busy Disk Drives,” Proc. Fourth Symp. on Operating Systems Design and Implementation, USENIX, pp. 87-102, 2000.

MAEKAWA, M., OLDEHOEFT, A.E., and OLDEHOEFT, R.R.: Operating Systems: Advanced Concepts, Menlo Park, CA: Benjamin/Cummings, 1987.

MALKEWITZ, R.: “Head Pointing and Speech Control as a hands-free interface to Desktop Computing,” Proc. Third Int’l Conf on Assistive Technologies, ACM, pp. 182-188. 1998.

MANARIS, B., and HARKREADER, A.: “SUITEKeys: A Speech Understanding Interface for the Motor-Control Challenged,” Proc. Third Int’l Conf. on Assistive Technologies, ACM, pp. 108-115, 1998.

MARK, A.R.: “The Development of Destination-Specific Biometric Authentication,” Proc. Tenth Conf. on Computers, Freedom and Privacy, ACM, pp. 77-80, 2000.

MARKOWITZ, J.A.: “Voice Biometrics,” Commun. of the ACM, vol. 43, pp. 66-73, Sept. 2000.

MARSH, B.D., SCOTT, M.L., LEBLANC, T.J., and MARKATOS, E.P.: “First-Class User Level Threads,” Proc. 13th Symp. on Operating Systems Principles, ACM, pp. 110-121, 1991.

MATTHEWS, J.N., ROSELLI, D., COSTELLO, A.M., WANG, R.Y., and ANDERSON, T.E.: “Improving the Performance of Log-Structured File Systems with Adaptive Methods,” Proc. 16th Symp. on Operating Systems Prin., ACM, pp. 238-251, 1997.

MAXWELL, S.E.: Linux Core Kernel Commentary, Scottsdale, AZ: Coriolis, 1999.

MAZIERES, D., KAMINSKY, M., KAASHOEK, M.F., and WITCHEL, E.: “Separating Key Management from File System Security,” Proc. 17th Symp. on Operating Systems Principles, ACM, pp. 124-139, 1999.

McDANIEL, T.: “Magneto-Optical Data Storage,” Commun. of the ACM, vol. 43, pp. 57-63, Nov. 2000.

McKUSICK, M.K., BOSTIC, K., KARELS, M.J., and QUARTERMAN, J.S.: The Design and Implementation of the 4.4 BSD Operating System, Reading, MA: Addison-Wesley, 1996.

McKUSICK, M.J., JOY, W.N., LEFFLER, S.J., and FABRY, R.S.: “A Fast File System for UNIX,” ACM Trans. on Computer Systems, vol. 2, pp. 181-197, Aug. 1984.

MEDINETS, D.: UNIX Shell Programming Tools, New York, NY: McGraw-Hill, 1999.

MELLOR-CRUMMEY, J.M., and SCOTT, M.L.: “Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors,” ACM Trans. on Computer Systems, vol. 9, pp. 21-65, Feb. 1991.

MERCER, C.W.: “Operating System Support for Multimedia Applications,” Proc. Second Int’l Conf. on Multimedia, ACM, pp. 492-493, 1994.

MILLER, F.W.: “pk: A POSIX Threads Kernel,” FREENIX Track: USENIX Annual Technical Conference, USENIX, pp. 179-182, 1999.

MILOJICIC, D.: “Operating Systems: Now and in the Future,” IEEE Concurrency, vol. 7, pp. 12-21, Jan.-March 1999.

MILOJICIC, D.: “Security and Privacy,” IEEE Concurrency, vol. 8, pp. 70-79, April-June 2000.

MONROSE, F., and RUBIN, A.: “Authentication Via Keystroke Dynamics,” Proc. Conf. on Computer and Communications Security, ACM, pp. 48-56, 1997.

MORRIS, J.H., SATYANARAYANAN, M., CONNER, M.H., HOWARD, J.H., ROSENTHAL, D.S., and SMITH, F.D.: “Andrew: A Distributed Personal Computing Environment,” Commun. of the ACM, vol. 29, pp. 184-201, March 1986.

MORRIS, R., and THOMPSON, K.: “Password Security: A Case History,” Commun. of the ACM, vol. 22, pp. 594-597, Nov. 1979.

MULLENDER, S.J., and TANENBAUM, A.S.: “Immediate Files,” Software—Practice and Experience, vol. 14, pp. 365-368, April 1984.

MYERS, A.C., and LISKOV, B.: “A Decentralized Model for Information Flow Control,” Proc. 16th Symp. on Operating Systems Principles, ACM, pp. 129-142, 1997.

NACHENBERG, C: “Computer Virus-Antivirus Coevolution” Commun. of the ACM, vol. 40, pp. 46-51, Jan. 1997.

NEMETH, E., SNYDER, G., SEEBASS, S., and HEIN, T.R.: UNIX System Administration Handsite, 2nd ed., Upper Saddle River, NJ: Prentice Hall, 2000.

NEWHAM, C., and ROSENBLATT, B.: Learning the Bash Shell, Sebastopol, CA: O’Reilly & Associates, 1998.

NEWTON, G.: “Deadlock Prevention, Detection, and Resolution: An Annotated Bibliography,” Operating Systems Review, vol. 13, pp. 33-44, April 1979.

NIEH, J., and LAM, M.S.: “The Design, Implementation and Evaluation of SMART a Scheduler for Multimedia Applications,” Proc. 16th Symp. on Operating Systems Principles, ACM, pp. 184-197, 1997.

NIST (National Institute of Standards and Technology): FIPS Pub. 180-1, 1995.

NG, S.W.: “Advances in Disk Technology: Performance Issues,” Computer, vol. 31, pp. 75-81, May 1998.

NORTON, P., MUELLER, J., and MANSFIELD, R.: Complete Guide to Windows 2000 Professional, Indianapolis, IN: Sams, 2000.

OKI, B., PFLUEGL, M., SIEGEL, A., and SKEEN, D.: “The Information Bus—An Architecture for Extensible Distributed Systems,” Proc. 14th Symp. on Operating Systems Principles, ACM, pp. 58-68, 1993.

ONEY, W.: Programming the Microsoft Windows Driver Model, Redmond, WA: Microsoft Press, 1999.

ORGANICK, E.I.: The Multics System, Cambridge, MA: M.I.T. Press, 1972.

ORLOV, S.S.: “Volume Holographic Data Storage,” Commun. of the ACM, vol. 43, pp. 47-54, Nov. 2000.

OUSTERHOUT, J.K.: “Scheduling Techniques for Concurrent Systems,” Proc. Third Int’l Conf. on Distrib. Computing Systems, IEEE, pp. 22-30, 1982.

PAI, V.S., DRUSCHEL, P., and ZWAENEPOEL, W.: “IO-Lite: A Unified I/O Buffering and Caching System,” Trans. on Computer Systems, vol. 18, pp. 37-66, Feb. 2000.

PAKIN, S., KARAMCHETI, V., CHIEN, A.A.: “Fast Messages (FM): Efficient, Portable Communication for Workstation Clusters and Massively Parallel Processors,” IEEE Concurrency, vol. 5, pp. 60-73, April-June 1997.

PANKANTI, S., BOLLE, R.M., and JAIN, A.: “Biometrics: The Future of Identification,” Computer, vol. 33, pp. 46-49, Feb. 2000.

PATE, S.D.: UNIX Internals A Practical Approach, Reading, MA: Addison-Wesley, 1996.

PATTERSON, R.H., GIBSON, G.A., GINTING, E., STODOLSKY, D., and ZELENKA, J.: “Informed Prefetching and Caching,” Proc. 15th Symp. on Operating Systems Principles, ACM, pp. 79-95, 1995.

PATTERSON, D.A., GIBSON, G., and KATZ, R.: “A Case for Redundant Arrays of Inexpensive Disks (RAID),” Proc. ACM SIGMOD Int’l Conf. on Management of Data, ACM, pp. 109-166, 1988.

PENTLAND, A., and CHOUDHURY, T.: “Face Recognition for Smart Environments,” Computer, vol. 33, pp. 50-55, Feb. 2000.

PETERSON, C.L.: “Myths about the Mutual Exclusion Problem,” Information Processing Letters, vol. 12, pp. 115-116, June 1981.

PETROU, D., MILFORD, J., and GIBSON, G.: “Implementing Lottery Scheduling,” Proc. USENIX Annual Tech. Conf., USENIX, pp. 1-14, 1999.

PETZOLD, C.: Programming Windows, 5th ed., Redmond, WA: Microsoft Press, 1999.

PFLEEGER, C.P.: Security in Computing, 2nd ed., Upper Saddle River, NJ: Prentice Hall, 1997.

PHILBIN, J., EDLER, J., ANSHUS, O.J., DOUGLAS, C.C., and LI, K.: “Thread Scheduling for Cache Locality,” Proc. Seventh Int’l Conf. on Architectural Support for Programming Languages and Operating Systems, ACM, pp. 60-71, 1996.

PRECHELT, L.: “An Empirical Comparison of Seven Programming Languages,” Computer, vol. 33, pp. 23-29, Oct. 2000.

PROTIC, J., TOMASEVIC, M., and MILUTINOVIC, V.: Distributed Shared Memory: Concepts and Systems, Los Alamitos , CA: IEEE Computer Society, 1998.

RAWSON, F.L. III: “Experience with the Development of a Microkernel-Based, Multi-Server Operating System,” Proc. Hot Topics in Operating Systems VI, IEEE, pp. 2-7 1997.

RECTOR, B.E., and NEWCOMER, J.M.: Win32 Programming, Reading, MA: Addison-Wesley, 1997.

REDDY, A.L.N., and WYLLIE, J.C.: “Disk Scheduling in a Multimedia I/O System,” Proc. ACM Multimedia Conf., ACM, pp. 225-233, 1992.

REDDY, A.L.N., and WYLLIE, J.C: “I/O Issues in a Multimedia System,” Computer, vol. 27, pp. 69-74, March 1994.

RITCHIE, D.M.: “Reflections on Software Research,” Commun. of the ACM, vol. 27, pp. 758-760, Aug. 1984.

RITCHIE, D.M, and THOMPSON, K.: “The UNIX Timesharing System,” Commun. of the ACM, vol. 17, pp. 365-375, July 1974.

RIVEST, R.L.: “The MD5 Message-Digest Algorithm,” RFC 1320, April 1992.

RIVEST, R.L., SHAMIR, A., and ADLEMAN, L.: “On a Method for Obtaining Digital Signatures and Public Key Cryptosystems,” Commun. of the ACM, vol. 21, pp. 120-126, Feb. 1978.

ROBBING A.: UNIX in a Nutshell: A Desktop Quick Reference for SVR4 and Solaris 7, Sebastopol, CA: O’Reilly & Associates, 1999.

ROMPOGIANNAKIS, Y., NERJES, G., MUTH, P., PATERAKIS, M., TRIANTAFILLOU, P., and WEIKUM, G.: “Disk Scheduling for Mixed-Media Workloads in a Multimedia Server,” Proc. Sixth Int’l Conf. on Multimedia, ACM, pp. 297 -302, 1998.

KOSENBLUM, M., and OUSTERHOUT, J.K.: “The Design and Implementation of a Log-Structured File System,” Proc. 13th Symp. on Oper. Sys. Prin., ACM, pp. 1-15. 1991.

ROSELLI, D., and LORCH, J.R.: “A Comparison of File System Workloads,” Proc. USENIX Annual Tech. Conf., USENIX, pp. 41-54, 2000.

ROZIER, M., ABBROSSIMOV, V., ARMAND, F., BOULE, I., GIEN, M., GUILLEMONT, M., HERRMANN, F., KAISER, C. LEONARD, P., LANGLOIS, S., and NEUHAUSER, W.: “Chorus Distributed Operating Systems,” Computing Systems, vol. 1, pp. 305-379, Oct. 1988.

RUEMMLER, C., and WILKES, J.: “An Introduction to Disk Drive Modeling,” Computer, vol. 27, pp. 17-28, March 1994.

SACKMAN, H., ERIKSON, W.J., and GRANT, E.E.: “Exploratory Experimental Studies Comparing Online and Offline Programming Performance,” Commun. of the ACM, vol. 11, pp. 3-11, Jan. 1968.

SALTZER, J.H.: “Protection and Control of Information Sharing in MULTICS,” Commun. of the ACM, vol. 17, pp. 388-402, July 1974.

SALTZER, J.H., REED, D.P., and CLARK, D.D.: “End-to-End Arguments in System Design,” Trans. on Computer Systems, vol. 2, pp. 277-277, Nov. 1984.

SALTZER, J.H., and SCHROEDER, M.D.: “The Protection of Information in Computer Systems,” Proc. IEEE, vol. 63. pp. 1278-1308, Sept. 1975.

SALUS, P.H.: “UNIX At 25,” Byte, vol. 19, pp. 75-82, Oct. 1994.

SANDHU, R.S.: “Lattice-Based Access Control Models,” Computer, vol. 26, pp. 9-19, Nov. 1993.

SANTRY, D., FEELEY, M.J., HUTCHINSON, N.C., VEITCH, A.C.: “Elephant: The File System That Never Forgets,” Proc. Hot Topics in Operating Systems VII, IEEE, pp. 2-7, 1999a.

SANTRY, D., FEELEY, M., HUTCHINSON, N., VEITCH, A.C., CARTON, R.W., and OFIR, J.: “Deciding When to Forget in the Elephant File System,” Proc. 17th Symp. on Operating Systems Principles, ACM, pp. 110-123, 1999b.

SATYANARAYANAN, M., HOWARD, J.H., NICHOLS, D.N., SIDEBOTHAM, R.N., SPECTOR, A.Z., and WEST, M.J.: “The ITC Distributed File System: Principles and Design,” Proc. of the Tenth Symp. on Operating System Prin., ACM, pp. 35-50, 1985.

SAVAGE, S., BURROWS, M., NELSON, G., SOBALVARRO, P., and ANDERSON, T.: “Eraser: A Dynamic Data Race Detector for Multithreaded Programs,” Trans. on Computer Systems, vol. 15, pp. 391-411, Nov. 1997.

SCALES, D.J., and GHARACHORLOO, K.: “Towards Transparent and Efficient Software Distributed Shared Memory,” Proc. 16th Symp. on Operating Systems Principles, ACM, pp. 157-169, 1997.

SCHMIDT, B.K., LAM, M.S., and NORTHCUTT, J.D.: “The Interactive Performance of Slim: A Stateless, Thin-Client Architecture,” Proc. 17th Symp. on Operating Systems Principles, ACM, pp. 32-47, 1999.

SCOTT, M., LeBLANC, T., and MARSH, B.: “Multi-model Parallel Programming in Psyche,” Proc. Second ACM Symp. on Principles and Practice of Parallel Programming, ACM, pp. 70-78, 1990.

SEAWRIGHT, L.H., and MACKINNON, R.A.: “VM/370—A Study of Multiplicity and Usefulness,” IBM Systems Journal, vol. 18, pp. 4-17, 1979.

SEGARRA, M.-T., and ANDRI, F.: “MFS: a Mobile File System Using Generic System Services,” Proc. 1999 Symp. on Applied Computings, ACM, pp. 419-420, 1999.

SELTZER, M., ENDO, Y., SMALL, C., and SMITH, K.: “Dealing with Disaster: Surviving Misbehaved Kernel Extensions,” Proc. Second Symp. on Operating System Design and Implementation, USENIX, pp. 213-227, 1994.

SHENOY, P.J., and VIN, H.M.: “Efficient Striping Techniques for Variable Bit Rate Continuous Media File Servers,” Perf. Eval. Journal, vol. 38, pp. 175-199, 1999.

SHENOY, P.J., GOYAL, P., and VIN, H.M.: “Architectural Considerations for Next Generation File Systems,” Proc. Seventh Int’l Conf. on Multimedia, ACM, pp. 457-467 1999.

SILBERSCHATZ, A., GALVIN, P.B., and GAGNE, G: Applied Operating System Concepts, New York: Wiley, 2000.

SIMON, R.J.: Windows NT Win32 API SuperBible, Corte Madera, CA: Sams Publishing, 1997.

SITARAM, D., and DAN, A.: Multimedia Servers, San Francisco, CA: Morgan Kaufman, 2000.

SLAUGHTER, L., OARD, D.W., WARNICK, V.L., HARDING, J.L., and WILKERSON, G.J.: “A Graphical Interface for Speech-Based Retrieval,” Proc. Third ACM Conf. on Digital Libraries, ACM, pp. 305-306, 1998.

SMALL, C., and SELTZER, M.: “MiSFIT: constructing Safe Extensible Systems,” IEEE Concurrency, vol. 6, pp. 34-41, July-Sept. 1998.

SMITH, D.K., and ALEXANDER, R.C.: Fumbling the Future: How Xerox Invented, Then Ignored, the First Personal Computer, New York: William Morrow, 1988.

SNIR, M., OTTO, S.W., HUSS-LEDERMAN, S., WALKER, D.W., and DONGARRA, J.: MPI: The Complete Reference Manual, Cambridge, MA: M.I.T. Press, 1996.

SOLOMON, D.A., and RUSSINOVICH, M.E.: Inside Windows 2000, 3rd ed., Redmond, WA: Microsoft Press, 2000.

SPAFFORD, E., HEAPHY, K., and FERBRACHE, D.: Computer Viruses, Arlington, VA: ADAPSO, 1989.

STALLINGS, W.: Operating Systems, 4th Ed., Upper Saddle River, NJ: Prentice Hall, 2001.

STEENKISTE, P.A.: “A Systematic Approach to Host Interface Design for High-Speed Networks,” Computer, vol. 27, pp. 47-57, March 1994.

STEINMETZ, R., and NAHRSTEDT, K.: Multimedia: Computing, Communications and Applications, Upper Saddle River, NJ: Prentice Hall, 1995.

STENSTROM, P., HAGERSTEN, E., LILJA, D.J., MARTONOSI, M., and VENUGOPAL, M.: “Trends in Shared Memory Multiprocessing,” Computer, vol. 30, pp. 44-50, 1997.

STETS, R., DWARKADAS, S., HARDAVELLAS, N., HUNT, G., KONTOTHANASSIS, L., PARTHASARATHY, S., and SCOTT, M.: “Cashmere—2L Software Coherent Shared Memory on a Clustered Remote-Write Network,” Proc. 16th Symp. on Operating Systems Principles, ACM, pp. 170-183, 1997.

STEVENS, W.R.: Advanced Programming in the UNIX Environment, Reading MA: Addison-Wesley, 1992.

STOLL, C.: The Cuckoo’s Egg: Tracking a Spy through the Maze of Computer Espionage, New York: Doubleday, 1989.

STONE, H.S., and BOKHARI, S.H.: “Control of Distributed Processes,” Computer, vol. 11, pp. 97-106, July 1978.

TAI, K.C., and CARVER, R.H.: “VP: A New Operation for Semaphores,” Operating Systems Review, vol. 30, pp. 5-11, July 1996.

TALLURI, M., and HILL, M.D.: “Surpassing the TLB Performance of Superpages with Less Operating System Support,” Proc. Sixth Int’l Conf on Architectural Support for Programming Languages and Operating Systems, ACM, pp. 171-182, 1994.

TALLURI, M., HILL, M.D., and KHALIDI, Y.A.: “A New Page Table for 64-bit Address Spaces,” Proc. 15th Symp. on Operating Systems Prin., ACM, pp. 184-200, 1995.

TANENBAUM, A.S.: Operating Systems: Design and Implementation, Upper Saddle River, NJ: Prentice Hall, 1987.

TANENBAUM, A.S.: Computer Networks, Upper Saddle River, NJ: Prentice Hall, 1996.

TANENBAUM, A.S., VAN RENESSE, R., VAN STAVEREN, H., SHARP, G.J., MULLENDER, S.J., JANSEN, J., and VAN ROSSUM, G.: “Experiences with the Amoeba Distributed Operating System,” Commun. of the ACM, vol. 33, pp. 46-63, Dec. 1990.

TANENBAUM, A.S., and VAN STEEN, M.R.: Distributed Systems, Upper Saddle River, NJ: Prentice Hall, 2002.

TANENBAUM, A.S., and WOODHULL, A.S.: Operating Systems: Design and Implementation, 2nd ed., Upper Saddle River, NJ: Prentice Hall, 1997.

TAYLOR, R.N, MEDVIDOVIC, N., ANDERSON, K.M., WHITEHEAD, E.J., and ROBBINS, J.E.: “A Component- and Message-Based Architectural Style for GUI Software,” Proc. 17th Int’l Conf. on Software Engineering, ACM, pp. 295-304, 1995.

TEORY, T.J.: “Properties of Disk Scheduling Policies in Multiprogrammed Computer Systems,” Proc. AFIPS Fall Joint Computer Conf., AFIPS, pp. 1-11, 1972.

THEKKATH, C.A., MANN, T., and LEE, E.K.: “Frangipani: A Scalable Distributed File System,” Proc. 16th Symp. on Operating Systems Principles, ACM, pp. 224-237, 1997.

THOMPSON, K.: “Reflections on Trusting Trust,” Commun. of the ACM, vol. 27, pp. 761-763, Aug. 1984.

TRONO, J.A.: “Comments on Tagged Semaphores,” Operating Systems Review, vol. 34, pp. 7-11, Oct. 2000.

TUCKER, A., and GUPTA, A.: “Process Control and Scheduling Issues for Multiprogrammed Shared-Memory Multiprocessors,” Proc. 12th Symp. on Operating Systems Principles, ACM, pp. 159-166, 1989.

UHLIG, R., NAGLE, D., STANLEY, T., MUDGE, T., SECREST, S., and BROWN, R.: “Design Tradeoffs for Software-Managed TLBs,” ACM Trans. on Computer Systems, vol. 12, pp. 175-205, Aug. 1994.

VAHALIA, U.: UNIX Internals—The New Frontiers, Upper Saddle River, NJ: Prentice Hall, 1996.

VAN BUSKIRK, R., and LaLOMIA, M.: “A Comparison of Speech and Mouse/Keyboard GUI Navigation,” Conference Companion on Human Factors in Computing Systems, ACM, p. 96, 1995.

VAN DOORN, L.: The Design and Application of an Extensible Operating System, Ph.D. Thesis, Vrije Universiteit, Amsterdam, The Netherlands, 2001.

VAN DOORN, L., HOMBURG, P., and TANENBAUM, A.S.: “Paramecium: An Extensible Object-Based Kernel,” Proc. Hot Topics in Operating Systems V, IEEE, pp. 86-89, 1995.

VAN STEEN, M., HAUCK, F.J., BALLINTIJN, G., and TANENBAUM, A.S.: “Algorithmic Design of the Globe Wide-Area Location Service,” Computer Journal, vol. 41, pp. 207-310, 1998a.

VAN STEEN, M., HAUCK, F.J., HOMBURG, P., and TANENBAUM, A.S.: “Locating Objects in Wide-Area Systems,” IEEE Communications Magazine, vol. 36, pp. 104-109, Jan. 1998b.

VAN STEEN, M., HOMBURG, P., and TANENBAUM, A.S.: “Globe: A Wide-Area Distributed System,” IEEE Concurrency, vol. 7, pp. 70-78, Jan.-March 1999a.

VAN STEEN, M., TANENBAUM, A.S., KUZ, I., and SIPS, H.J.: “A Scalable Middleware Solution for Advanced Wide-Area Web Services,” Distributed Systems Engineering, vol. 7, pp. 34-42, 1999b.

VASWANI, R., and ZAHORJAN, J.: “The Implications of Cache Affinity on Processor Scheduling for Multiprogrammed Shared-Memory Multiprocessors,” Proc. 13th Symp. on Operating Systems Principles, ACM, pp. 26-40, 1991.

VENKATASUBRAMANIAN, N., and RAMANATHAN, S: “Load Management in Distributed Video Servers,” Proc. 17th Int’l Conf. on Distrib. Computing Systems, IEEE, pp. 528-535, 1997.

VINOSKI, S.: “CORBA: Integrating Diverse Applications within Distributed Heterogeneous Environments,” IEEE Communications Magazine, vol. 35, pp. 46-56, Feb 1997.

VISCAROLA, P.G., and MASON, W.A.: Windows NT Device Driver Development, Indianapolis, IN: Macmillan Technical Publishing, 1999.

VOGELS, W.: “File System Usage in Windows NT 4.0,” Proc. 17th Symp. on Operating Systems Principles, ACM, pp. 93-109, 1999.

VON EICKEN, T., BASU, A., BUCH, V., and VOGELS, W.: “U-Net: a User-Level Network Interface for Parallel and Distributed Computing,” Proc. 15th Symp. on Operating Systems Principles, ACM, pp. 40-53, 1995.

VON EICKEN, T., CULLER, D., GOLDSTEIN, S.C., SCHAUSER, K.E.: “Active Messages: A Mechanism for Integrated Communication and Computation,” Proc. 19th Int’l Symp. on Computer Architecture, ACM, pp. 256-266, 1992.

WAHBE, R., LUCCO, S., ANDERSON, T., and GRAHAM, S.: “Efficient Software-Based Fault Isolation,” Proc. 14th Symp. on Operating Systems Principles, ACM, pp. 203-216,1993.

WALDO, J.: “The Jini Architecture for Network-Centric Computing,” Commun. of the ACM, vol. 42, pp. 76-82, July 1999.

WALDO, J.: “Alive and Well: Jini Technology Today,” Computer, vol. 33, pp. 107-109, June 2000.

“Lottery Scheduling: Flexible Proportional-Share Resource Management,” Proc. First Symp. on Operating System Design and Implementation, USENIX, pp. 1-12, 1994.

WALKER, W., and CRAGON, H.G.: “Interrupt Processing in Concurrent Processors,” Computer, vol. 28, pp. 36-46, June 1995.

WAN, G., and LIN, E.: “A Dynamic Paging Scheme for Wireless Communication Systems,” Proc. Third Int’l Conf. on Mobile Computing and Networking, ACM/IEEE, pp. 195-203, 1997.

WANG, C., GOEBEL, V., and PLAGEMANN, T.: “Techniques to Increase Disk Access Locality in the Minorca Multimedia File System,” Proc. Seventh Int’l Conf. on Multimedia, ACM, pp. 147-150, 1999.

WANG, R.Y., ANDERSON, T.E., and PATTERSON, D.A.: “Virtual Log Based File Systems for a Programmable Disk,” Proc. Third Symp. on Operating Systems Design and Implementation, USENIX, pp. 29-43, 1999.

WEISER, M., WELCH, B., DEMERS, A., and SHENKER, S.: “Scheduling for Reduced CPU Energy,” Proc. First Symp. on Operating System Design and Implementation, USENIX, pp. 13-23, 1994.

WILKES, J., GOLDING, R., STAELIN, C, and SULLIVAN, T.: “The HP AutoRAID Hierarchical Storage System,” ACM Trans. on Computer Systems, vol. 14, pp. 108-136, Feb. 1996.

WIRTH, N.: “A Plea for Lean Software,” Computer, vol. 28, pp. 64-68, Feb. 1995.

WOLMAN, A., VOELKER, M., SHARMA, N., CARDWELL, N., KARLIN, A., and LEVY, H.M.: “On the Scale and Performance of Cooperative Web Proxy Caching,” Proc. 17th Symp. on Operating Systems Principles, ACM, pp. 16-31, 1999.

WONG, C.K.: Algorithmic Studies in Mass Storage Systems, New York: Computer Science Press, 1983.

WONG, P.C, and LEE, Y.B.: “Redundant Array of Inexpensive Servers (RAIS),” Proc. Int’l Conf. on Commun., IEEE, pp. 787-792, 1997.

WORTHINGTON, B.L., GANGER, G.R., and PATT, Y.N.: ‘Scheduling Algorithms for Modem Disk Drives,” Proc. 1994 Conf. on Measurement and Modeling of Computer Systems, pp. 241 -251, 1994.

WU, M., and SHU, W.: “Scheduling for Large-Scale Parallel Video Servers,” Proc. Sixth Symp. on Frontiers of Massively Parallel Computation, IEEE, pp. 126-133, 1996.

WULF, W.A., COHEN, E.S., CORWIN, W.M., JONES, A.K., LEVIN, R., PERSON, C., and POLLACK, F.J.: “HYDRA: The Kernel of a Multiprocessor Operating System,” Commun. of the ACM, vol. 17, pp. 337-345, June 1974.

YOUNG, M., TEVANIAN, A., Jr., RASHID, R., GOLUB, D., EPPINGER, J., CHEW, J., BOLOSKY, W., BLACK, D., and BARON, R.: “The Duality of Memory and Communication in the Implementation of a Multiprocessor Operating System,” Proc. 11th Symp. on Operating Systems Principles, ACM, pp. 63-76, 1987.

ZACHARY, G.P.: Showstopper, New York: Maxwell MacMillan, 1994.

ZAHORJAN, J., LAZOWSKA, E.D., and EAGER, D.L.: “The Effect of Scheduling Discipline on Spin Overhead in Shared Memory Parallel Systems,” IEEE Trans. on Parallel and Distr. Systems, vol. 2, pp. 180-198, April 1991.

ZEKAUSKAS, M.J., SAWDON, W.A., and BERSHAD, B.N.: “Software Write Detection for a Distributed Shared Memory,” Proc. First Symp. on Operating System Design and Implementation, USENIX, pp. 87-100, 1994.

ZOBEL, D.: “The Deadlock Problem: A Classifying Bibliography,” Operating Systems Review, vol. 17, pp. 6-16, Oct. 1983.

ZUBERI, K.M., PILLAI, P., and SHIN, K.G.: “EMERALDS: A Small-Memory Real-Time Microkernel,” Proc. 17th Symp. on Operating Systems Principles, ACM, pp. 277-299, 1999.

ZWICKY, E.D.: “Torture-Testing Backup and Archive Programs: Things You Ought to Know but Probably Would Rather Not,” Proc. Fifth Conf. on Large Installation Systems Admin., USENIX, pp. 181-190, 1991.