Operating Systems — This site contains links to lecture materials, exam questions, and laboratory materials.
System Programming — This site is based on “Google Here, Google There, Try This, Try That, and then Ask Anybody.
Operating Systems Programming Weekly Assignments — The Deadline is 7 (seven) days after the assignment was announced.
Operating Systems Programming Slides — Slides with LaTeX sources code.
Introduction to Operating System — A video talking about the things we’ll learn during this lecture and what is the operating system itself.
Linux Crash Course - Easy Terminal Commands for Inspecting Hardware — Some easy-to-use commands you can use to inspect hardware. These commands will help you list PCI devices, view information about your CPU, and more.
Linux for Beginners — A beginner-friendly guide introducing essential Linux commands, file management, and terminal usage through practical exercises.
Public Key and Private Key — This video simplifies how encryption works using a public key for securing data and a private key for accessing it.
Linux Things you Need to Know — A quick and easy guide to the must-know Linux basics.
Vim Basics in 8 Minutes — A quick 8-minute guide covering essential Vim commands for beginners.
Backup and Restore UTM — A tutorial on backing up and restoring virtual machines in UTM for macOS users.
FUSE — A tutorial demonstrating how to implement a basic file system in user space using FUSE and C programming.
Endianness Explained — Explains how Little-endian stores the least significant byte first, and Big-endian stores the most significant byte first.
Memory Hierarchy — Describes the memory hierarchy from fast registers to slower RAM and hard drives, balancing speed and size.
Open a Tar File — Shows how to extract a tar file.
How Does Linux Boot Process Work — A step-by-step explanation of the Linux boot process, from BIOS to kernel initialization.
Paging, Segmentation, and Virtual Memory — A concise overview of memory management concepts like paging, segmentation, and virtual memory in operating systems.
Thrashing — An explanation of thrashing, a situation where excessive paging reduces system performance.
Techniques to Avoid Thrashing - Working Set Model — A discussion of the working set model as a technique to prevent thrashing in memory management.
Techniques to Avoid Thrashing - Page Fault Frequency — An explanation of how managing page fault frequency can help avoid thrashing in virtual memory systems.
Multicore Programming — An introduction to multicore programming, covering concepts and challenges of parallel processing on multicore systems.
Process Vs Threads in Operating System — A comparison between processes and threads, explaining their roles and differences in operating systems.
Fork() System Call Tutorial — A guide on using the fork() system call to create processes in Unix-based operating systems.
Quick explanation: Critical section problem. — A brief overview of the critical section concept and the challenges of managing shared resources safely.
Dining-Philosophers Problem: Simplified — A simplified explanation of the dining philosophers problem, illustrating resource-sharing and synchronization issues.
Difference between Semaphore and Mutex — A comparison between semaphores and mutexes, highlighting their uses and key differences in process synchronization.
Starvation and Aging in Priority Scheduling — An explanation of starvation and aging concepts in priority scheduling to manage process execution fairness.
Necessary conditions for Deadlock — An overview of deadlock and the four necessary conditions that must be met for it to occur.
Process Scheduling — An overview of process scheduling, detailing how the OS allocates CPU time to processes for efficient execution.
CPU Scheduling Criteria in Operating System, Various Times related to Process — A breakdown of CPU scheduling criteria and different time metrics (e.g., turnaround time, waiting time) used in process management.
Deadline Scheduler in Operating System — An explanation of the deadline scheduler, a scheduling method that prioritizes tasks based on deadline constraints.
How Risky is Updating Your BIOS? — Explores the risks and precautions involved in updating a computer’s BIOS firmware.
What is Linux swap? — Explains Linux swap, its purpose, and how it helps manage memory when RAM is full.
What is a Paging File or Pagefile as Fast As Possible — A quick explanation of the paging file, how it works, and its role in virtual memory.