UNIVERSITY OF GONDAR
Faculty of Informatics
Department of Computer Science
Course Title: Operating System Course Code: CoSc-2042
Course ECTS: 6 ECTS (4 Cr. Hrs.) Lecture: 3Cr. Hrs. Lab: 1 Cr. Hrs. (3 Hrs.)
Target Group: Computer Science 2nd Year Academic Year: 2017/18 (Semester II)
Instructor: Dr. Manish Kumar Mishra Prerequisites: Computer Organization and Architecture
Course Description:
What is an Operating System, history of operating system, operating system zoo; process concept, process scheduling, inter-
process communication; threads; CPU scheduling, basic concepts, scheduling criteria, scheduling algorithms; process
synchronization, the critical section problem, semaphores, monitors, classical synchronization problems; deadlocks, avoidance,
prevention, detection; memory management, physical and virtual memory, swapping, allocation, paging, segmentation; file
systems, access methods, directory structure, file sharing and protection; security, authentication, intrusion detection, encryption.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
o Explain the objectives and functions of modern operating systems
o Describe the functions of a contemporary operating system with respect to convenience, efficiency, and the ability to
evolve.
o Explain the different states that a task may pass through and the data structures needed to support the management of
many tasks.
o Explain conditions that lead to deadlock.
o Compare and contrast the common algorithms used for both preemptive and non-preemptive scheduling of tasks in
operating systems, such as priority, performance comparison, and fair-share schemes.
o Explain the concept of virtual memory and how it is realized in hardware and software
Week/Date Topics to be discussed
Week 1 Overview
Role and purpose of operating systems
History of operating system development
Types of operating systems
Week 2 Processes and process management
The process concept
The threads concept
Multithreading and thread usage
Week 3 Processes and process management (Cont)
Inter-process communication
IPC and the race condition
Critical sections (or regions) and mutual exclusion
Week 4 Processes and process management (Cont)
Process scheduling
Preemptive and non preemptive scheduling
Scheduling policies
Week 5 Processes and process management (Cont)
Deadlock
Detection
Prevention
Avoidance
Week 6 Memory management
Review of physical memory and memory management hardware
Overlays, swapping, and partitions
Week 7 Memory management (Cont)
Paging and segmentation
Page placement and replacement policies
Week 8 Memory management (Cont)
Working sets and thrashing
Caching
Week 9 Device management
1
Characteristics of serial and parallel devices
Abstracting device differences
Week 10 Device management (Cont)
Buffering strategies
Direct memory access
Recovery from failures
Week 11 File systems
Fundamental concepts (data, metadata, operations, organization, buffering,
sequential vs. non sequential files)
Content and structure of directories
Week 12 File systems (Cont)
File system techniques (partitioning, mounting and unmounting, virtual file
systems)
Memory-mapped files
Week 13 File systems (Cont)
Special-purpose file systems
Naming, searching, and access
Backup strategies
Week 14 Security and protection
Overview of system security
Policy/mechanism separation
Security methods and devices
Week 15 Security and protection (Cont)
Protection, access, and authentication
Models of protection
Memory protection
Encryption
Recovery management
Week 16 FINAL EXAM
LAB EXAM
Assessment:
o Tests/Assignments//Quizzes/Reading Assessment = 50%
o Final Exam = 50%
Text book:
o Andrew Tanenbaum, Modern Operating Systems, 2nd Edition, USA, Prentice-Hall, 2001
Reference books:
o William Stallings, operating Systems: Internals and Design Principles, 5th Edition, Prentice-Hall, 2005
o Abraham Silberschatz, P.B. Galvin and G. Gagne, Operating Systems Concepts, 6th Edition, John Wiley &Sons ,2006