AY 2007-2008/Sem-2/ITM106 Operating Systems

From IIITM-k-wiki

Jump to: navigation, search


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.

  1. TVI Sessions and Homework: 10%
  2. Practice Sessions practical exam: 15%
  3. Quizzes and Mid Term Exam: 25%
  4. Project work 25%
  5. Final Exam 25%


Course Schedule

Class Progress:

 Sl  Date	Instructor	       Topics Covered
  1. 08-01-02 Prof. KRS, Meraj: Introduction and Philosophy of OS
  2. 08-01-08 Suresh Babu, MU, RR: Introduction to OS
  3. 08-01-08 Meraj, Binu, Rajesh <Lab>: Introduction and philosophy of linux and shell commands like: ls, cd, mkdir, pwd, cat, cp, mv
  4. 08-01-09 Meraj, Rajesh, Divya: Introduction to OS < TVI: Video Lecture 01>
  5. 08-01-15 Suresh Babu, Meraj, Rajesh: OS Services
  6. 08-01-15 Meraj, Binu, Rajesh <Lab>: Shell Commands: chmod, chown, chgrp, grep, locate, find
  7. 08-01-16 Meraj, Rajesh, Divya: Process Management-1 <TVI: Video Lecture 02>
  8. 08-01-22 Meraj, Rajesh <Lab>: Shell Commands: sort, cut, pipe, history, head and tail
  9. 08-01-23 Suresh Babu, Meraj, Rajesh, Divya: Process Concept
  10. 08-01-25 Meraj, Rajesh, Divya: Process Management-II <TVI: Video Lecture 03>
  11. 08-01-29 Rajesh, Divya: Process Management-II <TVI: Video Lecture 03>
  12. 08-01-29 Meraj <Lab>: Shell Commands: Mathematical Expressions Control Commands and Loops; Basic Shell Script
  13. 08-01-30 Meraj, Rajesh, Divya: Concurrent Processing I <TVI: Video Lecture 04>
  14. 08-01-31 KRS, Meraj: Tutorial
  15. 08-02-01 Meraj: Concurrent Processing II <TVI: Video Lecture 05>
  16. 08-02-05 Meraj, Rajesh: TVI: Video Lecture 05: Concurrent Processing II
  17. 08-02-05 Meraj: Lab: Shell Script
  18. 08-02-06 Meraj, Rajesh: TVI: Video Lecture 05: Concurrent Processing II
  19. 08-02-08 Meraj, Rajesh: TVI: Video Lecture 06: Concurrent Processing III
  20. 08-02-12 Meraj, Rajesh: TVI: Video Lecture 06: Concurrent Processing III
  21. 08-02-12 Meraj: Lab: Shell Script
  22. 08-02-13 Meraj, Rajesh: TVI: Video Lecture 06: Concurrent Processing III
  23. 08-02-15 Meraj, Rajesh: TVI: Video Lecture 07: Critical Section Problem – I
  24. 08-02-20 Meraj, Rajesh, Divya: TVI: Video Lecture 07: Critical Section Problem – I
  25. 08-02-20 Meraj, Rajesh, Divya: TVI: Video Lecture 08: Critical Section Problem – II
  26. 08-02-22 Meraj, Rajesh: Quiz01
  27. 08-02-23 KRS, Meraj: TVI: Video Lecture 08: Critical Section Problem – II
  28. 08-02-26 Meraj, Rajesh, Divya: Mid Term Exam
  29. 08-02-26 Meraj, Rajesh, Divya: Mid Term Lab Exam
  30. 08-03-04 KRS, Meraj: Tutorial on MidTerm Exam Paper
  31. 08-03-04 Meraj, Reddy, rajesh: Lab: SSH, Authentication
  32. 08-03-05 Meraj, Rajesh, Divya: TVI: Video Lecture 09: Critical Section Problem – III
  33. 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

  1. TermPaper 01: Process Scheduling Techniques in Solaris, Linux and Windows
  2. Compare all the Process Scheduling Techniques discussed in the class
  3. Question Number 01 (Page Number 71) of Silberschaz book
Personal tools
<
May 2012
>
SMTWTFS
12345
6789101112
13141516171819
20212223242526
2728293031
Events Upcoming
More »