Three 50-minute lectures per week. One 3-hour lab per week.(3-3-4)
Designation: Required Course
Course Level: Undergraduate
Prerequisite(s) by Topic:
- Algorithms and problem-solving.
- Fundamentals data structure.
- Assembly level machine organization.
- Memory system organization and architecture.
This course introduces the fundamentals of operating systems design and implementation. Topics include history and evolution of operating systems; Types of operating systems; Operating system structures; Process management: processes, threads, CPU scheduling, process synchronization; Memory management and virtual memory; File systems; I/O systems; Security and protection; Distributed systems; Case studies.
Operating System Concepts, 7th Ed. by Siblerschatz and Galvin, Addison Wesley, Inc, 2005.
Reference(s) and Other Material:
- Modern Operating Systems by Andrew S. Tanenbaum; 2nd Ed, 2003, Prentice Hall, Inc.
- Operating Systems by William Stallings. 3rd Ed. 1998. Prentice-Hall, Inc.
- After completion of this course, the student shall be able to:
- Recognize operating system types and structure.
- Describe OS support for processes and threads.
- Recognize CPU Scheduling, synchronization, and deadlock.
- Describe algorithms for handling synchronization, deadlock, and failure related to distributed systems.
- Explain OS support for virtual memory, disk scheduling, I/O, and file systems.
- Identify security and protection issues in computer systems.
- Use C and Unix commands, examine behavior and performance of Linux, and develop various system programs under Linux to make use of OS concepts related to process synchronization, shared memory, mailboxes, file systems, etc.
- Operating System Structure.
- CPU Scheduling.
- Process Synchronization.
- Distributed Systems.
- Memory Management.
- Virtual Memory.
- File System Interface and Implementation.
- I/O Systems and Mass Storage Structure.
- Security and Protection