Operating System (IOPS332C, 3-1-1)

 

AUTUMN 2017-18
Section A (Wednesday 11:15-12:15, Friday 11:15-01:15)

Venue: Room-5106, CC3 Building

 

 

 

 

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 and Tutorials : Announcements for Tutorial classes (maximum likelihood for Saturdays every week) will be made on the course web-site. Homeworks will be posted on the website at the beginning of a module. These assignments will help you prepare for your mid-sem and end-sem. You will have to explain your solution to the TAs during tutorial classes.

Announcements:

1.         Quiz Solutions

2.         Mid-sem Solutions

 

 

 

Lecture Slides:

 

Sl. No.

Topic

Slides

Homework Assignments

1.

Introduction

Lecture 1

HW_assignment 1

2.

Process

Lecture 2

HW_assignment 2

3.

Scheduling

Lecture 3

HW_assignment 3

4.

Threads

Lecture 4

HW_assignment 4

5.

Inter Process Communication

Lecture 5

HW_assignment 5

6.

Processs Synchronization

Lecture 6

HW_assignment 6