This course introduces the principles and techniques for the design and implementation of operating systems: interrupts, computer resource management (memory management, processor management, I/O management, file management, process management and security management,) and process communication. Additionally topics are: Job Control Language and batch processing, case study of some operating systems, Real Time OS, and Concurrent computations. This course includes a practical OS design project.
Recommended: A background in Data Structures and Algorithms or a course similar in content to COMP 2231.
At the successful completion of this course, students will be able to:
- Provide a clear description of the concepts and algorithms that underlie operating systems.
- Discuss fundamental concepts that are applicable to a variety of systems.
- Present a number of examples that pertain specifically to UNIX, Windows , Linux and other operating systems as time permits.
- Understand the algorithms for management of all computer resources.
- Conduct a comparative study of some operating systems.
- Apply a professional and ethical approach in operating systems design and implementation.
- Module 1: Introduction, and Computer System Structures (Chapter 1)
- Module 2: Operating System Structures (Chapter 2)
- Module 3: Processes (Chapter 3)
- Module 4: Threads (Chapter 4)
- Module 5: File System Interface (Chapter 10)
- Module 6: File System Implementation (Chapter 11)
- Module 7: CPU Scheduling (Chapter 5)
- Module 8: Process Synchronization (Chapter 6)
- Module 9: Deadlocks (Chapter 7)
- Module 10: Main Memory Management (Chapter 8)
- Module 11: Virtual Memory (Chapters 9)
Maximum Completion30 weeks.
Required Text and Materials
A. Silberschatz, P.B. Galvin, G. Gagne. Operating System Concepts with Java. 8th edition. John Wiley & Sons, 2010.
Type: Textbook ISBN: 978-0-470-50949-4
Computer with Internet access.
Java Programming Language.
Microsoft Office or other Office software to view Power Point presentations.
Open Learning Faculty Member Information
An Open Learning Faculty Member is available to assist students. Primary communication is through the Learning Environment's "Mail" tool or by phone. Students will receive the necessary contact information at the start of the course.
To successfully complete this course, students must obtain 50% or higher on the overall course, and 50% or higher on the final mandatory examination.
|Assignment 1: Multithread Programming||7%|
|Assignment 2: File Manipulation||8%|
|Assignment 3: Project Stage 1||7%|
|Assignment 4: Simulation of CPU Scheduling Algorithms||10%|
|Assignment 5: Project Stage 2||7%|
|Assignment 6: Project Stage 3||11%|
|Final Examination *||50%|