CS5460/6460: Operating Systems (Spring 2012)
|
This course is about the design and implementation of operating
systems, which provide a crucial layer of abstraction between hardward
and application programs. A knowledge of operating systems is
essential for understanding how large systems are put together.
Also see this blog entry
Why Take an Operating Systems
Course?
- lectures: Tues, Thurs at 12:25 PM-01:45 PM in WEB 1230
- instructor: John Regehr
- TAs:
- Chad Brubaker
- Ashwin Kumar
- Office hours (in the CADE lab, WEB L224 / L226)
-
Ashwin: Mon and Fri 3:00-4:00
-
Chad: Weds 10am-noon
-
John: after class
- prerequisites: CS 4400 and proficiency
in C programming
- class mailing list: cs5460@list.eng.utah.edu -- everyone
enrolled in the class must subscribe to
this list -- mail sent to this list goes to everyone
in the class so please use it wisely
- instructor+TA mailing list: teach-cs5460@list.eng.utah.edu -- use this to reach us instead of mailing us directly (don't subscribe to it)
- add/drop policy: the University is strict on this, see
here for
details and also keep the academic
calendar in mind
- incomplete policy: incompletes are a pain for everyone
involved; I won't give you one unless you have a documented legal or
medical emergency
Grading, Cooperation, and Cheating
|
Here is the current grade sheet.
Final grades will be calculated by combining project and exam grades as follows:
| Homework |
|
40% |
|
Assignments weighted equally |
| Midterm Exam |
|
25% |
| Final Exam |
|
35% |
Late policy:
Late homeworks will not be accepted unless you have a good excuse AND
you have made arrangements with me in advance.
Please read
the School of Computing's Cheating Policy, and also YOU MUST sign
a copy of the Acknowledgement
Form and return it to the SoC front office
Collaboration policy:
- Working with others on assignments is a good way to learn the
material and we encourage it. However, there are limits to the degree
of cooperation that we will permit.
- When working on programming assignments, you must work only with
others whose understanding of the material is approximately equal to
yours. In this situation, working together to find a good approach
for solving a programming problem is cooperation; listening while
someone dictates a solution is cheating. You must limit collaboration
to a high-level discussion of solution strategies, and stop short of
actually writing down a group answer. Anything that you hand in,
whether it is a written problem or a computer program, must be written
in your own words. If you base your solution on any other written
solution, you are cheating.
- When taking a quiz or exam, you must work completely independently
of everyone else. Any collaboration here, of course, is
cheating.
- We do not distinguish between cheaters who copy
other's work and cheaters who allow their work to be
copied. If you cheat, you will be given an E in the course
and referred to the University Student Behavior Committee. If you have
any questions about what constitutes cheating, please ask.
This schedule is always tentative, I always reserve the right to move
lectures around. However, exam dates are fixed once they appear here.
Due dates for homeworks and labs may rarely be moved later, but will
never be moved earlier.
| date |
topic | slides | reading | assignment |
| 1/10 |
intro | pdf |
|
|
| 1/11 |
|
|
| homework 1 assigned |
| 1/12 |
HW interface | pdf | Chapters 1 and 2 | |
| 1/17 |
OS organization | pdf | Chapter 3 |
|
| 1/18 |
|
|
| homework 1 due at noon |
| 1/19 |
process management | pdf |
|
|
| 1/24 |
processes and threads | pdf | Chapter 4 |
|
| 1/26 |
threads and scheduling | pdf | Ch. 4 and 5 | homework 2 assigned |
| 1/31 |
finish threads and scheduling, start synchronization | pdf | Ch. 6 |
|
| 2/2 |
synchronization | pdf |
|
|
| 2/7 |
critical sections | pdf |
| homework 2 due |
| 2/9 |
implementing synchronization | pdf |
| hw3 assigned |
| 2/14 |
deadlock | pdf |
|
|
| 2/16 |
using synchronization | pdf | Ch. 7 |
|
| 2/21 |
memory management intro | pdf | Ch. 8 |
|
| 2/23 |
paging | pdf |
| hw3 due |
| 2/28 |
demand paging | pdf | Ch. 9 |
|
| 3/1 |
page replacement | pdf |
|
|
| 3/6 |
intro to filesystems | pdf | Ch. 10 |
|
| 3/8 |
midterm exam |
|
|
|
| 3/13 |
spring break |
|
|
|
| 3/15 |
spring break |
|
|
|
| 3/20 |
filesystem implementation | (same as 3/6) |
|
|
| 3/22 |
filesystem implementation | pdf |
|
|
| 3/27 |
filesystem implementation | pdf |
|
|
| 3/29 |
go over exam | no slides |
|
|
| 4/3 |
time travelling VMs | no slides |
|
|
| 4/5 |
file system reliability | pdf |
|
|
| 4/10 |
file servers and clusters | pdf |
|
|
| 4/12 |
clusters and fault tolerance | pdf |
|
|
| 4/17 |
virtualization |
pdf |
| hw4 assigned |
| 4/19 |
security |
pdf |
|
|
| 4/24 |
the future |
pdf |
|
|
| 4/25 |
|
|
| hw4 due |
The final exam is on Tuesday, May 1, 2012 from 10:30 -- 12:30 pm
This page is maintained by John Regehr, mail me if you find a
mistake or if any content is unclear.