| |
Course Description
This course will
introduce operating system principles and design techniques.
Real-life examples of these principles and techniques will be given from
popular operating systems such as Linux and FreeBSD. The course will involve
projects to get hand-on experience on the covered topics. The
following are
some of the
topics that will be covered in the course:
- Introduction to Computer
Systems and Operating Systems
- Processes
- Threads
- Inter-process Communication
- Scheduling
- Deadlocks: detection, recovery, avoidance
- Memory management, virtual memory
- Page replacement algorithms, models, paging systems
- Input/Output; Hardware and Software I/O
- Disks, clocks and terminals
- File systems; files and directories
- File system implementation
- Multiprocessor and multi-computer operating systems
- Distributed Systems
- Networking and networking
subsystem in an OS
- AFS distributed file system
- NFS network file system
- Aboeba distributed operating
system
- Freenet peer2peer system
Prerequisites:
- CS 101 and CS 224.
- Fluency in C programming,
since the projects will be done
using C.
|