Skip to content

ahmaide/RealTime-Systems-Multiprocessing-Multithreading

Repository files navigation

RealTime-Systems-Multiprocessing-Multithreading

This repository includes a collection of real-time and concurrent system projects developed in C++. The goal of these projects is to explore the use of multiprocessing, multithreading, shared memory, semaphores, and signal handling, along with graphical interfaces built using OpenGL. Each project demonstrates a different aspect of process or thread management in practical, simulated environments.

Projects Overview

1. Racers Game

A simulation where multiple racers compete in sequence, each running a defined distance before passing control to the next racer.

  • Concepts used: Multiprocessing, exec(), fork(), and signal handling (interrupts).
  • Highlights: Demonstrates inter-process communication and synchronization between racers.
  • Interface: Simple graphical representation built with OpenGL.

2. Ministry of Interior

A multi-process system that simulates users entering a virtual ministry to check their documents.

  • Concepts used: Multiprocessing, shared memory, and semaphores.
  • Highlights: Focuses on resource sharing and controlled access to critical sections.
  • Interface: Visualized through OpenGL to show user interactions and document flow.

3. Chocolate Factory

A multithreaded simulation representing the workflow inside a chocolate factory.

  • Concepts used: Multithreading, semaphores, and alarms for task coordination.
  • Highlights: Threads represent different stages of the production line, such as mixing, molding, and packaging.
  • Interface: Animated with OpenGL to illustrate thread synchronization and process timing.

4. PIC Assembly Project

A small program written in assembly language for a PIC microcontroller.

  • Purpose: Demonstrates low-level control and hardware interaction.
  • Tools: Developed and tested on a physical PIC device.

Technologies Used

  • Languages: C++, Assembly
  • Libraries: OpenGL
  • Concepts: Multiprocessing, Multithreading, Shared Memory, Semaphores, Signals, Alarms
  • Build Tools: Makefile

How to Run

  1. Clone the repository:
    git clone https://github.com/ahmaide/RealTime-Systems-Multiprocessing-Multithreading.git
    cd RealTime-Systems-Multiprocessing-Multithreading

About

This repository contains all the Real-Time course mulitporcessing and multithreading files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors