Compare commits

..

3 commits

Author SHA1 Message Date
1612d8988d added executable to .gitignore 2025-06-03 07:41:46 +02:00
e71c96d825 added executable to .gitignore 2025-06-03 07:38:26 +02:00
9e3a746ebf removed comments 2025-06-03 01:57:27 +02:00
7 changed files with 9 additions and 7 deletions

1
.gitignore vendored
View file

@ -22,6 +22,7 @@ Makefile
*.exe
*.out
*.app
./sensor_network
# IDE-spezifische Dateien
.vscode/

View file

@ -1,4 +1,4 @@
### Erklärung der Praktikumsaufgabe (Synchronisation)
/* ### Erklärung der Praktikumsaufgabe (Synchronisation)
#### **Kernziel der Aufgabe**
Sie sollen ein **multithreaded Sensornetzwerk** simulieren, das drei Komponenten umfasst:
@ -151,4 +151,5 @@ Starten Sie das System mit verschiedenen Parametern und beobachten Sie:
Mit dieser Struktur erfüllen Sie alle Lernziele:
✅ Reader-Writer-Problem
✅ Producer-Consumer-Pattern
✅ Vermeidung von Race Conditions & Deadlocks!
✅ Vermeidung von Race Conditions & Deadlocks!
*/

View file

@ -3,8 +3,8 @@
#include <condition_variable>
class AnalysisModel {
int value = 0;
int reader_count = 0;
int value = 0;
int reader_count = 0;
std::mutex model_mutex;
std::mutex count_mutex;

View file

@ -12,7 +12,7 @@ private:
std::vector<int> data;
size_t read_ptr = 0;
size_t write_ptr = 0;
bool full = false;
bool full = false;
std::mutex mtx;
std::condition_variable not_empty;

Binary file not shown.

View file

@ -44,7 +44,7 @@ void SensorNetwork<N>::sensor_thread(int id) {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> data_gen(0, 100);
std::uniform_int_distribution<> sleep_gen(100, 500);
std::uniform_int_distribution<> sleep_gen(100, 500);
while(running) {
std::this_thread::sleep_for(

View file

@ -8,7 +8,7 @@
template <size_t N>
class SensorNetwork {
RingBuffer<N> buffer;
AnalysisModel model;
AnalysisModel model;
std::atomic<bool> running{false};
std::vector<std::thread> sensors;