Skip to main content
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