Operating Systems, ICS 612
This page is
http://www2.ics.hawaii.edu/~esb/2007spring.ics612/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.
The organization of the course is described here. Please review it at the beginning
of the course and occasionally during the course. It includes
information about course goals, class time and location, contacting
the instructor, office hours, the
textbook,
grading, and the no cheating policy.
If you have any questions, please contact the instructor.
Schedule
This schedule is subject to change.
Presentation notes are in HTML. I usually post notes no later than the
day before the lecture.
This schedule is loosely based on the same course taught in the Fall 2004. If you wish to look
ahead, please refer to that courses, since the broad outline is very
similar.
- Jan 9. Introduction and Overview, Book, Chapter 1.
Outline
- course overview
- why study operating systems?
- theory and implementation
- a range of operating systems
- historical background
Assignment: read Chapter 1 in the textbook.
- Jan 11. Shells
Outline
- shells and window systems
- what is and what isn't part of the operating system?
- starting programs
- processes
- pipes
- scripting languages
Project 1 assigned, due Jan 25th
- Jan 16. Processes, Chapter 2
Outline
- processes
- process table
- schedulers
- interrupts and context switch
- layered operating system
Assignment: read Chapter 2 in the textbook.
- Jan 18. Posix System Calls, Chapter 1.
Outline
- Jan 23. IPC and synchronization, Chapter 2
Outline
- inter-process communication
- races
- pipes
- semaphores
- monitors
- message passing
- read-copy-update (RCU)
- Jan 25. Scheduling.
Outline
- scheduling
- round-robin scheduling
- priority scheduling
- modified priority scheduling
- real-time scheduling
- Minix scheduling
- Minix message passing
Project 2 assigned, due Feb 1st
- Jan 30. Context switch, execution, and booting.
Outline
- Minix context switch implementation
- Minix kernel synchronization
- Minix process suspension and reactivation
- a.out and kernel executable formats
- booting
- Feb 1. Input/Output, Chapter 3
Outline
- a.out and kernel executable formats
- booting
- I/O hardware
- DMA
- structure of I/O software
- deadlocks
Project 3 assigned, due Feb 16th
- Feb 6.
Minix clock driver, system task.
Outline
- structure of I/O software
- deadlocks
- Minix Clock Driver
- Feb 8. Minix System task, virtual memory, and I/O.
Outline
- Minix System Task
- Minix virtual memory
- overview of Minix I/O
Assignment: read Chapter 3 in the textbook.
- Feb 13. Minix Block devices, RAM disk.
Outline
- Minix Block Devices
- Minix RAM disk
- Feb 15. Minix hard disk and terminal driver.
Outline
- Minix RAM disk
- Minix hard disk driver
- Minix Terminal Driver
- Feb 20. Exam 1, covering all the material up to now.
Assignment: read Chapter 4 in the textbook.
- Feb 22. Minix hard disk driver.
Outline
- Feb 27. Minix terminal driver
Outline
Project 4 assigned, due March 7th.
- Mar 1. Memory Management. Chapter 4
Outline
- Memory Management: allocation, swapping, and paging
- paging
- virtual memory hardware
- minix memory management
- Mar 6. Paging and virtual memory.
Outline
- paging
- virtual memory hardware
- minix memory management
- Mar 8. Minix fork and exit.
Outline
- Mar 13. Minix exec. Modules.
Outline
Project 5 assigned, due March 22nd.
- Mar 15. Signals
Outline
- Unix/Posix signals
- Minix signals
- Mar 20. File Systems, Chapter 5
Outline
- file systems: user interface, API
Assignment: read Chapter 5 in the textbook.
- Mar 22. File system implementation.
Outline
- file system implementation
- Apr 3. Exam 2, covering Chapters 3 and 4 with an
emphasis on Chapter 4.
- Apr 5. File Systems.
Outline
- file system reliability
- log-structured (journaling) file systems
- file system performance
- Apr 10. Minix file system implementation.
Outline
- Minix FS in-memory data structures
Project 6 assigned, due May 1st.
- Apr 12. Minix file system implementation.
Outline
- Minix FS in-memory data structures
- Minix FS disk layout
- buffer cache
- Apr 17. Minix file system implementation.
Outline
- inodes and superblock
- opening files
- Apr 19.
Outline
- reading and writing files
- pipes
- linking and unlinking
- slow system calls
- Apr 24. Minix File System. Distributed computing overview.
Security overview.
Outline
- linking and unlinking
- distributed computing overview
- security overview
- multics security
- Apr 26. Student project 6 presentations.
- May 1. Review.
Outline
- operating systems overview
- interfaces: APIs, shells, window systems
- processes and threads, scheduling, interrupts, IPC and synchronization,
context switches
- exec, fork, memory management, signals
- I/O and device drivers
- file systems
- security
- operating system structure: distributed, cluster, and grid computing
- projects
- discussion
Course evaluations online.
The final exam covers the entire course. The final exam for this
course is on Tue, May 8 at 9:45am-11:45am in Kuykendall 302. The final may
be taken early if requested at least a week beforehand.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 License.