Computer Science Learning Portal

Curated and hosted by Prof. K. R. Chowdhary

Former Scientist, Bhabha Atomic Research Centre (BARC), Mumbai • Former Professor & Head, Department of Computer Science, MBM Engineering College, Jai Narain Vyas University, Jodhpur

Prof. K. R. Chowdhary

Operating Systems — Lecture Notes and Course Materials

This page provides open educational resources for the study of Operating Systems, including lecture slides, course material, assignments, examples, and examination resources. The material is intended primarily for undergraduate students, teachers, and independent learners of Computer Science and Computer Applications.

The resources were developed and used during teaching of Operating Systems and related Computer Science subjects. They provide an introduction to the principles by which operating systems manage processors, memory, storage, input-output devices, processes, threads, and other computer resources.

The material also includes examples and discussions related to Linux and Unix-based operating systems, making the theoretical concepts relevant to practical computing environments.

What You Will Find

Course Information

This course was taught to Bachelor of Computer Applications (BCA), II Year students at Jai Narain Vyas University, Jodhpur during the academic session 2023.

Prerequisites

Course Description

Operating Systems introduces the fundamental concepts and principles of modern operating systems. It explains how an operating system acts as an interface between computer hardware and application software and how it manages system resources.

The course covers process management, CPU scheduling, threads, concurrency, synchronization, deadlocks, memory management, virtual memory, storage management, file systems, and input-output management. Examples from Linux and Unix-based systems are also used to illustrate important concepts.

Learning Outcomes

Lecture Notes and Course Modules

Module 1: Introduction to Operating Systems

Topics Covered

  • Operating system definitions and characteristics
  • Types of operating systems
  • Functions and services of operating systems
  • Hardware concepts related to operating systems
  • System calls and operating system structure

Learning Resources

Module 2: Process Management

Topics Covered

  • Process concepts, states, and Process Control Block (PCB)
  • Process scheduling and scheduling criteria
  • CPU scheduling algorithms
  • Multiple processor scheduling
  • Real-time scheduling
  • Threads and multithreading in Linux

Learning Resources

Module 3: Process Synchronization

Topics Covered

  • Interprocess communication
  • Critical section problem
  • Mutex locks and semaphores
  • Classical synchronization problems
  • Deadlock characterization and handling
  • Deadlock prevention, avoidance, detection, and recovery
  • Process scheduling in Linux

Learning Resources

  • Critical Section
    Interprocess communication, shared memory, message passing, producer-consumer problem, mutual exclusion, kernel critical section, and mutex locks.
  • Home Assignment #3
  • Semaphore
    wait(), signal(), semaphore implementation, semaphore use in single-processor and multiprocessor systems, deadlock, and starvation.
  • Deadlocks
    Deadlock characterization and methods for handling deadlocks.
  • More on Deadlocks
    Deadlock prevention and deadlock avoidance techniques.
  • Assignment No. 4: Deadlocks
    Deadlock detection, prevention, and avoidance.

Module 4: Memory Management

Topics Covered

  • Logical and physical address space
  • Memory allocation and swapping
  • Contiguous memory allocation
  • Segmentation and paging
  • Virtual memory
  • Demand paging
  • Page replacement algorithms
  • Memory management in Linux

Learning Resources

Module 5: I/O Management and File Systems

Topics Covered

  • Disk scheduling algorithms
  • Disk management
  • Swap space management
  • Disk reliability and stable storage
  • File concepts and directory structures
  • Linux file systems

Learning Resources

Additional Course Resources

Assignments

Examination Resources

Recommended Textbook

Operating System Concepts by Silberschatz, Galvin and Gagne

About These Course Materials

These lecture notes and supporting resources were developed and used in teaching Operating Systems. They have been organized and made available as an open educational resource for students, teachers, and independent learners.

The material is intended to complement standard textbooks and classroom instruction. Readers are encouraged to consult the recommended textbook and other scholarly references for a deeper understanding of Operating Systems.

Related Computer Science Resources

Operating Systems is closely connected with several fundamental areas of Computer Science. Related learning resources available on this website include:


Feedback and Comments