Course Outline
Course Outline
Learning Up on the successful completion of the course students should be able to:
Outcomes Explain the objectives and functions of modern operating systems.
Describe how operating systems have evolved over time from primitive batch
systems to sophisticated multiuser systems.
Analyze the tradeoffs inherent in operating system design.
Describe the functions of a contemporary operating system with respect to
convenience, efficiency, and the ability to evolve.
Identify potential threats to operating systems and the security features design
to guard against them.
Describe how issues such as open source software and the increased use of the
Internet are influencing operating system design.
Course Content
Topic Duration(Week) Reading list
Chapter 1: Overview
1
1.1 Role and purpose of operating systems;
1.2 history of operating system development;
1.3 Functionality of a typical operating system;
1.4 Design issues (efficiency, robustness, flexibility, portability,
security, compatibility)
Chapter 2: Processes and Threads 2.3
2.1 Processes;
2.2 Threads;
2.2.1 Threads model
2.2.2 Thread Usage
2.2.3 Implementing Threads
2.3 Interposes Communication(IPC)
2.4 Scheduling algorithms
Chapter 3: Memory management (Main memory) 3-5
3.1 Background
3.2 Logical versus Physical Address Space
3.3 Swapping
3.4 Contiguous Allocation
3.5 Paging
3.6 Segmentation
3.7 Segmentation with Paging
3.8 Direct memory access;
Chapter 4: Processes management 5-8
4.1 Mutual exclusion: Definition of the “mutual exclusion” problem;
4.2 Deadlock detection and prevention;
4.3 Solution strategies;
4.4 Models and mechanisms (semaphores, monitors, condition
variables, rendezvous);
4.5 Interrupt handling in a concurrent environment
4.6 Producer-consumer problems;
4.7 Synchronization;
4.8 Multiprocessor issues
Chapter 5: CPU Scheduling
5.1 Preemptive and non-preemptive scheduling; 9-10
5.2 Scheduling policies;
5.3 Processes and threads;
5.4 Real-time issues
Chapter 6: 11
6.1 Device management: Characteristics of serial and parallel devices;
6.2 Abstracting device differences;
6.3 Buffering strategies;
6.4 Recovery from failures
Chapter 7: File System 12-13
7.1 File systems: Fundamental concepts (data, metadata, operations,
organization, buffering, sequential vs. nonsequential files);
7.2 Content and structure of directories;
7.3 File system techniques (partitioning, mounting and unmounting,
virtual file systems);
7.4 Memory-mapped files;
7.5 Special-purpose file systems;
7.6 Naming, searching, and access;
7.7 Backup strategies
Chapter 8: Security and protection 14-15
8.1 Overview of system security;
8.2 Policy/mechanism separation; security methods and devices;
protection, access, and authentication; models of protection;
8.3 Memory protection;
8.4 Encryption;
8.5 Recovery management
Teaching Strategy The course will be delivered in the form of lectures, demonstration, student
presentations, group discussions, and individual and group project works.
Attendance Lecture (80%) and Practice (100%)
Assessment The evaluation shall be based on both formative and summative assessment which
Criteria include:
Assessment Forms % of credit allotted
Lecture (100%)
Test 1 20
Assignments 10
Project 10
Lab Exam 10
Final examination 50
Role of Delivers lectures, prepares reading assignments and topics for group discussion,
Instructor(s) prepares projects by discussion with student, gives consultation and advises
students on project works and assignments, prepares and evaluates quiz,
assignment, midterm and final examination.
Role of Students Attend lectures, lab session and presentation, work in team on group work,
participate in group discussion, discusses with the instructor on topics of interest
for project work, delivers and presents project work, attend quiz, midterm and final
examination.
Required software Unix ,Linux
and/or hardware
Reference Text Book :
Operating Systems, 4th edition by W. Stalling (editor) Prentice-Hall 2001
Operating Systems: Internals and Design Principles, Fifth Edition
Andrew S. Tanenbaum (1992) Modern Operating Systems. Prentice-Hall
International Inc.
Operating System Concepts (7th Ed) by Silberschatz and Galvin, Wiley,
2000.
Operating Systems (5th Ed) – Internals and Design Principles By William
Stallings, Prentice Hall, 2000.
Modern Operating Systems by Andrew S Tanenbaum, Prentice Hall India,
1992.
Distributed Systems: Concepts and Design (3rd edition), George Coulouris,
Jean
Distributed Programming with Java, Qusay H. Mahmoud, Manning
Publications Co., 2000.
Distributed Systems: Principles and Paradigms, Andrew S. Tanenbaum and
Maarten van Steen