Существуют три основных варианта организации ОС для многопроцессорных систем:
а) «главный-подчиненный»;
б) с раздельным монитором (свой монитор в каждом процессоре);
в) симметричная организация.
15.3.1 Организация «главный-подчиненный»
При организации «главный-подчиненный» (рис.15.4) ОС выполняется только на главном процессоре. На подчиненном процессоре выполняются только программы пользователей. Когда процесс на подчиненном процессоре требует внимания ОС, он генерирует сигнал прерывания и ждет, чтобы главный процессор обработал это прерывание. Если подчиненных процессоров много и они активно генерируют сигналы прерывания, то у главного процессора могут создаваться большие очереди.
Рисунок 15.4 - Многопроцессорная система с организацией «главный-подчиненный»
Решение проблемы взаимоисключения упрощается при обращении к системным таблицам, поскольку ОС работает только на одном процессоре.
Подчиненный процессор, который освобождается в момент, когда главный процессор занят, должен будет ждать, пока главный процессор не предоставит ему дополнительную работу. Если подчиненные процессоры выполняют большое количество коротких задач, это может привести к чрезмерной дополнительной нагрузке главного процессора. Если главный процессор не сможет быстро реагировать на поступающие запросы, то значительная часть вычислительных мощностей подчиненных процессоров будет оставаться неиспользованной.
|
|
Организация «главный-подчиненный» обладает следующим достоинством – наиболее проста для реализации.
Организация «главный-подчиненный» обладает следующим недостатком – ненадежна, поскольку выход главного процессора из строя вызывает катастрофический отказ системы.
Организация «главный-подчиненный» приемлем для работы в условиях с четко определенными нагрузками, поскольку здесь возможно добиться оптимального планирования загрузки процессора. Такая организация пригодна также для асимметричных систем, в которых подчиненные процессоры обладают гораздо меньшей вычислительной мощностью, чем главный.