Dr. Sonali Agarwal

Assistant Professor, Indian Institute of Information Technology, Allahabad, India

  Contact Details

  Dr. Sonali Agarwal
  Assistant Professor
  Room No.:5203, CC3 Building

  Indian Institute of Information   Technology Allahabad
  Devghat Jhalwa
  Allahabad (UP) INDIA

  Phone: 0532-2922424
  Web: www.sonaliagarwal.com

  E Mail: sonali@iiita.ac.in
  E Mail: raiagarwalsonali@gmail.com

  Subjects Taught

Operating System (IIOS332C)

Course Objective

The course provides an introduction to the design and implementation of operating systems. Topics covered include: concurrent processes, resource management, deadlocks, memory management, virtual memory, processor scheduling, disk scheduling, file systems, distributed file systems, micro kernels, multiprocessor operating system issues, case-studies. The labs place emphasis on hands-on experience with operating systems design. Students practice by using and constructing essential modules in operating systems, such as multiprogramming, memory management, implementation of unix-like shell functionality.

After successful completion of the course students will be able to demonstrate knowledge and understanding of:

  • The core functionality of modern operating systems.
  • Key concepts and algorithms in operating system implementations.
  • Implementation of simple OS components.

The students will also be able to:

  • Write programs that interface to the operating system at the system-call level.
  • Implement a piece of system-level code.
    • Syllabus
      • OS basics: Definition, OS as resource manager, Types of OS, Operating-System Services, Operating-System Structure, System Calls, Types of System Calls
      • Basics of Processor Management: Processes, Process Concept, Process Scheduling, Operations on Processes, Interprocess Communication
      • CPU Scheduling: Scheduling Criteria, Scheduling Algorithms, Multiple-Processor Scheduling
      • Deadlocks : System Model, Deadlock Characterization, Methods for Handling Deadlocks, Deadlock Prevention, Deadlock Avoidance, Deadlock Detection, Recovery From Deadlock
      • Threads: Overview, Multithreading Models
      • Process Synchronization : Monitors, The Critical-Section Problem, Peterson's Solution, Synchronization Hardware, Semaphores, Classic Problems of Synchronization
      • Basics of 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
      • Basics of Storage Management: 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
      • MINIX: Basic Commands, Directory Structure, Internal Architecture,Source Code organization ,All minix task assigned in Lab
      Lecture Slides

      Note: The contents of slides may undergo minor revisions. Please check the latest version before every class.

      S.No. Topics Assignments & Resources
      1 Operating System Fundamentals [slides]

      2 OS Operations and Structure [slides] ---
      3 Processes [slides] ---
      4 Scheduling [slides] ---
      5 Deadlock [slides] ---
      Threads [slides]
      7 Synchronization Semaphores, Condition Variables, and Monitors[slides] slides for Critical Section Implementation
      Memory Management [slides] ---
      Virtual memory and Paging [slides] ---
      Secondary Storage [slides] ---
      File Systems [slides] ---
      Lab Tasks

      S.No. Topics Lab Worksheets & Assignments
      Lab 1 Basics of Linux Commands [Resources]

      [Lab Worksheet 1]
      Lab 2 Linux Shell Scripting [Resources 1] [Resources 2]
      [Lab Worksheet 2]
      Lab3 Programming based on System Calls[Resources]
      [Lab Worksheet 3]
      Lab 4 Advance topics on System Call Implemetations and Threads [Resources]
      [Lab Worksheet 4]
      Lab 5 Programs based on Processor Scheduling, Deadlock [Resource 1] [Lab Worksheet 5]
      Lab 6 Programs based on Process Communication, Synchronization, Semaphores, Condition Variables and Monitors [Resource 1] [Resource 2] [Lab Worksheet 6]
      Lab 7 Programs based on Memory Management [Resources] [Lab Worksheet 7]
      Lab 8 Programs based on File Management [Resources] [Lab Worksheet 8]
      Lab 9
      Program Based on Disk Management[Resources] [Lab Worksheet 9]
      Lab 10
      Working with xv6 [Resources] [Lab Worksheet 10]
      Lab 13
      Working with Android Operating System [Resources] [Lab Worksheet 11]

      Working with Minix open source I[Resources 1] [Resource 2] [Resource 3]

      Working with Minix open source II [Resource 1] [Resource 2]


      • TBA
      Class Attendance
      • Abraham Silberschatz, Peter Baer Galvin and Greg Gagne, Operating System Concepts, 8/e, John Wiley & Sons, Inc., 2008
      • William Stallings, Operating Systems: Internals and Design Principles, Prentice Hall Complementary on-line contents
      • Operating Systems Design and Implementation, by Andrew S. Tanenbaum and Albert S.Woodhull, Prentice Hall.
      • Modern Operating Systems, by Andrew S. Tanenbaum, Prentice Hall.
      • Distributed Operating Systems, by Andrew S. Tanenbaum, Prentice Hall)
      • Operating Systems: Concurrent and distributed software design, by Jean bacon and Tim Harris, Addison Wesley.