CSC521-E: Computer Operating Systems
Prof. B. Rosenberg
Fall Semester, 2006-07 (071)
MWF 12:20--1:10 PM
Memorial Building, Room 116
Announcements:
- See the
course blog for more fun.
- See to a past offering for a look at
this offerings future.
- Grading policy will include homeworks and projects.
- Final exam scheduled for 2-4:30, Wednesday December 6.
Textbooks
Notes
- Introduction:
- Processes, Scheduling and Synchronization
- Review of stacks, IP's, SP's, frames.
- Review interrupts, exceptions, traps, etc.
- Synchronous (Internal) versus async (external);
- programmed versus error (for internal);
- precise (restartable) versus imprecise (non-restartable) (for errors).
- Protection, MMU, processor modes.
- Process Control Block
- Kernel and User space, Context Switching.
- Threads
- Scheduling.
- Synchronization
- Peterson's Algorithm
- Spinlocks
- Semaphores
- Monitors
- Necessary conditions for Deadlock
- Mutual Exclusion
- Holding locks
- No Preemption
- Circular Wait
- Preventing Deadlock,
- using sharable resource,
- dropping locks on sleep
- Taking locks in a consistent order
- Avoiding deadlock
- Virtual Memory
- File Systems and Disk Systems
- General discussion
- Case
studies:
- Logical Volumes
-
- Global and Network file systemes.
- NFS
- SMB/CIFS
- Global File Sysems
- File system drivers, redirectors, and Virtual File Systems.
- Disk Systems
- RAID: Redundant Array of Inexpensive/Independent Disks
- SANS: Storage Area Networks
- Protection
- Software Engineering
- Open Source Movement,
- Release Engineering
- Vulnerability Management.
- Hackers and hacking
Readings and Exercises
- Read the linux book, chapters 1 through 3.
- Five paragraph essay defending or refuting the statement: The
browser is part of the operating system.
Due: Wed 30 Aug.
- Read the linux book, chapters 4 through 6.
- Build a linux kernel.
Due: Wed 13 Sept.
- Modify the kernel to include the new system call notnice,
a variant of nice but allows the user to change the priority
of any process. We will develop this in stages.
More
Due: stage one: Wed 20 Sept.
Due: stage two and three: Wed 27 Sept.
- Read Windows Internals, chapters 1, 2, 5 and 6.
- Write a short summary contrasting windows scheduling to
linux scheduling. Be specfic on the details such as number of levels,
methods to establish priority, classes of processes such as real-time
and system.
Due: Friday 22.
Example answer
-
Read Linux book, chapters 8, 9 and 10.
-
Writing: find 4 locks in the code of the linux kernel and
tell what data they protect and why.
Due: Friday 29.
- Read the NT book, chapter 7, and the Linux book, chapter 11.
- Read about file systems in the Linux and NT books.
- Submit an essay considering the use of Long Filenames in FAT.
You might also investigate the lawsuits surrounding patents on this
issue (see Wikipedia/FAT)
- Design a FAT file system and implement it in Linux using FUSE.
Hint: FAT-FUSE
Another Hint: fastfat.c
- Reading Linux and NT books on file drivers and virtual file systems.
- Read NT book chapter on NT protection.
- Due Friday 17, the FAT FUSE file systems.
- Read Protection Butler Lampson.
- Read the following papers:
- The
Cathedral and the Bazaar Eric Raymond.
- The Linux manageing model, Federic Iannacci. First Monday
- Transcript of Stallman's NYU speech
- FreeBSD Release Engineering, by Murray Stokely
- A modest proposal - we need a patch penguin, by Rob Landley
- Version management tools: CVS to BK in the
Linux Kernel, Maha Shaikh and Tony Cornford
- Release management with open source projects, Justin Erenkrantz.
References