Operating System (IOPS332C, 3-2-0)

 

AUTUMN 2016-17
Section A (Wednesday 11:15-12:15, Friday 11:15-01:15)
Section C (Tuesday 9:00-11:00, Thursday 11:15-12:15)

Venue: Room-5154/5006, CC3 Building (First Floor)

 

 

 

 

Course Outline:

 

OS Basics : Definition, Operating Systems as resource manager, Evolution of OS, Structural overview,Types of OS; System Calls, Types of System Call, Hardware requirements: protection, context switching, privileged mode;

Process Management: Processes, Process Concept, Process Scheduling, Operations on Processes, Interprocess Communication;

Threads : Overview, Multithreading Models, Threads and their Management; Tools and Constructs for Concurrency, Detection and Prevention of deadlocks,

CPU Scheduling : Scheduling Criteria, Scheduling Algorithms, Multiple-Processor Scheduling

Process Synchronization : The Critical-Section Problem, Peterson's Solution, Synchronization Hardware, Monitors, Semaphores, Classic Problems of Synchronization

Deadlocks : System Model, Dynamic Resource Allocation, Deadlock Characterization, Methods for Handling Deadlocks, Deadlock Prevention, Deadlock Avoidance, Deadlock Detection, Recovery From Deadlock

Memory Management: Main Memory Basics, Swapping, Contiguous Memory Allocation, Paging, Structure of the Page Table, Segmentation, Basics of Virtual Memory, Demand Paging, Page Replacement, Allocation of Frames, Thrashing

Storage Management : Design of IO systems, File Management, Memory Management: paging, virtual memory management, Distributed and Multiprocessor Systems, Case Studies, File Concept, Protection, Access Methods, Directory Structure, File-System Mounting, File Sharing, File-System Structure File-System Implementation, Directory Implementation, Allocation Methods, Mass-Storage Structure, Overview of Mass-Storage, Disk Scheduling, Disk Management

xv6: The entire course will be based on the xv6 operating system (a teaching operating system developed in the summer of 2006 for MIT's operating systems course) https://pdos.csail.mit.edu/6.828/2014/xv6.html

 

 

References:

 

1.      Abraham Silberschatz Peter B. Galvin and Greg Gagne, Operating System Concepts, Wiley 8th Edition, 2008. [Slides Available Here]

2.      Garry. J. Nutt, Operating Systems: A Modern Perspective, Addison-Wesley

3.      Andrew S. Tanenbaum and Herbert Bros, Modern Operating Systems (4th Edition), Pearson

4.      William Stallings , Operating Systems: Internals and Design Principles, Prentice Hall of India

5.      D. M. Dhamdhere , Operating Systems: A Concept-Based Approach, Tata McGraw-Hill

5.      Russ Cox, Frans Kaashoek, Robert Morris , xv6: a simple, Unix-like teaching operating system [Download]

 

 

 

 

Important Instructions:

1.         Classes will be conducted using slide presentation as well as chalk-board. Official slide sets and miscellaneous study materials from some of the main text books will be uploaded on the web site on a regular basis.

2.         Every student is expected to have access to at least the book by Silberschatz-Galvin-Gagne.

3.         Attendance in the classes is mandatory. If the attendance of a student falls below 75%, he/she may expect a "F Grade"

4.         The course will consist of laboratory and take-home assignments, which has to be done very seriously. If a student does not submit the assignments, his/her grade will remain as incomplete.

5.         Grading Policy :

o   20%: Mid-semester examination (closed book/notes)

o   50%: End-semester examination (closed book/notes)

o   10%: Quiz (closed book/notes)

o   10%: Homework Assignments (open book/notes)

o   10%: Attendance

6.         Homework assignments : They will be assigned at the beginning of a module (announcements will be made on the course web-site). These assignments will help you prepare for your mid-sem and end-sem. You will have to explain your solution to the TAs during lab classes and you may be assigned group projects.

Announcements:

1.         Mid-sem Solutions

 

 

 

Lecture Slides:

Sl. No.

Topic

Slides

Homework Assignments

1.

Operating System Overview

Lecture1.pdf

HW Assignment1

2.

OS Fundamentals

Lecture2.pdf

HW_assignment2

3.

Process

Lecture3.pdf

HW_assignment3

4.

Threads

Lecture4.pdf

HW_assignment4

5.

Process Scheduling I

Lecture5.pdf

6.

Process Scheduling II

Lecture6.pdf

7.

Processs Synchronization I

Lecture9.pdf (Slides of Surender Chandra)

8.

Processs Synchronization II

Lecture10.pdf

HW_assignment5

9.

Processs Synchronization III

Lecture11.pdf