Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Поддержка многопроцессорности в Linux



Многопроцессорные архитектуры в Linux поддерживают, начиная из ядра версии 2.0 (1996 год). Поддержка многопроцессорности реализована в средствах синхронизации процессов и планировщике процессов.

Основы синхронизации в ядре Linux описаны в пункте 5.4.1. Первично реализация поддержки SMP основывалась на большой блокировке ядра. Современные версии ядра поддерживают подход с разделением кода на отдельные критические секции.

Многопроцессорное планирование

Ядро Linux версии 2.4 реализовывало стандартное планирование с делением времени. Полная реализация планирования, рассчитанная на использование в многопроцессорных архитектурах, в первый раз появилась в ядре версии 2.6.

♦ Реализована поддержка мягкого родства, основанная на том, что для каждого процессора поддерживают отдельную очередь готовых процессов. До выполнения на процессоре допускают лишь процессы из его очереди. Периодически происходит балансирование всех очередей. Все это уменьшает вероятность миграции процессов между процессорами и предотвращает появление эффекта пинг-понга.

♦ Реализованы системные вызовы, которые дают возможность задавать жесткое родство для процессов [79].

Для установления маски родства используют системный вызов sched_setaffinity():

#іinclude <sched.h>





Дата публикования: 2015-04-07; Прочитано: 310 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...