ICS 412: Operating Systems
This page is
http://www2.ics.hawaii.edu/~esb/2004spring.ics412/index.html
This page is subject to change without notice -- please reload it
in your browser if an item that might affect you may have changed.
Instructor: Edo Biagioni, esb@hawaii.edu. See here for office hours.
This class meets MW 12-1:15 in POST 127.
Goals
In this course, students will:
- gain a fundamental understanding of operating systems, focusing
on the fundamental principles of operating system design and
implementation.
- study operating systems practical importance, including Linux and
Windows.
- learn to modify and adapt existing operating system code
Organization
This course has homework assignments, projects, and exams.
All students are required to join the course
mailing list.
Grades are assigned based on your performance on:
- projects, worth a total of 40% of the grade
- homeworks, worth a total of 20% of the grade
- 3 midterm exams and a final, each worth 10% of the grade (total 40%)
Grading will use the (nearly) standard cutoffs of
97% (A+), 93% (A), 90% (A-), 87% (B+), 83% (B), 80% (B-), 77% (C+),
70% (C), 70% (C-), 67% (D+), 63% (D), 60% (D-). Depending on the
performance of the class as a whole, I may or may not grade more
generously (i.e. grade on a curve), but students should assume that I
will not.
Homeworks and projects must be turned in on time, and will only be
accepted late for very good reasons. You must do well on the
homeworks and projects to do well in this class. Exams may be taken
early, if requested at least two weeks before the scheduled time.
In this course, it is fine for students to collaborate on finding
solutions for homeworks and projects, but whatever you turn in must
have been written by you and be in your own words (and drawings, where
needed). You may only collaborate with other students who are taking
ICS 412 this semester -- collaborating with anybody else will
definitely be considered cheating. Some of the homework and project
solutions may be found on the web -- you are welcome to consult and
use such material, but if you do so:
- you MUST list the URL(s) from which your information is derived, and
- any answer must be entirely in your own words and reflect your
own knowledge and understanding
All homeworks are turned in individually, all project may be done
individually or in groups. Projects will require a computer on which
to install Linux. This may be a system you already own, perhaps that
you are willing to dual-boot, or may be a system borrowed for the
purpose (by way of the instructor) from the
Hawaii Open Source Education
Foundation. There is only a limited number of such loaner
systems, so if demand is high, you may be required to work in a group.
There are two textbooks. The first is "Modern Operating Systems",
by Andrew Tanenbaum (2nd edition, 2001). The textbook is available
from the UH bookstore and online sellers. The textbook has a home
page.
The second textbook is "Linux Kernel Development", by Robert Love
(1st edition, 2003). This textbook is not available from the UH
bookstore, but may be available from other bookstores in Honolulu
and online.
The textbook has a home
page.
Cheating Policy: any cheating will result in a grade of 0
for the assignment or exam the first time it is detected, and a grade
of F for the course for any subsequent instance. There is to be no
collaboration whatsoever on exams: you may study together, but
anything you turn in on an exam must be entirely your own intellectual
contribution. The outreach college's instructor's manual states, in
part:
Plagiarism includes, but is not limited to, submitting, to satisfy an
academic requirement, any document that has been copied in whole or in
part from another individual's work without identifying that
individual.
The UH
law school also has a good definition of plagiarism, including the
following:
The submission or presentation of any work, in any form, that is not a
student's own, without acknowledgment of the source.
If you have any questions, please contact the instructor.
I do re-use material, so I am always grateful when students can
suggest improvements or corrections to any notes. I normally
acknowledge authors of major new material, and do not acknowledge
people who suggest minor improvements.
Schedule
This schedule is subject to change.
Presentation notes are in HTML. I usually post notes no later than the
day before the lecture.
- Jan 12
Course overview. Overview of operating systems.
Materials Covered:
- introductions
- course overview
- What is an Operating System?
- What is interesting about Operating Systems?
- a Brief History
- OS concepts
- Operating System Structure
Read Tanenbaum, Chapter 1, by Jan 21st. Homework 1
assigned, due Jan 23rd.
- Jan 14.
Computer hardware, system calls.
Materials Covered:
- computer hardware review
- system calls
- Jan 21.
Processes, threads, and implementation.
Materials Covered:
- processes
- threads
- linux implementation
Read Tanenbaum, Chapter 2, and Love, Chapters 1, 2, and 3,
by February 2nd.
Project 1 assigned on Friday, January 23rd.
- Jan 26.
Schedulers.
Materials Covered:
- scheduler principles, example, tasks, algorithms, and implementation
- thread implementations
- Jan 28.
Inter-process communication.
Materials Covered:
- thread implementations
- inter-process communication
- classical IPC problems
- introduction to deadlock and deadlock prevention
- Feb 2
Exam 1, covering Chapters 1 and 2 of Tanenbaum (except IPC),
Chapters 1, 2, and 3 of Love, and the material covered so far in the
lectures.
- Feb 4.
Inter-process communication (continued), deadlock, system calls.
Materials Covered:
- inter-process communication: locks, semaphores, pipes
- classical IPC problems
- introduction to deadlock and deadlock prevention
Read Tanenbaum, Chapter 5, and Love, Chapters 4, 5 and 6, by February 18th.
Homework 2 assigned, due Feb 11th.
Added on May 27, 2004: an Unreliable
Guide To Locking
- Feb 9.
System call implementation, I/O hardware, I/O software
Materials Covered:
- system call implementation
- I/O principles: hardware and software
- Feb 11.
Disks, clocks.
Materials Covered:
- disks: structure, RAID, CD/DVD
- clocks
Project 2 assigned, due Monday, February 23rd.
- Feb 18.
Terminals, graphical devices, interrupt handlers, deferring work in Linux.
Materials Covered:
- terminals and displays
- interrupt handling in Linux
Read Love, Chapters 7, 8, and 9, by March 1st.
- Feb 23.
Deferring work in Linux, Linux time and timers.
Materials Covered:
- bottom halves
- linux kernel time
- Feb 25.
Linux kernel synchronization.
Materials Covered:
- concurrency in the kernel
- atomic operations
- spinlocks, preemption, and interrupts
- semaphores
- reader-writer locking and semaphores, seq locks
- barriers
- big kernel lock
- Mar 1.
Deadlock.
Materials Covered:
- barriers
- designing for concurrent execution
- locking data structures, not code
- achieving deadlock
- preventing deadlock
- curing deadlock
- contention and scalability
- Mar 3.
Exam 2, covering Tanenbaum Chapter 5 and Love Chapters 4, 5, 6,
7, 8, and 9.
Read Tanenbaum, Chapters 3 and 4, and Love, Chapter 10, by March 10th.
Homework 3 assigned, due March 10th.
- Mar 8.
Materials Covered:
- virtual memory
- page tables
- Translation Lookaside Buffer
- page replacement
- page faults
- Mar 10.
Materials Covered:
- page replacement
- page faults
- memory zones
- kernel memory allocation
- slab layer
Skim Tanenbaum, Chapter 7, and re-read Love, Chapter 9, by March 17th.
Subsequent to class discussion, I decided to post a simple
debugging memory allocator, mem.c, that I wrote
mainly to detect memory leaks.
- Mar 15.
Materials Covered:
- multimedia
- real-time scheduling: RMS, EDFS, and Linux
- Mar 17.
Materials Covered:
- real-time scheduling: RMS, EDFS, and Linux
- file systems: API
- file system organization
- sequential file allocation
Read Tanenbaum, Chapter 6, and Love, Chapters 11, 12, 13, and 14, by April 5th.
- Week of Mar 22.
Spring Break.
- Mar 29.
Materials Covered:
- file systems review
- sequential file allocation
- block file allocation
- inodes
- file system consistency
- journaling file systems
Project 3 assigned, due Monday, April 12th.
- Mar 31.
Materials Covered:
- filesystem and disk access layers
- the Virtual File System (VFS) layer
- VFS objects: superblocks, inodes, dentries, file objects, open file tables
- Block I/O
- I/O schedulers: deadline and anticipatory scheduling
- tradeoffs and performance
- Apr 5.
Materials Covered:
- Block I/O requirements
- I/O schedulers: deadline and anticipatory scheduling
- tradeoffs and performance
- address spaces and memory areas
- page table
- page cache
- tree algorithms
- Apr 7.
Exam 3., covering Tanenbaum, chapters 3, 4, 6, and the overall
concepts of 7, and Love, chapters 9, 10, 11, 12, 13, and 14.
Read Tanenbaum, Chapter 10, and Love, Chapters 15, 16, and p. 281
of Chapter 17, by April 14th.
- Apr 12.
Materials Covered:
- debugging an OS
- code portability
- similar but different operating systems: the Unix family
Homework 4 assigned, due April 19th.
- Apr 14.
Materials Covered:
- operating system portability
- the Unix family of operating systems
- Apr 19.
Materials Covered:
- Unix signals
- the Network File System (NFS)
- the Linux ext2 file system
Read Tanenbaum, Chapter 11, by April 21st.
- Apr 21.
Materials Covered:
- Microsoft Windows 2000
- brief history
- overview
- scheduler
- structure
- objects
- registry
- Apr 26.
Materials Covered:
- memory management
- I/O
- file system
- security
Read Tanenbaum, Chapter 12, and Love, Appendices A and B, by April 28th
- Apr 28.
Materials Covered:
- Goals and Principles
- Implementation challenges
- Data Structures
- OS Structure
- May 3.
Materials Covered:
- implementation issues
- operating system trends
- May 5.
Review of the entire course.
Materials Covered:
- resource management on computers
- scheduling: managing the CPU time
- processes and threads, inter-process communication, deadlock
- protection: managing access to memory, disk, other devices
- kernel mode and kernel entry points: system calls, context switches,
interrupts, delayed processing
- input/output: managing devices
- virtual memory: managing physical memory and backups to disk (overlays)
- disks and file systems: managing persistent storage, caching
Course evaluations, please bring a #2 pencil.
The final exam covers the entire course. The final exam for this
course is on Monday, May 10th at 12:00noon in POST 127.