University: Ambo University Woliso Camas
College/Faculty: Informatics
Course Title: Operating System
Course Code: CoSc 3023
Credit Hrs.: 3 ECTS: 5 Lecture Hrs.: 2 Lab Hrs.: 3 Tutorial Hrs. 2
Prerequisite: CoSc2022 Computer Organization and Architecture
Course Category: Compulsory
Year III Semester I
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 Objectives
By the end of this course, students will be able to:
➢ Explain the objectives and functions of modern operating systems
➢ Describe the functions of a contemporary operating system with respect to convenience,
➢ efficiency, and the ability to evolve.
➢ Explain the different states that a task may pass through and the data structures needed to support
➢ the management of many tasks.
➢ Explain conditions that lead to deadlock.
➢ 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.
➢ Explain the concept of virtual memory and how it is realized in hardware and software
Course outline
Chapter 1: Introduction (4hr)
1.1. Role and purpose of operating systems
1.2. History of operating system development
1.3. Types of operating systems
Chapter 2: Processes and process management (7hr)
2.1. Process and Thread
2.2. The concept of multi-threading
2.3. Inter process communication
2.3.1. Race conditioning
2.3.2. Critical Sections and mutual exclusion
2.4. Process Scheduling
2.4.1. Preemptive and Computer organization and Architecture
non preemptive scheduling
2.4.2. Scheduling policies
2.5. Dead lock
2.5.1. Deadlock prevention
2.5.2. Deadlock detection
2.5.3. Deadlock avoidance
Chapter 3: Memory Management (7hr)
3.1. Over view of physical memory and memory management
3.1.1. Hardware overlays
3.1.2. Swapping
3.1.3. Partitioning
3.2. Paging and Segmentation
3.2.1. Page replacement and replacement policies
3.3. Working sets and thrashing
3.4. Caching
Chapter 4: Device Management (4hr)
4.1. Characteristics of parallel and serial devices
4.2. Buffering strategies
4.3. Direct memory access
4.4. recovery from failure
Chapter 5: File Systems (6hr)
5.1. Fundamental concepts on file
5.1.1. Data and meta data
5.1.2. Operations, organization and buffering in file
5.1.3. Sequential Vs Consequential data
5.1.4. Content and structure of directories
5.2. File system techniques
5.2.1. Partitioning
5.2.2. Mounting and unmounting
5.2.3. Virtual file system
5.2.4. Memory-mapped files
5.3. Special purpose file systems
5.3.1. Naming, searching and backup strategies
Chapter 6: Security and protection (4hr)
6.1. Overview of system security
6.1.1. Policies and mechanism of system security
6.2. System protection, authentication
6.2.1. Models of protection
6.2.2. Memory protection
6.2.3. Encryption
6.2.3. Recovery management
Teaching - Learning methods
Assessment method
Test #1 10%
Test # 2 10%
Final examination 35%
Assignments (two) 20%
Quizzes, reading assessment and tutorial contributions 15%
Lab Examination 10%
Total 100%
Teaching materials
Required Texts:
➢ Andrew Tanenbaum, Modern Operating Systems, 2nd Edition, USA,Prentice-Hall, 2001
Reference books:
➢ William Stallings, operating Systems: Internals and Design Principles, 5th Edition, Prentice-Hall,
2005
➢ Abraham Silberschatz, P.B. Galvin and G. Gagne, Operating Systems Concepts, 6 th Edition, John
Wiley &Sons ,2006
Operating Laboratory Outline
Week1 Basics of UNIX commands
Week2 C Program to simulate UNIX commands
Week3 Shell Programming
Week4 C programs to implement Different Scheduling algorithm
Week5 Implementation of Semaphore
Week6 Implementation of Shared memory and IPC
Week7 Banker Algorithm for Deadlock Avoidance
Week8 Implementation of deadlock avoidance algorithms
Week9 Implementation of Memory allocation methods for Fixed partition
First Fit
Worst Fit
Best Fit
Week10 Implementation of Page replacement algorithms
FIFO
LRU
LFU
Week11 Implementation of File Allocation strategies
Sequential
Indexed
Linked