Course Title: Operating Systems Course Code: CMP-3621 Course Structure: Lectures: 3/ Labs: 1 Credit Hours: 4 Pre-requisites: None Course Objectives: To help students gain a general understanding of the principles and concepts governing the functions of operating systems and acquaint students with the layered approach that makes design, implementation and operation of the complex OS possible. Course Syllabus: Computing Environments.Types and Generation of Operating-System.Key Components. Virtual Machines, System Calls, System Boot, System Programs. Processes, Process Scheduling, Operations on Processes, Inter-process Communication, Communication in ClientServer Systems. Threads: Multithreading Models, Thread Libraries, Threading Issues. CPU Scheduling, Scheduling Criteria, Scheduling Algorithms. Thread Scheduling, Algorithm Evaluation. Process Synchronization, The Critical-Section Problem, Peterson‘s Solution, Synchronization Hardware, Semaphores, Classic Problems of Synchronization. Deadlocks Conditions & Handling.Main Memory Management.Virtual Memory Management.FileSystem and Implementation. I/O Systems: STREAMS, Hardware, Performance, Application I/O Interface, Kernel I/O Subsystem, Transforming I/O Requests to Bibliographical Notes, Hardware Operations. Case studies: Linux, Windows Operating Systems. * Labs are preferred in this cours. Lab assignments involving different single and multithreaded OS algorithms. Course Outline: 1. Introduction: Over view of: Operating Systems, Operating-System Structure, Operating-System Operations, Process management, Memory Management, Storage Management, Protection and Security, Protection and Security, Distributed Systems, Special-Purpose Systems, Computing Environments. [TB: Ch1] 2. Operating-System Structures: Operating-System Services, Operating-System Structure, User Operating-System Interface, Virtual Machines, System Calls, OperatingSystem Generation, Types of System Calls, System Boot, System Programs. [TB:Ch2]. 3. Processes: Process Concept, Process Scheduling, Operations on Processes, Interprocess Communication, Communication in Client- Server Systems. Threads: Multithreading Models, Thread Libraries, Threading Issues. [TB: Ch. 3, 4] 4. CPU Scheduling: Basic Concepts, Scheduling Criteria, Scheduling Algorithms, Multiple-Processor Scheduling, Thread Scheduling, Algorithm Evaluation. [TB: Ch. 5] 5. Process Synchronization: Background, Monitors, The Critical-Section Problem, Peterson's Solution, Synchronization Hardware, Semaphores, Classic Problems of Synchronization. [TB: Ch. 6] 6. Deadlocks: System Model, Deadlock Characterization, Methods for Handling Deadlocks, Deadlock Prevention, Deadlock Avoidance, Deadlock Detection, Recovery from Deadlock. [TB: Ch. 7] 7. Main Memory: Swapping, Contiguous Memory Allocation, Paging, Structure of the Page Table, Segmentation, Example: The Intel Pentium. [TB: Ch.8] 8. Virtual Memory: Allocating Kernel Memory, Demand Paging, Copy-on-Write, Page Replacement, Allocation of Frames, Thrashing. [TB: Ch. 9] 9. File-System Implementation: File-System Structure, Log-Structured File Systems, File-System Implementation, Directory Implementation, Allocation Methods, FreeSpace Management, Efficiency and Performance, Recovery. [TB: Ch. 11] 10. I/O Systems: STREAMS, Hardware, Performance, Application I/O Interface, Kernel I/O Subsystem, Transforming I/O Requests to Bibliographical Notes, Hardware Operations. [TB: Ch. 13] 11. Security: The Security Problem, Computer-Security, Program Threats, Classifications, System and Network Threats, Cryptography as a Security Tool, User Authentication, Implementing Security Defenses, Firewalling to Protect Systems and Networks. [TB: Ch. 15] 12. Case studies: Linux, Windows Operating Systems Textbook(s): • Operating System Concepts Essentials by Abraham Silberschatz, Peter B. Galvin and Greg Agne, Wiley; 8th Edition (July 5, 2008). ISBN-10: 0470128720 Reference Material: • Applied Operating Systems Concepts by Silberschatz A., Peterson, J.L., & Galvin P.C. Wiley; 8th Edition (2011). ISBN-10: 1118112733 Modern Operating Systems by Tanenmaum A.S., Prentice Hall; 3rd Edition (2007). ISBN-13: 978-0136006633