Textbooks: Operating System Concepts, 9th edition, Silberschatz, Galvin and Gagne

Reference Books: Advanced Programming in Unix Environment, W.Richard Stevens,

Unix Network Programming, vol.2, W.Richard Stevens,

Design of Unix Operating System, Maurice Bach

Operating Systems: a design oriented approach, Charles Crowley

Date

PLANNED SCHEDULE

ACTUAL SCHEDULE

July 18

Introduction

Introduction

July 19

fork(), Process state diagram, PCB, zombies/orphans

How system calls work, Interrupt processing

July 20

What does fork() do exactly? CoW and exec(), wait()

No class

July 25

Lab Class - 1

No class

July 26

IPC: Pipes, Named Pipes, Shared Memory (Features such as blocking/nonblocking, buffered/unbuffered)

Bootup procedure, review of system calls

July 27

Process scheduling: general concepts, FIFO, SJF, Priority, RR, Multi-level queue, Multi-level feedback queue

fork(), Process state diagram, PCB, zombies/orphans

August 1

Lab Class - 2

fork() experiments

August 2

Context switch, Multithreading


August 3

Process Synchronization


August 8

Lab Class - 3


August 9

Analysing code with semaphores


August 10

Monitors and Transactional memory


August 16

MINOR – 1


August 17

Deadlocks: RAG, Deadlock avoidance algos.


August 23

Deadlock detection and recovery


August 24

Memory Mgmt. Basics – linking, loading


August 29

Lab Class - 4


August 30

Segmentation, paging, binding


August 31

Review of paging + TLB


September 5

Lab Class - 5


September 6



September 7



September 12

Lab Class - 6


September 14

Hierarchical paging, inverted page tables, hashed tables, Intro to VMM


September 19

Lab Class - 7


September 20



September 26

Lab Class - 8


September 27

Page replacement, frame allocation, thrashing and solutions


September 28



October 3

Lab Class - 9


October 4

Intro. to FS


October 5

Disk allocation strategies


October 10

Lab Class - 10


October 11

FAT, inode, Free space mgmt., Directory implementation


October 12

MBR, VCB, VFS and mounting, Backup, Consistency, Journaling systems


October 17

Lab Class - 11


October 18

I/O subsystem: Programmed and memory-mapped I/O, DMA, Block, char and N/W devices, device driver structures and entry points


October 24

Lab Class - 12


October 25

Blocking and non-blocking I/O, Disk scheduling algorithms + RAID, NAS, SAN concepts


October 26



October 31

Lab Class - 13


November 1



November 2



November 8

MINOR – 3