Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

Crossroads Simulation

Многопоточная симуляция перекрёстка на C++. Автомобили въезжают с четырёх сторон, планировщик распределяет их по воркерам, воркеры проводят машины через секторы перекрёстка.

Архитектура

Generator → SPSCQueue[4] → Scheduler → Worker[4] → CrossRoads
  • Generator — генерирует автомобили и кладёт в очередь соответствующей дороги
  • Scheduler — читает очереди по round-robin, запускает воркеры
  • Worker — проводит автомобиль через секторы перекрёстка в отдельном потоке
  • CrossRoads — 4 сектора, каждый защищён мьютексом

Структуры данных

SPSC Queue (Single Producer Single Consumer)

Lock-free очередь на связном списке с dummy node.

Mutex (pthread_mutex_t)

Каждый из 4 секторов перекрёстка защищён отдельным мьютексом. Воркер захватывает секторы по маршруту по одному