Operating Systems

The Producer and Consumer

The producer-consumer problem is a classic synchronization issue in operating systems where multiple producers generate data or resources, and multiple consumers use that data. It is usually addressed using synchronization mechanisms like semaphores, mutex locks, and condition variables to have proper coordination, preventing race conditions and deadlocks. The problem plays a major role in managing… Continue reading The Producer and Consumer

Operating Systems

Burst Time

Burst time is the total time taken by the process to run on a CPU and this is also called as execution time or running time. It is a crucial factor in CPU scheduling that impacts on system performance, process turnaround time, and response time. Different scheduling algorithms use burst time to determine execution order.… Continue reading Burst Time

Operating Systems

Inter-Process Communication

IPC is a mechanism that allows processes to exchange data and signals in an operating system. Processes may need to communicate to share resources, synchronize tasks, or distribute workloads efficiently. IPC can be achieved using various techniques, including message passing, shared memory, pipes, sockets, and signals. There are five major ways by which IPC is… Continue reading Inter-Process Communication

Operating Systems

Affinity Scheduling

Affinity Scheduling is an OS process scheduling technique that tries to keep a process running on the same CPU core it was previously executing on. This improves cache performance and reduces overhead from context switching between cores. Single-core CPU can execute only one process at a time. Multi-core CPU executes with multiple independent cores, where… Continue reading Affinity Scheduling

Operating Systems

Copy on Write (COW)

Copy-on-Write (COW) is an optimization technique where multiple processes share the same memory until a modification is needed. Instead of copying data immediately, the OS marks it as read-only and copies it only when a process attempts to write, reducing memory usage and improving efficiency. The principles similar to COW that are used in different… Continue reading Copy on Write (COW)

Operating Systems

Process Control Blocks

A Process Control Block (PCB) is a data structure maintained by the operating system which stores the information about a process. PCB’s are essential for process management and context switching. PCBs are stored in a process table, a system-wide data structure. The implementation of it varies from system to system. A typical structure of PCB… Continue reading Process Control Blocks

Operating Systems

The Resource Balancing Act in OS Design

Modern operating system design is a delicate balance between three key resources: computation power, memory, and bandwidth. When one resource becomes a bottleneck, system architects optimize or increase another to maintain performance. For instance, when CPUs are slow, additional memory is used to cache data and reduce processing demands. When memory is limited, increasing bandwidth… Continue reading The Resource Balancing Act in OS Design

General Discussions

Analytical Reduction and Atomism

Analytical reduction is the process of breaking a complex system into smaller parts to understand it better. It helps when we want to want to study each piece separately so that we may better understand how the whole system works. This approach makes problem-solving easier but might also sometimes miss on how different parts might… Continue reading Analytical Reduction and Atomism

General Discussions

AI and Great Thinkers

Well, I have always been amazed on reading about social theories and how they were formulated. A decade ago, I used to think, the era of ‘Great Thinkers’ is dead and now I am sure of it. While I try to tell myself that AI generated content is based on the content that was once… Continue reading AI and Great Thinkers