• POSIX Semaphores in Linux


    Semaphores are used for synchronization of processes and threads. Semaphores are clubbed with message queues and shared memory under the Interprocess Communication (IPC) facilities in Unix-like systems such as Linux. There are two varieties of semaphores, the traditional System V semaphores and the newer POSIX semaphores. In this ...

  • System V Semaphores in Linux


    A semaphore is a mechanism for synchronizing processes and threads. Semaphore, in Unix-like systems, are provided under interprocess communication (IPC) facilities along with message queues and shared memory. While message queues can be used by themselves for interprocess communication, semaphores are needed for implementing shared memory based interprocess communication systems. Semaphores ...

  • Semaphore Basics


    A semaphore is a signalling mechanism used to regulate access to a shared resource like a railroad track. A semaphore is used to signal to the driver of a train whether he can go ahead on the track or ...

  • POSIX message queues in Linux

    POSIX message queue calls for interprocess communication (IPC) between processes are explained with an example of server and client programs in C under Linux.

  • System V message queues in Linux

    Message queues

    Message queues are one of the interprocess communication mechanisms available under Linux. Message queues, shared memory and semaphores are normally listed as the three interprocess communication mechanisms under Linux. Semaphores, though, are really for process synchronization. In practice, shared memory, aided by semaphores, makes an interprocess communication mechanism. Message queues is the other interprocess ...

  • FIFOs in Linux


    FIFOs are pipes with a name and are also commonly referred to as named pipes. Pipes are common on Linux command lines but do not have a system-wide name. So, any two processes that wish to communicate using a pipe need to be related, either parent and child or, sharing a common parent, who sets ...

  • Pipes in Linux

    Interprocess communication

    A process is an active operating system entity which executes programs. Normally, a process, like a specialist, does one particular job (well). In real life, there are complex workflows and we, often, have multiple processes collaborating to accomplish certain objectives. In order to work together, processes need to exchange data. So ...

  • fork and exec system calls in Linux


    The process is a fundamental concept in operating systems. The operating system kernel executes a program by creating a process. A process executes a program. A process has three segments, viz. code segment, user data segment and the system data segment. The code segment and user data segment are initialized from the program. The system ...

  • Program, Process and Threads


    The definition of program is linked to the definition of algorithm. An algorithm is a sequence of finite steps which can be executed mechanically to solve a problem. The key points are that algorithms are self-contained; the steps given are sufficient to solve the problem at hand. No additional information is required. Also, ...