AY 2007-2008/Sem-2/ITM106 Operating Systems
From IIITM-k-wiki
Contents |
Course Objectives
In this course you will learn the basic concepts as well as concepts needed for designing modern operating systems. We will be discussing how the OS interfaces with the application software and the hardware of the computer system. We will investigate all of the key features of a modern operating system including process/thread scheduling and management, memory management, deadlock detection and avoidance, file management, disk scheduling and management, and some collection of advanced topics including security and distributed systems. Our philosophy behind the way the class is structured is that "you learn by doing". For this reason, this class has a significant implementation component and sufficient sets of "questions & answers" homework assignments. Due to the amount of implementation you will be expected to do, this class will have a lab associated with it and you will be working in groups of 2 or 3.
Instructor(s)
Coordinator
Dr. K. R. Srivathsan, Director, IIITM-K
Principal Instructor
Dr. Suresh Babu, TKM College of Engineering, Kollam
Associate Instructors
- Md. Meraj Uddin, Design Engineer, IIITM-K
- D S Reddy, Design Engineer, IIITM-K
- Rajesh R, Sr. Project Associate, IIITM-K
- Binu Mathew, Project Associate, IIITM-K
- Divya R, Project Associate, IIITM-K
Credits
4 [3 lectures + 1 Lab(2 hours)]
Class Hours
* Lecture: Tuesday 10.25 AM - 11.35 AM Park Centre Classroom * Lab: Tuesday 02.00 PM - 04.00 PM Park Centre Classroom * Lecture: Wednesday 10.25 AM - 11.35 AM Park Centre Classroom * Lecture: Friday 09.00 AM - 10.15 AM Park Centre Classroom
Syllabus
Learning Module I: Introduction I
1.1 Basic Concepts 1.2 Historical Perspective and Evolution 1.3 Computer System Operation 1.4 Operating System Components 1.5 Operating System Services 1.6 Operating System Structure 1.7 Operating System Functions
Learning Module II: Introduction II
2.1 System Calls 2.2 System Programs 2.3 Interrupts 2.4 Operating Systems view of Computer
Learning Module III: Process Management
3.1 Process Concept 3.2 Process Scheduling 3.3 Operations on Processes 3.4 Cooperating Processes 3.5 Basic Concepts of CPU Scheduling 3.6 Scheduling Criteria 3.7 Scheduling Algorithms 3.8 Multiple-Processor Scheduling 3.9 Real-Time Scheduling 3.10 Inter-Process Communication 3.11 Communication in Client ? Server Systems
Learning Module IV: Threads
4.1 Introduction to threads 4.2 Benefits of Threads 4.3 User and Kernel Threads 4.4 Multithreading Modules 4.5 Pthreads 4.6 Solaris 2 Threads 4.7 Window 2000 Threads 4.8 Linux Threads
Learning Module V: Process Synchronization
5.1 Introduction to Process Synchronization 5.2 Race Conditions 5.3 The Critical-Section Problem 5.4 Mutual Exclusion 5.5 Semaphores 5.6 Monitors
Learning Module VI: Deadlocks
6.1 Introduction to Deadlock 6.2 Deadlock Characterization 6.3 Methods for Handling Deadlocks 6.4 Deadlock Prevention 6.5 Deadlock Avoidance 6.6 Deadlock Detection 6.7 Recovery from Deadlock 6.8 Two Phase Locking
Learning Module VII: Memory Management
7.1 Introduction 7.2 Memory Management Functions 7.3 Memory Architecture Evolution 7.4 Swapping 7.5 Multiprogramming with Partitions 7.6 Contiguous Memory Allocation 7.7 Paging 7.8 Design issues for paging systems 7.9 Segmentation
Learning Module VIII: Virtual Memory
8.1 Virtual Memory concept 8.2 Demand Paging 8.3 Page Replacement 8.4 Allocation of Frames 8.5 Thrashing 8.6 Memory Management with bit maps, linked lists 8.7 Buddy Systems
Learning Module IX: File Systems
9.1 File Concepts 9.2 Access Methods 9.3 Directory Structure 9.4 Security and Protection 9.5 File-System Structure 9.6 Allocation Methods 9.7 Free-Space Management 9.8 Directory Implementation 9.9 Efficiency and Performance 9.10 Disk Scheduling 9.11 Log-Structured File System
Learning Module X: I/O Systems
10.1 Introduction 10.2 Principles of I/O hardware 10.3 Principles of I/O software 10.4 I/O Requests Handling 10.5 Transforming I/O to Hardware Operations 10.6 Kernel I/O Subsystem 10.7 Performance
Learning Module XI: Distributed Systems
11.1 Introduction to Distributed Systems 11.2 Design Issues 11.3 Sockets 11.4 Remote Procedure Calls 11.5 Remote Method Invocation 11.6 Object Registration 11.7 Event Ordering 11.8 Synchronization 11.9 Mutual Exclusion 11.10 Deadlock Handling 11.11 Election Algorithms
Learning Module XII: Protection
12.1 Goals of Protection 12.2 Domain of Protection 12.3 Access Matrix 12.4 Revocation of Access Rights 12.5 Language-Based Protection
Learning Module XIII: Security
13.1 The Security Problem 13.2 Authentication 13.3 Program Threats 13.4 System Threats 13.5 Threat Monitoring 13.6 Encryption 13.7 Computer-Security Classifications
Learning Module XIV: Case Study
14.1 Case Study I: UNIX AND LINUX 14.2 Case Study II: WINDOWS 2000
Prerequisites
- ITM-102: Computer Architecture and Organisation
- Basic Knowledge of Programming Language
Target Learner Groups
The course is primarily intended for the students of PGDIT of IIITM-K. But it is suitable for B. Tech [Computer Science and IT], MCA and MSc [Computer Science] Students, Faculty and Teaching Associates/Assistants associated with Operating Systems course in all the universities in Kerala.
TVI Based Lectures
Performance Evaluation
The following is the breakup of the different components and their respective weights in the final evaluation.
- TVI Sessions and Homework: 10%
- Practice Sessions practical exam: 15%
- Quizzes and Mid Term Exam: 25%
- Project work 25%
- Final Exam 25%
Course Schedule
Class Progress:
Sl Date Instructor Topics Covered
- 08-01-02 Prof. KRS, Meraj: Introduction and Philosophy of OS
- 08-01-08 Suresh Babu, MU, RR: Introduction to OS
- 08-01-08 Meraj, Binu, Rajesh <Lab>: Introduction and philosophy of linux and shell commands like: ls, cd, mkdir, pwd, cat, cp, mv
- 08-01-09 Meraj, Rajesh, Divya: Introduction to OS < TVI: Video Lecture 01>
- 08-01-15 Suresh Babu, Meraj, Rajesh: OS Services
- 08-01-15 Meraj, Binu, Rajesh <Lab>: Shell Commands: chmod, chown, chgrp, grep, locate, find
- 08-01-16 Meraj, Rajesh, Divya: Process Management-1 <TVI: Video Lecture 02>
- 08-01-22 Meraj, Rajesh <Lab>: Shell Commands: sort, cut, pipe, history, head and tail
- 08-01-23 Suresh Babu, Meraj, Rajesh, Divya: Process Concept
- 08-01-25 Meraj, Rajesh, Divya: Process Management-II <TVI: Video Lecture 03>
- 08-01-29 Rajesh, Divya: Process Management-II <TVI: Video Lecture 03>
- 08-01-29 Meraj <Lab>: Shell Commands: Mathematical Expressions Control Commands and Loops; Basic Shell Script
- 08-01-30 Meraj, Rajesh, Divya: Concurrent Processing I <TVI: Video Lecture 04>
- 08-01-31 KRS, Meraj: Tutorial
- 08-02-01 Meraj: Concurrent Processing II <TVI: Video Lecture 05>
- 08-02-05 Meraj, Rajesh: TVI: Video Lecture 05: Concurrent Processing II
- 08-02-05 Meraj: Lab: Shell Script
- 08-02-06 Meraj, Rajesh: TVI: Video Lecture 05: Concurrent Processing II
- 08-02-08 Meraj, Rajesh: TVI: Video Lecture 06: Concurrent Processing III
- 08-02-12 Meraj, Rajesh: TVI: Video Lecture 06: Concurrent Processing III
- 08-02-12 Meraj: Lab: Shell Script
- 08-02-13 Meraj, Rajesh: TVI: Video Lecture 06: Concurrent Processing III
- 08-02-15 Meraj, Rajesh: TVI: Video Lecture 07: Critical Section Problem – I
- 08-02-20 Meraj, Rajesh, Divya: TVI: Video Lecture 07: Critical Section Problem – I
- 08-02-20 Meraj, Rajesh, Divya: TVI: Video Lecture 08: Critical Section Problem – II
- 08-02-22 Meraj, Rajesh: Quiz01
- 08-02-23 KRS, Meraj: TVI: Video Lecture 08: Critical Section Problem – II
- 08-02-26 Meraj, Rajesh, Divya: Mid Term Exam
- 08-02-26 Meraj, Rajesh, Divya: Mid Term Lab Exam
- 08-03-04 KRS, Meraj: Tutorial on MidTerm Exam Paper
- 08-03-04 Meraj, Reddy, rajesh: Lab: SSH, Authentication
- 08-03-05 Meraj, Rajesh, Divya: TVI: Video Lecture 09: Critical Section Problem – III
- 08-03-05 Meraj, Rajesh, Divya: TVI: Video Lecture 09: Critical Section Problem – III
Recommended Textbooks
- Applied Operating System Concepts, By Avi Silberschatz and Peter Galvin, and Greg Gagne, WSE WILEY, 7th Edition 2007
- Operating Systems: A Modern Perspective, By Gary Nutt, Pearson Education Asia 2nd Edition 2000
- Operating Systems Design and Implementation, Second Edition By Andrew S. Tanenbaum Albert S.Woodhull
- Operating Systems, McGraw-Hill Book Company, New York By S. E. Madnick and J. J. Donovan
- Millenkovi C.M., "Operating System; Concepts & Design", Megraw Hill.
- Tanenbaum A.S., "Operating Systems Design and Implementations", Prentice Hall NJ.
- Silbersehatz A and Peterson, J.L "Operating System Concepts", Wiley
- Stalling William "Operating Systems", Maxwell Mchmillan International Editions 1992
Assignments
- TermPaper 01: Process Scheduling Techniques in Solaris, Linux and Windows
- Compare all the Process Scheduling Techniques discussed in the class
- Question Number 01 (Page Number 71) of Silberschaz book

