CPE
445
Operating Systems
Embedded operating systems (EOS) are known as real-time operating systems (RTOS) and also getting more pervasive in our daily lives. Topics of interest include basic OS functions, a relevant hardware review, interrupt sand interrupt handling, semaphores and peripheral I/O operations, real-time scheduling principles and implementation, latency, task management, shared data and synchronization, timers, message passing and memory management, timeline design and performance analysis using metrics and tests, understand RTOS and the resource management, quality of service issues, concurrency, firmware and ROM-resident system code, and debugging live systems. These concepts will be reinforced through C programming and assembly language assignments and project using the Linux operating system. Practical hands-on experience in building real-time applications running under an EOS.
Prerequisites:
0612207,0612363
0612445
(3-0-3)
Credits and Contact Hours
3 credits, 43 hours
Course Instructor Name
Dr. Sami Habib, Dr. Ahmed Nasrallah
Textbook
Operating System Concepts, A. Silberschatz, P. Galvin and G. Gagne, 10th Edition.
Catalog Description
This course will cover the basic design and principles of operating system design and implementation. Concurrent processes, inter-process communication, job and process scheduling; deadlock and race conditions. Issues in memory management (virtual memory, segmentation, and paging) and auxiliary storage management (file systems, directory structuring, and protection mechanisms). Students complete several small projects that exercise their understanding of the material presented in class.
Prerequisite
CpE-207 and CpE-363
Specific Goals for the Course
Upon successful completion of this course, students will be able to:
- Understand the relationship between the computer system and operating system (Student outcomes: 1, 2)
- Understand the mechanism of interrupts and how it is used within a computer system (Student outcomes: 1, 2)
- Specify the role of an operating system and its core modules - process management, memory management, I/O systems, protection and security. How these modules interact among themselves and how they interact with the computer system (Student outcomes: 1, 2)
- Analyze and design CPU scheduling techniques, and document the outcomes in a report (Student outcomes: 2, 5)
- Analyze and design process synchronization techniques, and document the outcomes in a report (Student outcomes: 2, 5)
- Analyze and design deadlock techniques, and document the outcomes in a report (Student outcomes: 2, 5)
- Analyze and design page replacement techniques, and document the outcomes in a report (Student outcomes: 2, 5)
Topics to Be Covered
- Introduction to history, computer systems, and operating systems
- Process and threads
- CPU scheduling and process synchronization
- Deadlock prevention and detecting techniques
- Memory management techniques
- Virtual memory concept
- File and peripheral systems
- Protection and security
- Virtual Machines