CS 414: Introduction to Operating Systems

Summer 2001

MTWR 10:00 AM-11:15 AM, 211 Upson Hall

Instructor:

 

Lidong Zhou

4116 Upson Hall

ldzhou@cs.cornell.edu

 

TA:

 

Venugopalan Ramasubramanian (Rama)

5154 Upson Hall

ramasv@cs.cornell.edu

 


Course Overview. This course covers the basic topics of operation systems, including process scheduling, concurrency and synchronization, memory management, file systems, protection and security, and distributed systems. The goal of this course is to expose students to principles of system design and to help students gain some experience with system programming. Although operating system principles are the focus of the course, the techniques, issues, and insights covered in the course can be more generally applied to any future system design.

Course Information

 

Recent Announcements:

June 28, 2001:

The solution to the sleeping-barber problem using monitor is posted here.

Solution to the last homework assignment has been posted.

The final exam will be held in 205 Thurston Hall on July 2 (Monday) from 10:00am to 12:00pm. 

The TA will hold an extra office hour on Friday from 2:00pm to 3:00pm in 5154 Upson.

June 26, 2001:

My office hour on Thursday will be extended to 2 hours (2:00pm to 4:00pm) in 4116 Upson.

Check out the links to some interesting materials.

June 22, 2001:

More instructions to programming assignment 2 have been posted. 

Solutions to the mid-term and to the first programming assignment have been posted.

All announcements...

 

Midterm Questions and Solutions

Homework Assignment

    Homework 1 (in postscript) due on May 31, 2001. Solution (in html)

    Homework 2 (in postscript) due on June 28, 2001. A pdf version is here

                Solution (in html)

 

Programming Assignment

    Assignment 1  due on June 10, 2001. A written provisional text solution (one per team) may be submitted in class on June 6, 2001 for corrections. Instructions for submission have been posted.   Sample solution code: Semaphore.java and Solution.java.

    Assignment 2 has been updated, please read it carefully. All changes are marked. It is now due at 10:00pm on June 24, Sunday. Please do not change any classes provided and do not use any classes that are non-standard. Talk to the TA or the instructor if you think you have to.

More Instructions to Programming Assignment 2:

For the second programming assignment, part 3 (graphs), you can set the total number of pages for the experiments. Something between 30 to 200 might be reasonable. Play with different settings and report the one that seems the most interesting.

The idea of this assignment is for you to implement some algorithms and, more importantly, to do experiments. Think about what you expect these algorithms to behave in various settings (controlled by parameters that you can change) and see whether the actual observed behavior matches your expectation. If you find something strange, try to come up with a theory to explain it---you might have to try other things in order to support your theory. 

For your own algorithm, try to explain both the advantages and disadvantages,  and show whether your analysis is consistent with your experiments. If you want to go further, try to see if you can twist the initial algorithm to alleviate some disadvantages.

 

Reading Assignment

    Read Chapters 1, 2, and 3.1--3.4.

    Read Chapters 4.1 - 4.6 and 5.1 - 5.4.

    Read Chapters 6.1 - 6.7 and 7.

    Read Chapter 8.

    Read Chapters 9 and 10. 

    Read Chapters 11, 13.1, and 13.2.

    Read Chapters 19 and 20.

Other Readings:

 

Interesting Links:

 


 

Academic Integrity.  The code of academic integrity will be strictly enforced in this course. For written assignments, students are allowed to discuss with each other, but students should not, under any circumstances, cooperate on the actual writing of the solutions. Any written homework a student submits in this course should represents his/her individual work. Any collaboration, outside assistance (including solution sets posted on the web), or citation should be properly acknowledged. For programming assignments, students work in groups of two. While collaborations within each group is warranted, no inter-group collaborations are allowed.

Violation of the Academic Integrity Code could result in failure in the course, suspension, or expulsion from the university. If you have any question concerning academic integrity, ask the instructor or consult the official Cornell University code of academic integrity at http://www.cornell.edu/Academic/AIC.html. No claims of ignorance or misunderstanding of the rules will be accepted.


Last updated on June 28, 2001. Please send comments to ldzhou@cs.cornell.edu.