Operating System Fundamentals

Operating System Fundamentals. Instructor: Prof. Santanu Chattopadhyay, Department of Computer Science and Engineering, IIT Kharagpur. Operating System is a computer software that manages the hardware components. It acts as an intermediary between the users and the hardware. It is responsible for managing the system resources and providing a smooth working environment for the users. As a subject, it is an amalgamation of the fields like computer architecture, algorithms, data structure and so on. A course on fundamentals of operating systems is essential to equip the students for taking up the challenges in understanding and designing of computer systems. This course will address all the fundamental points, starting from the foundations to the architectural issues to correlation with existing commercial operating systems. (from

Course Introduction

Lecture 01 - Introduction
Lecture 02 - Introduction: User View, System View, Defining Operating System
Lecture 03 - Introduction: Computer-System Organization and Operation
Lecture 04 - Introduction: Storage, I/O Structure
Lecture 05 - Introduction: Computer-System Architecture
Lecture 06 - Introduction: Process, Memory and Storage Management, Caching
Lecture 07 - Operating System Structures
Lecture 08 - Operating System Structures: Command Interpreters, System Calls
Lecture 09 - Operating System Structures: System Calls (cont.), System Programs
Lecture 10 - Operating System Structures: System Programs (cont.), Operating System Structure
Lecture 11 - Operating System Structures: Microkernel System Structure
Lecture 12 - Processes
Lecture 13 - Processes: Process Control Block, Threads, Process Scheduling
Lecture 14 - Processes: Schedulers, Multitasking in Mobile Systems, Process Creation
Lecture 15 - Processes: Process Creation (cont.)
Lecture 16 - Processes: Process Termination, Interprocess Communication
Lecture 17 - Processes: Synchronization, Direct and Indirect Communication
Lecture 18 - Processes: Pipes, Sockets, Remote Procedure Calls
Lecture 19 - Threads
Lecture 20 - Threads: Single and Multithreaded Processes, Multicore Programming
Lecture 21 - Threads: Concurrency vs Parallelism, User and Kernel Threads
Lecture 22 - Threads: Pthreads, Threading Issues
Lecture 23 - Threads (cont.), CPU Scheduling
Lecture 24 - Scheduling: CPU Scheduler, Preemptive Scheduling
Lecture 25 - Scheduling: Scheduling Criteria, Scheduling Algorithm
Lecture 26 - Scheduling: Determining Length of Next CPU Burst
Lecture 27 - Scheduling: Round Robin, Priority Scheduling
Lecture 28 - Scheduling: Multilevel Queue Scheduling
Lecture 29 - Process Synchronization
Lecture 30 - Process Synchronization: Critical Section Problem
Lecture 31 - Process Synchronization: Solution to Critical Section Problem
Lecture 32 - Process Synchronization: Mutex Locks, Semaphores
Lecture 33 - Process Synchronization: Deadlock and Starvation, Problems with Semaphores, Monitors
Lecture 34 - Process Synchronization: Monitor with Next Semaphore
Lecture 35 - Synchronization Examples
Lecture 36 - Synchronization Examples (cont.), Deadlock
Lecture 37 - Deadlock: Resource-Allocation Graph, Methods for Handling Deadlocks, Deadlock Prevention
Lecture 38 - Deadlock: Deadlock Avoidance, Banker's Algorithm
Lecture 39 - Deadlock: Banker's Algorithm (cont.), Safety Algorithm
Lecture 40 - Deadlock: Detection Algorithm
Lecture 41 - Memory Management
Lecture 42 - Memory Management: Logical vs Physical Address Space, Memory-Management Unit
Lecture 43 - Memory Management: Contiguous Allocation, Multiple-Partition Allocation
Lecture 44 - Memory Management: Fragmentation, Logical and Physical Memory
Lecture 45 - Memory Management: Paging
Lecture 46 - Memory Management: Allocating Frames to a New Process, Associative Memory
Lecture 47 - Memory Management: Paging Example, Structure of the Page Table
Lecture 48 - Memory Management: Inverted Page Table
Lecture 49 - Virtual Memory
Lecture 50 - Virtual Memory: Page Fault
Lecture 51 - Virtual Memory: Demand Paging
Lecture 52 - Virtual Memory: Page Replacement
Lecture 53 - Virtual Memory: Least Recently Used (LRU) Algorithm
Lecture 54 - Virtual Memory: Page Buffering Algorithms, Allocation
Lecture 55 - Virtual Memory: Thrashing
Lecture 56 - Virtual Memory: Improving Page Faults Rates
Lecture 57 - File System and Secondary Storage: Mass-Storage Systems, Storage Hierarchy
Lecture 58 - File System and Secondary Storage: Disk Scheduling
Lecture 59 - File System and Secondary Storage: File Organization
Lecture 60 - File System and Secondary Storage: File Access and Protection

Operating System Fundamentals
Instructor: Prof. Santanu Chattopadhyay, Department of Computer Science and Engineering, IIT Kharagpur. Operating System is a computer software that manages the hardware components.