https://github.com/jelhamm/semaphore-multitasking
"This repository showcases the implementation of semaphores, a synchronization tool."
https://github.com/jelhamm/semaphore-multitasking
bounded-buffer cpp dining-philosophers dining-philosophers-problem java python readers-writers-problem semaphore-open-source semaphore-pattern semaphore-synchronization semaphores
Last synced: about 2 months ago
JSON representation
"This repository showcases the implementation of semaphores, a synchronization tool."
- Host: GitHub
- URL: https://github.com/jelhamm/semaphore-multitasking
- Owner: jElhamm
- License: mit
- Created: 2023-10-26T17:23:45.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-15T23:09:30.000Z (over 1 year ago)
- Last Synced: 2024-02-16T21:25:13.228Z (over 1 year ago)
- Topics: bounded-buffer, cpp, dining-philosophers, dining-philosophers-problem, java, python, readers-writers-problem, semaphore-open-source, semaphore-pattern, semaphore-synchronization, semaphores
- Language: C++
- Homepage:
- Size: 610 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Semaphore MultiTasking
[*Semaphore MultiTasking*](https://en.wikipedia.org/wiki/Semaphore_(programming)) is a repository that provides a comprehensive implementation of the Semaphore concept along with various multi-tasking scenarios.
It includes examples such as producer and consumer agents, reader and writer, and hungry philosophers, showcasing the practical usage and benefits of semaphores in concurrent programming.## Table of Contents
* [Introduction](#Introduction)
* [Features](#Features)
* [Usage](#Usage)
* [Examples](#Examples)
* [References](#References)## Introduction
In modern software development, managing concurrent execution is a critical aspect.
Semaphore-MultiTasking aims to address this challenge by providing a robust implementation of the Semaphore concept in a multi-tasking environment.
This repository serves as a valuable resource for understanding and implementing semaphores in various scenarios.## Features
* [Complete implementation of the Semaphore concept](Implementation%20Of%20Semaphore/Source%20Code)
* Examples of common multi-tasking scenarios:
* Producer and consumer agents:
[Implementation with C++](Bounded_Buffer/Implementation%20with%20C%2B%2B)
[Implementation with Java](Bounded_Buffer/Implementation%20with%20Java)
[Implementation with Python](Bounded_Buffer/Implementation%20with%20Python)* Reader and writer:
[Implementation with C++](Readers-Writers/Implementation%20with%20C%2B%2B)
[Implementation with Java](Readers-Writers/Implementation%20with%20Java)
[Implementation with Python](Readers-Writers/Implementation%20with%20Python)* Dining Philosophers:
[Implementation with C++](Dining_Philosophers/Implementation%20with%20C%2B%2B)
[Implementation with Java](Dining_Philosophers/Implementation%20with%20Java)
[Implementation with Python](Dining_Philosophers/Implementation%20with%20Python)
* Easy-to-understand code structure and documentation## Usage
1. Open your preferred development environment.
2. Import the Semaphore-MultiTasking project.
3. Explore the repository's codebase to understand the Semaphore implementation and different multi-tasking scenarios.
4. Modify or extend the existing examples to fit your specific requirements.## Examples
* Producer and Consumer Agents:
The producer-consumer problem is a classic synchronization problem where one or more producers generate data, and one or more consumers consume that data.
In Semaphore-MultiTasking, you can find a well-documented example of how to implement a solution using semaphores.* Reader and Writer:
The reader-writer problem involves concurrent access to a shared resource, where multiple readers can access it simultaneously, but only one writer can access it at a time.
Semaphore-MultiTasking provides an illustrative implementation of this scenario using semaphores.* Dining Philosophers:
The dining philosophers problem is a classic synchronization problem that involves multiple philosophers sitting around a table with bowls of rice and chopsticks.
Semaphore-MultiTasking demonstrates a clever use of semaphores to prevent resource deadlocks and starvation.Please refer to the repository's source code and documentation for detailed explanations of these examples.
## References
* [Semaphores in Process Synchronization](https://www.geeksforgeeks.org/semaphores-in-process-synchronization/)
* [Implementation of semaphore with C++](https://www.geeksforgeeks.org/cpp-20-semaphore-header/)
* [Implementation of semaphore with Java](https://geeksforgeeks.org/semaphore-in-java/)
* [Implementation of semaphore with Python](https://www.geeksforgeeks.org/synchronization-by-using-semaphore-in-python/)BOOK:
* Modern Operating Systems Book by Andrew Tanenbaum.
* Operating System Concepts Book by Abraham Silberschatz.