AY 2008-2009/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)
- Balu John, Assistant Professor, Govt Engg. College, Barton Hills, Tvm [Guest Faculty]
- Md. Meraj Uddin, Design Engineer, IIITM-K
- Rajesh R, Sr. Project Associate, IIITM-K
Credits
4 [3 lectures + 2 Labs(2 hours each)]
Class Hours
* Lecture: Tuesday 09.00 AM - 10.10 AM Park Centre Classroom * Lab: Tuesday 02.00 PM - 04.35 PM Park Centre Classroom * Lab: Wednesday 02.00 PM - 04.35 PM Park Centre Classroom * Lecture: Friday 02.00 PM - 03.10 PM Park Centre Classroom * Tutorial: Friday 03.25 PM - 04.35 PM 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.
Course Progress
Lab: Sessions
TVI: Lectures
Home Assignments
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 Lab Exam: 15%
- Quizzes 10%
- Mid Term Exam: 25%
- Term Paper 15%
- Final Exam 20%
- Attendance 05%
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

