Download Spring 2005 - Computer Science

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Security-focused operating system wikipedia , lookup

Plan 9 from Bell Labs wikipedia , lookup

Spring (operating system) wikipedia , lookup

CP/M wikipedia , lookup

Unix security wikipedia , lookup

Distributed operating system wikipedia , lookup

Transcript
COSC 5302-01
ADVANCED OPERATING SYSTEMS
Spring 2005
INSTRUCTOR: DR. LAWRENCE OSBORNE
OFFICE: 201 MAES
OFFICE HOURS: 8:00 a.m. to 10:00 a.m. MW, and by appointment
CLASS MAILING LIST: [email protected]
CLASS WEBPAGE: http://cs.lamar.edu
TEXTBOOKS: Andrew S. Tanenbaum & Maarten van Steen, Distributed
Systems: Principles and Paradigms, Prentice-Hall (2002) ISBN 0-13088893-1.
Robbins, Kay A., and Robbins, Steven, UNIX Systems Programming:
Communication, Concurrency, and Threads. Prentice-Hall Publishers,
(2003), ISBN 0-13-042411-0.
OTHER SOURCES: Coulouris, Dollimore, and Kindberg, Distributed
Systems: Concepts and Design, Third Edition,
Addison-Wesley, 2001.
Singhal and Shivaratri, Advanced Concepts in
Operating Systems, McGraw-Hill, Inc., 1994.
Tanenbaum, Modern Operating Systems, Second
Edition, Prentice-Hall, 2001.
Distributed Systems, ed. Mullender, Second Edition,
Addison-Wesley, 1993.
M.L. Liu, Distributed Computing, Principles and
Applications, Addison-Wesley, 2004. ISBN 0-20179644-9.
GRADING: Assigned Readings & Participation in Class 5 %
Midterm Exam: 20 %
Final Exam: 20 %
Homework and Three Quizzes: 30 %
Project: 25 %
A weighted average of your total points based on this grading scheme will determine
your final grade.
PREREQUISITES: Data Structures COSC 2371), Operating Systems
(COSC 4302), Computer Architecture (COSC 4310), and a course in
probability and statistics. Students should be familiar with C and socket
programming with UNIX system calls.
GOALS
This course is intended to be a second course in operating systems for graduate students
in computer science. The course is meant to provide a basic foundation in the design of
advanced operating systems. Therefore, instead of discussing the design and structure of
a specific operating system, the course emphasizes the fundamental concepts and
mechanisms which form the basis of the design of advanced operating systems. This
course provides an in-depth examination of the principles of distributed systems in
general, and distributed operating systems in particular. Covered topics include processes
and threads, concurrent programming, distributed interprocess communication, deadlock
protection, multiprocessor scheduling, distributed process scheduling, shared virtual
memory, distributed file systems, fault tolerance in distributed systems, distributed
middleware and applications such as the web and peer-to-peer systems. Some coverage
of operating system principles for multiprocessors will also be included. A brief overview
of advanced topics such as multimedia operating systems, real-time operating systems
and mobile computing will be provided, time permitting. The main emphasis is on the
various alternative approaches to the solution of problems encountered in the design of
distributed systems.
This course builds upon the topics covered in undergraduate operating systems course,
such as process synchronization, interprocess communication, and file system
organization. These topics are studied in the context of distributed systems.
Course Policies
The Computer Science Department Honesty Policy will be strictly enforced in
this course. Cheating on an examination or quiz will result in a zero on the exam. Since
your grade will be based on total points, a zero on either the midterm or the final will
reduce your final letter grade considerably. Academic dishonesty is an egregious offense
against the entire class and will not be tolerated. The final examination will be
comprehensive. If the midterm or the final is missed, a makeup exam will only be given
in the case of a documented illness or death in the family. The fact that your car does
not run or that you wish to be with your girlfriend/boyfriend at the hospital are examples
of excuses that will not be accepted. Students who plagiarize from the Internet or other
sources, those who copy source code from other students, and those students who
knowingly or unknowingly allow other students to copy from them will be penalized
with a zero on any homework assignments in which this occurs. Due dates for
assignments will be enforced. Late assignments will be penalized depending on the
length of the delay and the difficulty level of the assignment. They may not be accepted
at all.
It is the responsibility of the student to find out what assignments have been
missed after returning from an illness or other emergency. I feel no obligation to rescue
students who do not turn in assignments on schedule. In fact, I could not do that even if I
were so inclined.
Suggested Readings
General Readings

Overview Papers
1. Andrew S. Tannenbaum and Robbert van Renesse, ``Distributed
Operating Systems'', Computing Surveys, Vol. 17, No. 4, Pages 419-470,
December 1985
2. E. Levy and A. Silberschatz, ``Distributed File Systems: Concepts and
Examples'', ACM Computing Surveys, Vol. 22, No. 4, Pages 321-374,
December 1990

Distributed Computing
1. Jim Basney and Miron Livny, "Deploying a High Throughput Computing
Cluster", High Performance Cluster Computing, Rajkumar Buyya, Editor,
Vol. 1, Chapter 5, Prentice Hall PTR, May 1999.

2. The Worldwide Computer. An operating system spanning the Internet
would harness the power of millions of the world's networked PCs.
Scientific American, February 2002
Readings for Chapter 2 Communication

Remote Procedure Call
1. Andrew Birrell and Bruce Nelson, “Implementing RPCs”, ACM
Transactions on Computer Systems, Vol. 2, No. 1, Pages 39-59, February
1984.
2. B. Bershad, T. Anderson, E. Lazowska, and H. Levy, ``Lightweight
Remote Procedure Call'', Proceedings of the 12th ACM Symposium on
Operating Systems Principles, Operating Systems Review, Vol. 23, No. 5,
Pages 12-113, December 1989
3. Tutorials on RPC programming in UNIX and Linux and rpcgen
 Remote Procedure Calls I., Sun RPC, by Francisco Moya
Fernandez
 Remote Procedure Calls (RPC) at and
http://www.cs.cf.ac.uk/Dave/C/node33.html#SECTION003300000
000000000000
 Protocol Compiling and Lower Level RPC Programming tutorials
on RPC programming at
http://www.cs.cf.ac.uk/Dave/C/node34.html#SECTION003400000
000000000000
4. Waldo, “Remote Procedure Calls and Java Remote Method Invocation.”
IEEE Concurrency, vol. 6, no. 8, pp. 5-7, July 1998. Available at
http://www.mcs.vuw.ac.nz/courses/COMP413/2003T1/Handouts/waldo98
.pdf
5. Open Grid Architecture, at
http://www.globus.org/research/papers/ogsa.pdf
6. Foster, I., Kellselman, C., Nick, J., and S. Tueke, “Grid Services for
Distributed Integration”, IEEE Computer, June 2002, p. 37-46, found at
http://www.globus.org/research/papers/ieee-cs-2.pdf
Readings for Chapter 3 Processes

Process and Thread Management
1. Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy, ``The
Performance Implications of Thread Management Alternatives for SharedMemory Multiprocessors'', IEEE Transactions on Computers, Vol. 38, No.
12, Pages 1631-1644, December 1989
2. Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, and Henry
M. Levy, “Scheduler Activations: Effective Kernel Support for the UserLevel Management of Parallelism”, ACM Transactions on Computer
Systems, 10(1), February 1992, pp. 53-79, available at
http://citeseer.nj.nec.com/anderson92scheduler.html

Scheduling
1. D. L. Black, "Scheduling Support for Concurrency and Parallelism in the
Mach Operating System," IEEE Computer, 23, 5, Pages 35-43, May 1990.

Process Migration
1. F. Douglis and J. Ousterhout, ``Process Migration in the Sprite Operating
System'', In Proceedings of the IEEE International Conference on
Distributed Computing Systems, Berlin, Germany, Pages 18-25,
September 1987
2. M.Theimer, K.Lantz, D.Cheriton, ``Preemptable Remote Execution'',
Proceedings of the 10th SOSP, Operating Systems Review, Vol. 19, No. 5,
Pages 2-12, December 1985

Readings for Chapter 10: Distributed File Systems

Internet File Systems
1. S. Ghemawat, H. Bobioff, and S-T Leung, “The Google File System, “
SOSP 2003, New York, October 19-22, 2003. Available at
http://www.cs.rochester.edu/sosp2003/papers/p125-ghemawat.pdf
2.
Readings for Consistency and Replication

Shared Memory Computing
1. Christiana Amza, Alan L. Cox, Sandhya Dwarkadas, Pete Kelecher,
Honghui Lu, Ramakrishnan Rajamony, Weimin Yu, Willy Zwaenepoel,
“TreadMarks: Shared Memory Computing on Networks of
Workstations”, IEEE Computer, 29(2), 1996, p. 18-28.
2.
Readings for Distributed Resource Management and
Scheduling

Global Memory Management
1. M. Freeley, W. Morgan, F. Pighim, A. Karlin, H. Levy, and C. Thekkath,
“Implementing Global Memory Management in a Workstation Cluster”,
Proceedings of the 15th ACM Symposium on Operating Systems
Principles, December 1995.
2. A. Arpaci-Dusseau, D. Culler, A. Mainwaring, “Scheduling with Implicit
Information in Distributed Systems”, Sigmetrics’98 Conference on the
Measurement and Modeling of Computer Systems.
3. K. M. Chandy, J. Misra, and L. M. Haas, “Distributed Deadlock
Detection,” ACM Transactions on Computer Systems 1, 2(May 1983), pp.
144-156. Available in the ACM Digital Library.
4. Mamoru Maekawa, “ A SQRT(N) Algorithm for Mutual Exclusion in
Decentralized Systems,” ACM Transactions on Computer Systems, Vol.
3, No. 2, May 1985, p. 145-159.
Readings for Mobility

Supporting Mobility in an Operating System
1. M. Baker, X. Zhao, S. Cheshire, J. Stone, “Supporting Mobility in
MosquitoNet”, Proceedings of the 1996 USENIX Conference, San Diego,
CA, January 1996.
2. E. Jul, H. Levy, N. Hutchinson, A. Black, “Fine-Grained Mobility in the
Emerald System”, ACM Transactions on Computer Systems 6(1),
February 1988, pp. 109-133.
Readings in Distributed Systems

General Concepts
1. B. Walker, G. Popek, R. English, C. Kline, and G. Thiel, “The LOCUS
Distributed Operating System”, Proceedings of the 9th ACM Symnposium
on Operating Systems Principles, October 1983.
2. Leslie Lamport, “Time, Clocks, and the Ordering of Events in a
Distributed System”, Communications of the ACM, July 1978, pp. 558564.
Readings in Fault Tolerance and Reliable Systems

High-Availability Systems
1. J. Gray, D. Siewiorek, “High-Availabilty Computer Systems”, Computer
24, 9 (September 1991), pp. 39-48.
2. L. Lamport, R. Shostak, and M. Pease, “The Byzantine Generals
Problem”, ACM Transactions on Programming Languages and Systems,
July 1982, pp. 382-401.
3. S.C. Wang, and K.Q. Yan, “Revisiting Fault Diagnosis Agreement in a
New Territory,” Operating Systems Review, April 2004, pp. 41-61.
Readings in Security

Cryptosystems
1. R. Rivest, A. Shamir, and L. Adelmann, “A Method for Obtaining Digital
Signatures and Public-Key Crptosystems.” Communications of the ACM, 21:
120-126. February 1978.

Authentication
1. B. Clifford Neuman and Theodore Ts’o, “Kerberos: An Authentication Service
for Computer Networks”, IEEE Communications Magazine, Volume 32, Number
9, pages 33-38, September 1994.