Home Up Questions?




A Reading List for A Course on Operating Systems




James L. Peterson




Department of Computer Sciences
The University of Texas at Austin
Austin, Texas 78712


January 1980







1. General Texts


P. Brinch Hansen, Operating System Principles, Prentice-Hall, 1973.

A. N. Habermann, Introduction to Operating System Design, SRA, 1976.

E. G. Coffman and P. J. Denning, Operating Systems Theory, Prentice-Hall, 1973.

A. C. Shaw, The Logical Design of Operating Systems, Prentice-Hall, 1974.



2. Early Case Studies


R. F. Rosin, "Supervisory and Monitor Systems", Computer Surveys, Volume 1, Number 1, (March 1969), pages 37-54.

F. J. Corbato, M. M. Dagget, and R. C. Daley, "An Experimental Time-Sharing System", AFIPS Conference Proceedings 21, (1962 SJCC), pages 335-344; reprinted in S. Rosen, "Programming Systems and Languages", McGraw-Hill, 1967, pages 683-698.

B. W. Lampson, W. W. Lichtenberger, and M. W. Pirtle, "A User Machine in a Time-Sharing System", Proceedings of the IEEE, Volume 54, Number 12, (December 1966), pages 1766-1774.

F. J. Corbato, J. H. Saltzer, and C. T. Clingen, "MULTICS - The First Seven Years", AFIPS Conference Proceedings 40, (1972 SJCC), pages 571-583; reprinted in P. A. Freeman, (Editor), Software Systems Principles: A Survey, SRA, 1975, pages 556-577.

A. S. Lett and W. L. Linigsford, "TSS/360: A Time-Shared Operating System", AFIPS Conference Proceedings 33, (1968 FJCC), pages 15-28.

M. T. Alexander, "Organization and Features of the Michigan Terminal Systems", AFIPS Conference Proceedings 40, (1972 SJCC), pages 585-591.

J. H. Howard, "A Large-Scale Dual Operating System", ACM 1973 National Conference, (October 1973), pages 242-248.



3. CPU Scheduling


P. Brinch Hansen, Operating System Principles, Prentice-Hall, 1973, pages 193-224.

T. C. Hu, "Parallel Sequencing and Assembly Line Problems", Operations Research, Volume 9, Number 6, (November 1961), pages 841-848.

R. L. Graham, "Bounds on Multiprocessing Timing Anomolies", SIAM Journal of Applied Mathematics, Volume 17, Number 2, (March 1969), pages 416-429.

B. W. Lampson, "A Scheduling Philosophy for Multiprocessing Systems", CACM, Volume 11, Number 5, (May 1968), pages 347-360.

E. G. Coffman and L. Kleinrock, "Computer Scheduling Methods and Their Countermeasures", AFIPS Conference Proceedings 32, (1968 SJCC), pages 11-21.

L. Kleinrock, "A Continuum of Time Sharing Scheduling Algorithms", AFIPS Conference Proceedings 36, (1970 SJCC), pages 453-458.

J. C. Browne, J. Lan, and F. Baskett, "The Interaction of Multiprogramming Job Scheduling and CPU Scheduling", AFIPS Conference Proceedings 41, (1972 FJCC), pages 13-21.

S. W. Sherman, F. Baskett, and J. C. Browne, "Trace-Driven Modeling and Analysis of CPU Scheduling in a Multiprogramming System", CACM, Volume 15, Number 12, (December 1972), pages 1063-1069.

R. R. Muntz, "Scheduling and Resource Allocation in Computer Systems", in P. A. Freeman, (Editor), Software Systems Principles: A Survey, SRA, 1975, pages 269-304.

P. J. Denning, K. C. Kahn, J. Leroudier, D. Potier, and R. Suri, "Optimal Multiprogramming", Acta Informatica, Volume 7, (1976), pages 197-216.

M. Ruschitzka and R. S. Fabry, "A Unifying Approach to Scheduling", CACM, Volume 20, Number 7, (July 1977), pages 469-476.

S. H. Bokhari, "Dual Processor Scheduling with Dynamic Reassignment", IEEE Transactions on Software Engineering, Volume SE-5, Number 4, (July 1979), pages 341-348.



4. Memory Management


L. A. Belady, R. A. Nelson, and G. S. Shedler, "An Anomaly in Space-Time Characteristics of Certain Programs Running in a Paging Machine", CACM, Volume 12, Number 6, (June 1969), pages 349-353.

E. Balkovich, W. Chiu, L. Presser, and R. Wood, "Dynamic Memory Repacking", CACM, Volume 17, Number 3, (March 1974), pages 133-136.

P. J. Denning, "Virtual Memory", Computing Surveys, Volume 2, Number 3, (September 1970), pages 153-189; reprinted in P. A. Freeman, (Editor), Software Systems Principles: A Survey, SRA, 1975, pages 204-256.

C. A. R. Hoare and R. M. McKeag, "A Survey of Store Management Techniques", in C. A. R. Hoare and R. H. Perrott, (Editors), Operating Systems Techniques, Academic Press, 1972, pages 117-151.

P. J. Denning and G. S. Graham, "Multi-programming Memory Management", Proceedings of the IEEE, Volume 63, Number 6, (June 1975), pages 924-939.

B. G. Prieve and R. S. Fabry, "VMIN - An Optimal Variable-Space Page Replacement Algorithm", CACM, Volume 19, Number 5, (May 1976), pages 295-297.

M. A. Franklin, G. S. Graham, and R. K. Gupta, "Anomalies with Variable Partition Paging Algorithms", CACM, Volume 21, Number 3, (March 1978), pages 232-236.

P. J. Denning and D. P. Slutz, "Generalized Working Sets for Segment Reference Strings", CACM, Volume 21, Number 9, (September 1978), pages 750-759.



5. Device Handling


P. J. Denning, "Effects of Scheduling on File Memory Operations", AFIPS Conference Proceedings 30, (1967 SJCC), pages 9-22.

T. J. Teorey and T. B. Pinkerton, "A Comparative Analysis of Disk Scheduling Policies", CACM, Volume 15, Number 3, (March 1972), pages 177-184.

N. C. Wilhelm, "An Anomaly in Disk Scheduling: A Comparison of FCFS Seek Scheduling Using an Empirical Model for Disk Access", CACM, Volume 19, Number 1, (January 1976), pages 13-17.

W. C. Lynch, "Do Disk Arms Move?", Performance Evaluation Review, Volume 1, Number 4, pages 3-16.

P. G. Heckel and B. W. Lampson, "A Terminal Oriented Communication System", CACM, Volume 20, Number 7, (July 1977), pages 486-494.



6. Deadlock


J. E. Murphy, "Resource Allocation with Interlock Detection in a Multi-Task System", AFIPS Conference Proceedings 38, (1968 FJCC), pages 1169-1176.

A. N. Habermann, "Prevention of System Deadlocks", CACM, Volume 12, Number 7, (July 1969), pages 373-378.

R. C. Holt, "Comments on Prevention of System Deadlocks", CACM, Volume 14, Number 1, (January 1971), pages 36-38.

E. G. Coffman, M. J. Elphick, and A. Shoshani, "System Deadlocks", Computing Surveys, Volume 3, Number 2, (June 1971), pages 67-78; reprinted in P. A. Freeman, (Editor), Software Systems Principles: A Survey, SRA, 1975, pages 153-166.

J. A. Howard, "Mixed Solutions to the Deadlock Problem", CACM, Volume 16, Number 7, (July 1973), pages 427-430.

A. N. Habermann, "A New Approach to Avoidance of System Deadlocks", in Operating Systems, Lecture Notes in Computer Sciences, Volume 16, Springer-Verlag, Berlin, 1974, pages 163-170.

R. DeVillers, "Game Interpretation of the Deadlock Avoidance Problem", CACM, Volume 20, Number 10, (October 1977), pages 741-746.



7. File Systems


R. C. Daley and P. G. Neumann, "A General-Purpose File System for Secondary Storage", AFIPS Conference Proceedings 27 (1965 FJCC), pages 213-229.

S. E. Madnick and J. W. Alsop, "A Modular Approach to File System Design", AFIPS Conference Proceedings 34, (1969 SJCC), pages 1-12; reprinted in P. A. Freeman, (Editor), Software Systems Principles: A Survey, SRA, 1975, pages 153-166.



8. Protection


B. W. Lampson, "Protection", Fifth Princeton Conference on Information and Systems Sciences, (March 1971), 437-443; reprinted in Operating Systems Review, Volume 8, Number 1, (January 1974), pages 18-24.

G. S. Graham and P. J. Denning, "Protection: Principles and Practices", AFIPS Conference Proceedings 40, (1972 SJCC), pages 417-429.

J. S. Fenton, "Memoryless Subsystems", Computer Journal 17, Number 2, (1974), pages 143-147.

B. W. Lampson, "A Note on the Confinement Problem", CACM, Volume 16, Number 10, (October 1973), 613.

R. S. Fabry, "Capability Based Addressing", CACM, Volume 17, Number 7, (July 1974), pages 403-411.

J. H. Saltzer and M. D. Schroeder, "The Protection of Information in Computer Systems", Proceedings of the IEEE, Volume 63, Number 9, (September 1975), pages 1278-1308.

D. E. Denning, "A Lattice Model of Secure Information Flow", CACM, Volume 19, Number 5, (May 1976), pages 236-242.



9. Synchronization


P. Brinch Hansen, Operating System Principles, Prentice-Hall, 1973, pages 55-122.

L. Lamport, "A New Solution of Dijkstra's Concurrent Programming Problem", CACM, Volume 17, Number 8, (August 1974), pages 453-455.

P. J. Courtois, F. Heymans, and D. L. Parnas, "Concurrent Control with 'Readers' and 'Writers'", CACM, Volume 14, Number 10, (October 1971), pages 667-668.

L. Lamport, "Concurrent Reading and Writing", CACM, Volume 20, Number 11, (November 1977), pages 806-811.

C. A. R. Hoare, "Monitors: An Operating System Structuring Concept", CACM, Volume 17, Number 10, (October 1974), pages 549-557; Corrigendum CACM, Volume 18, Number 2, (February 1975), page 95.

A. N. Habermann, "Synchronization of Communicating Processes", CACM, Volume 15, Number 3, (March 1972), pages 171-176.

J. H. Howard, "Proving Monitors", CACM, Volume 19, Number 5, (May 1976), pages 273-278.

C. A. R. Hoare, "Communicating Sequential Processes", CACM, Volume 21, Number 8, (August 1978), pages 666-677.

D. P. Reed and R. K. Kanodia, "Synchronization with Eventcounts and Sequences", CACM, Volume 22, Number 2, (February 1979), pages 115-123.

W. S. Ford, "Implementation of a Generalized Critical Region Construct", IEEE Transactions on Software Engineering, Volume SE-4, Number 6, (November 1978), pages 449-455.

J. R. McGraw and G. R. Andrews, "Access Control in Parallel Programs", IEEE Transactions on Software Engineering, Volume SE-5, Number 1, (January 1979), pages 1-9.

P. Kammerer, "Excluding Regions", Computer Journal 20, Number 2, (1977), pages 128-131.

L. Lamport, "Time, Clocks and the Ordering of Events in a Distributed System", CACM, Volume 21, Number 7, (July 1978), pages 558-564.

J. L. Baer, "A Survey of Some Theoretical Aspects of Multiprocessing", Computing Surveys, Volume 5, Number 1, (March 1973), pages 31-80.



10. Implementation


E. W. Dijkstra, "The Structure of the 'THE' Multiprogramming System", CACM, Volume 11, Number 5, (May 1968), pages 341-346.

J. P. Buzen and U. O. Gagliardi, "The Evolution of Virtual Machine Architecture", AFIPS Conference Proceedings 42, (1973 NCC), pages 291-299.

P. Brinch Hansen, "The Nucleous of a Multiprogramming System", CACM, Volume 13, Number 4, (April 1970), pages 238-241, 250.

D. C. Parnas, "A Technique for Software Module Specification with Examples", CACM, Volume 15, Number 5, (May 1972), pages 330-336.

D. L. Parnas, "On the Criteria to be Used in Decomposing Systems into Modules", CACM, Volume 15, Number 12, (December 1972), pages 1053-1058.

D. L. Parnas and D. P. Siewiorek, "Use of the Concept of Transparency in the Design of Hierarchically Structured Operating Systems", CACM, Volume 18, Number 7, (July 1975), pages 441-449.

P. Brinch Hansen, "The Programming Language Concurrent Pascal", IEEE Transactions on Software Engineering, Volume 1, Number 2, (June 1975), pages 199-207.

A. N. Habermann, L. Flon, and L. Cooprider, "Modularization and Hierarchy in a Family of Operating Systems", CACM, Volume 19, Number 5, (May 1976), pages 266-272.

B. Randell, "Operating Systems: The Problems of Performance and Reliability", IFIP 71, North-Holland, (1972), pages 281-290.



11. Later Case Studies


P. J. Denning, "Third Generation Computer Systems", Computing Surveys, Volume 3, Number 4, (December 1971), pages 175-216.

K. Sevcik, J. Atwood, M. Grushcow, R. Holt, J. Horning, and D. Tsichritzis, "Project SUE as a Learning Experience", AFIPS Conference Proceedings 41, (1972 FJCC), pages 331-338.

B. H. Liskov, "The Design of the Venus Operating System", CACM, Volume 15, Number 3, (March 1972), pages 144-149; reprinted in P. A. Freeman, (Editor), Software Systems Principles: A Survey, SRA, 1975, pages 542-552.

S. Lauesen, "A Large Semaphore Based Operating System", CACM, Volume 18, Number 7, (July 1975), pages 377-389.

F. Baskett, J. H. Howard, and J. T. Montague, "Task Communication in DEMOS", Sixth Symposium on Operating Systems Principles, West Lafayette, Indiana, (November 1977), pages 23-31.

D. M. Ritchie and K. Thompson, "The UNIX Time-Sharing System", CACM, Volume 17, Number 7, (July 1974), pages 365-375.

B. W. Lampson and H. Sturgis, "Reflections on an Operating System Design", CACM, Volume 19, Number 5, (May 1976), pages 251-265.

W. Wulf, R. Lewis, and C. Pierson, "Overview of the HYDRA Operating System Development", Fifth Symposium on Operating Systems Principles, Austin, Texas, (October 1975), pages 122-131.

R. Levin, E. Cohen, W. Corwin, F. Pollack, and W. Wulf, "Policy/Mechanism Separation in HYDRA", Fifth Symposium on Operating Systems Principles, Austin, Texas, (October 1975), pages 132-140.

D. G. Bobrow, J. D. Burchfiel, D. L. Murphy, and R. S. Tomlinson, "TENEX, A Paged Time-Sharing System for the PDP-10", CACM, Volume 15, Number 3, (March 1972), pages 135-143.

R. H. Thomas, "JSYS-Traps - A TENEX Mechanism for Encapsulation of User Processes", AFIPS Conference Proceedings 44, (1975 NCC), pages 351-360.

R. H. Thomas, "A Resource Sharing Executive for the ARPANET", AFIPS Conference Proceedings 42, (1973 NCC), pages 135-163.

D. R. Cheriton, M. A. Malcolm, L. S. Melen, and G. R. Sager, "Thoth, A Portable Operating System", CACM, Volume 22, Number 2, (February 1979), pages 105-114.
Home   Comments?