Back to questions
Ozon Финтех
Senior
6
Какие знаешь примитивы синхронизации в ОС?
Companies where asked
Answer from AI
sobes.tech AI
Примитивы синхронизации в операционных системах — это механизмы, позволяющие управлять доступом к общим ресурсам и координировать выполнение потоков или процессов. Основные примитивы:
- Мьютексы (Mutex) — обеспечивают эксклюзивный доступ к ресурсу, блокируя его для других потоков.
- Семафоры (Semaphore) — позволяют ограничить количество потоков, одновременно работающих с ресурсом.
- Спинлоки (Spinlock) — блокировки, при которых поток активно ожидает освобождения ресурса, не переходя в состояние сна.
- Барьер (Barrier) — синхронизирует группу потоков, заставляя их ждать друг друга в определённой точке.
- Условные переменные (Condition Variables) — позволяют потокам ждать наступления определённого условия и уведомлять друг друга.
В Go, например, есть обёртки над этими примитивами в пакете sync:
var mu sync.Mutex
mu.Lock()
// критическая секция
mu.Unlock()
Эти примитивы помогают избежать гонок данных и обеспечить корректную работу многопоточных программ.