← Back to teaching

CS3523 (Operating Systems II)

January – May 2020 · Department of Computer Science and Engineering, IIT Hyderabad

The second operating systems course: synchronisation, monitors, CPU scheduling, deadlocks, main memory, virtual memory, I/O, disks and file systems, with Linux kernel programming assignments throughout. Video lectures will be added to the YouTube channel; the Video column is a placeholder until then.

Course details

  • Course code: CS3523
  • Semester: January 2020 (Spring)
  • Level: undergraduate core
  • Credits: 3

Texts and reference material

  • Silberschatz, Galvin and Gagne, Operating System Concepts
  • Intel 64 and IA-32 architectures software developer manual
  • Linux kernel documentation

Evaluation

  • Four hardware-programming assignments and six lab assignments
  • Six online quizzes

Lecture plan

Lecture blocks as taught, each spanning several class hours. Recordings are not yet on the YouTube channel.

#TopicSlidesReading materialVideo
L0Course overviewlec00 overviewStudy guidenot recorded
L1–3Process synchronisationlec01-03 synchronisationBasic Linux commandsnot recorded
L4Synchronisation, part 2lec04 synchronisation 2—not recorded
L5Monitorslec05 monitors—not recorded
L6–9CPU schedulinglec06-09 schedulingThe Linux scheduler: a decade of wasted cores (EuroSys 2016) · Cores that don’t count / slacking off (USENIX 2016)not recorded
L10–11Deadlockslec10-11 deadlocks—not recorded
L12–15Main memorylec12-15 main memoryIntel 64 and IA-32 software developer manual, volume 3, pagingnot recorded
L16–17Virtual memorylec16-17 virtual memory—not recorded
L18Virtual memory, part 2lec18 VM IIA narrated version of this lecture exists in Drivenot recorded
L19I/O systemslec19 I/O—not recorded
L20Mass storage and diskslec20 disks—not recorded
L21File systemslec21 file systems—not recorded
L22File system implementationlec22 file system implementation—not recorded

Slide links open in Google Drive. Reading material without a link is third-party work — the title is given so you can find it at its publisher.

Assignments, tutorials and project

Handouts and submissions were managed in Google Classroom; titles are listed here for reference.

  • Home assignment 0: audit the edX course “Introduction to Linux”
  • Hardware programming assignment 1: matrix multiplication
  • Hardware programming assignment 2: musical chairs
  • Hardware programming assignment 3: paging on device memory
  • Lab 1: getting started · Lab 3: the Linux scheduler · Lab 4: hello-world kernel module · Lab 5: the Linux virtual address space · Lab 6: page size and virtual-to-physical mapping
  • Tutorial: Linux kernel debugger and process management
  • Six online quizzes