Cs 703 Advanced Operating Systems Assignments Synonyms
CS 8803 GOS Graduate Introduction to Operating Systems
Fall 2009, MWF 11:05-11:55AM, CCB 101
- Instructor: Ada Gavrilovska, KACB 3228, 404 894 0387
Office Hours: Mon 10:30-11, Thur 3-3:30, or by appointment
- TA: Siva Subbiah, siva dot subbiah at gatech.edu
Office Hours: Mon 2-3pm, Thur 1-2pm, in open area in front of KACB 1201
- Suggested Textbooks:
- Class Newsgroup:
- Operating Systems Concepts, Silberschatz, Galvin, and Gagne, Seventh or Eighth Edition, John Wiley and Sons (recommended)
- Modern Operating Systems, 3rd ed, 2007, Andrew Tanenbaum, Prentice Hall
- Multithreaded Programming with Pthreads, Lewis and Berg, Prentice Hall
- Pthreads Programming, Nichols, Buttlar, Farrell, O'Reilly
- Distributed Systems, Tanenbaum and Van Steen, Prentice Hall
- Homework 0 -- no due date, optional
- Homework 1 -- due Mon., Sep 21st, @11:05am
- Project 1 -- due Tue. Sep. 29th @11:59pm
- Homework 2 -- due Fri., Oct. 9th, @11:05am
- Project 2 -- due Wed., Nov. 4th, @11:59pm (shared memory handouts in t-square)
- Homework 3 -- due Fri., Nov. 13th, @11:05am
- Project 3 -- due Tue., Dec. 1st, @11:59pm
- Homework 4 -- due Fri., Dec. 4th, @11:05am
OS and Processes Overview
Intro to Threads
|Silberschatz and Galvin Chapter 3.1-3.4|
Birrell "An Introduction to Programming with Threads"
|Multithreading and Treads Design Patterns|
Intro to Pthreads
|Silberschatz 4.4.1, 4.4.4-4.6, Lewis & Berg Ch. 5|
Lewis & Berg Ch.13, Nichols, et al. Ch. 2
Thread creation example, Producer/Consumer example
|Project 1 out|
|Thread library implementation issues:|
Kernel vs User-level threads
First Class Threads
|Eykholt et al. paper on Multithreading the SunOS kernel|
Stein and Shah "lightweight threads" paper
First-class user-level threads paper
|Scheduling||Silberschatz Ch. 5|
Chip Multithreading Systems Need a New Operating System Scheduler (talk slides)
reference: new Linux scheduler
|Mon 9/7 - Labor Day|
Deadlocks, Livelocks, and Priority Inversion
| Silberschatz Ch. 7|
What Really Happened on Mars (reference only)
Advanced Synchronization Constructs: Serializers, Path Expressions, RWLocks, and Semaphores
Spinlocks for SMPs
|Silberschatz Chapter 6.1-6.8, Lewis & Berg Ch.6|
Performance of Spinlock Alternatives for SMPs
|OS Structures, Microkernels, Virtualization||Silberschatz 2.7|
James E. Smith, Ravi Nair, "The Architecture of Virtual Machines", IEEE Computer (May 2005).
Rosenblum and Garfinkel, "Virtual Machine Monitors: Current Technology and Future Trends," IEEE Computer, May 2005. (IEEE Xplore)
|Mon 10/5 - Fall Recess|
|Mon 10/12: MIDTERM EXAM|
|handouts||Drop date: 10/16|
CERCS Industry Workshop keynote talks
|Flash: an Efficient and Portable Web Server, by Pai et al. See also the talk slides|
Tanenbaum and Van Steen 11.1
reference:Why Threads Are a Bad Idea (for most purposes)
Why Events Are a Bad Idea (for high-concurrency servers)
|User-level IPC for SMPs|
|Bershad et al. paper|
Implementing Remote Procedure Calls
Sun RPC handouts
|Advances in RPC (asynchronous RPC, RMI)|
Note on Distributed Computing
|A Note on Distributed Computing by Waldo, Wyant, Wollrath, Kendall.|
A Distributed Object Model for the Java System
|Distributed File Systems|
DFS case study: Sprite
|Tanenbaum Ch. 10 (2002 edition), Silberschatz and Galvin Ch. 17|
The Sprite file system (recommended paper: Caching in the Sprite Distributed File System by Nelson et al.)
|Distributed Shared Memory|
DSM and memory consistency models
|Distributed Shared Memory: Concepts and Systems|
Tanenbaum, Ch. 6.2
|Large-scale Cluster Services||Lessons from Giant-Scale Services|
|Hot Topics in Systems|
|Thur. 12/10 FINAL EXAM||8:00-10:00am|
Rm. CCB 101 (same as classroom)
Pointers to Technical Information:
AttendanceClass attendance is mandatory. Homeworks, assignments, and important dates will be also probably posted on the course web page, but this is provided as a complementary means of communication and is not always complete. Do not miss anything important because you skipped class, did not check your email, or did not look at the coursewebsite on a regular basis.
Office hours are optional. They are your chance to ask the professor and the TAs questions about the material being covered, the programming assignments, etc. There is a lab also, where more practical discussions will take place.
Academic Honesty: Collaboration vs. CheatingThis really should not be an issue, specially for a senior-level, honors course. We use the reasonable person principle: if everyone is reasonable, there is no need for rules. But to make things as clear as possible the following is necessary.
You are encouraged to discuss the course material and concepts with other students in the class. However, all work that you submit must be your own. Except for group projects, you may NOT allow anyone else's to code for you or show anyone else your code to help them. You may discuss the concepts used in the programming assignments, you may also discuss clever implementation details of the assignments themselves.
If you are caught copying or otherwise turning in work that is not solely your own, you will fail the course.
The bottom line is that you are expected to conduct yourself as a person of integrity: you are expected to adhere to the highest standards of academic integrity. This means that plagiarism1 in any form is completely unacceptable. As a (soon to be) computing professional, I encourage you to consult the code of ethics appropriate to your discipline2.
Plagiarism will be assumed (until disproved) on work that is very similar or essentially the same as that of other students. This includes identically incorrect, off-the-wall, and highly unusual duplicate answers where the probability of a sheer coincidence is extremely unlikely. All parties to this unacceptable collaboration will receive the same treatment.
You should bring a picture identification with you to all examinations and be prepared to show it upon request.
If you are unsure of what is and is not allowed by this policy, talk to the instructor.
1 pla-gia-rizevt. to steal and pass of as one's own (the ideas or words of another) to present as one's own an idea or product derived from an existing source - pla-gia-riz-ern. (source: Webster's New World Dictionary).
2 The Association for Computing Machinery is http://www.acm.org/, the IEEE is http://www.ieee.org/ and the IEEE Computer Society is http://www.computer.org/.
Getting Answers to your Questions (not necessarily in that order):