OS C.out
OS C.out
College/Faculty:___________________________________________________
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
58
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
59
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
Test # 2
Final examination
Assignments (two)
10%
10%
35%
20%
Quizzes, reading assessment and tutorial contributions 15%
Lab Examination
Total
10%
100%
60
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
Shell Programming
Week3
Week4
C programs to implement Different Scheduling algorithm
Implementation of Semaphore
Week5
Week6
Implementation of Shared memory and IPC
Banker Algorithm for Deadlock Avoidance
Week7
Week8
Week9
Implementation of deadlock avoidance algorithms
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