This project focuses on the ITC/IPC problems.(inter-thread communication and Inter-process communication)
By learning Modern Operating Systems, I began to solve some of the classic ITC/IPC problems.This project is the result of my attempt to solve the classic ITC/IPC problems.
Thanks to anqurvanillapy
for his Issues
.
-
About ITC:
"Focusing on constructs like semaphore, mutex, condition variable, atomic variable, memory barrier, STM, etc, and even some locks with alternative implementations like spinlock for atomics. They synchronize code in a single process"(fromanqurvanillapy
) -
About IPC:
"Focusing on constructs like FIFO (named pipe), shm-based/mmap-based shared memory, message queue, message broker, naming service, balancer, etc, that are usually heavily based on sockets with specific protocols (e.g. TCP, UDP), and it's often prone to fail. Other subproblems include RPC (remote procedure call), IDL (interface description language), load-balancing or API gateway, consensus algorithms, single point of failure, high availability (a higher-level problem, actually), etc"(fromanqurvanillapy
) -
About C library:
In most C language programs, we need to use C POSIX library (instead of C standard library). For example, we need to use POSIX thread likepthread.h
. So if you want to run those programs successfully, you should ensure that your compiler can support C POSIX library.
And I will mark those programs that can only use C standard library.
To be continue...
gcc
and clang
compiler should use -pthread
.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0
clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
openjdk version "9-internal"
javac 1.8.0_151
"Synchronization constructs are mainly about wise/unwise choices of design and good/bad uses of abstractions, which you could take into a deeper consideration."(from anqurvanillapy
)
I will later make a document for analysis and discussion (Focus on my solutions). But this is very difficult and complicated, so it may be a long time to come true.
See the LICENSE file for license rights and limitations.