Другой центральный процессор - Большая Энциклопедия Нефти и Газа, статья, страница 2
Если ты закладываешь чушь в компьютер, ничего кроме чуши он обратно не выдаст. Но эта чушь, пройдя через довольно дорогую машину, некоим образом облагораживается, и никто не решается критиковать ее. Законы Мерфи (еще...)

Другой центральный процессор

Cтраница 2


Для разрешения этой проблемы команда TSL сначала должна блокировать шину, не допуская обращения к ней других центральных процессоров, затем выполнить оба обращения к памяти, после чего разблокировать шину. Как правило, для блокировки шины сначала выполняется обычный запрос шины по стандартному протоколу, затем устанавливается в 1 некая специальная линия шины. Пока эта линия шины установлена в 1, никакой другой центральный процессор не может получить к ней доступ. Такая команда может быть выполнена только на шине, у которой есть необходимые специальные линии и ( аппаратный) протокол для их использования. Современные шины обладают подобными свойствами, но на старых шинах это было невозможно, и команда TSL не могла быть выполнена корректно.  [16]

Иногда требуется синхронизация компонентов ядра на очень низком уровне, особенно для того, чтобы избежать конфликтов на многопроцессорных системах. Уровень HAL предоставляет несколько примитивов для управления этой синхронизацией. Примером являются спин-блокировки, в которых один центральный процессор просто ждет, пока другой центральный процессор не освободит определенный ресурс. В частности, такой метод синхронизации применяется в ситуациях, в которых доступ к ресурсу, как правило, получается всего на несколько команд процессора.  [17]

18 Модель мультипроцессора хозяин-подчиненный. [18]

Модель мультипроцессора хозяин-подчиненный позволяет решить большинство проблем первой модели. В этой модели используется единая структура данных ( например, один общий список или набор приоритетных списков), учитывающая готовые процессы. Когда центральный процессор переходит в состояние простоя, он запрашивает у операционной системы процесс, который можно обрабатывать, и при наличии готовых процессов операционная система назначает этому процессору процесс. Поэтому при такой организации никогда не может случиться так, что один центральный процессор будет простаивать, в то время как другой центральный процессор перегружен. Страницы памяти могут динамически предоставляться всем процессам. Кроме того, в такой системе есть всего один общий буферный кэш блочных устройств, поэтому дискам не грозит порча данных, как в предыдущей модели при попытке использования блочного кэша.  [19]

Однако в некоторых случаях у процессора может быть выбор. Например, если какому-либо потоку на центральном процессоре потребуется доступ к блочному кэшу файловой системы, заблокированному в данный момент, центральный процессор может решить не ждать, а переключиться на другой поток. Обратите внимание, что на однопроцессорной системе такого вопроса не возникает, так как опрос в цикле ни имеет смысла при отсутствии другого центрального процессора, способного освободить мьютекс. Если поток пытается получить мью-текс и ему это не удается, он всегда блокируется, чтобы дать возможность владельцу мьютекса работать и освободить мьютекс.  [20]

Первая программа должна назначать т процессов п машинам, в соответствии с файлом инициализации. Каждый процесс должен работать в течение случайного периода времени, величина которого распределена по Гауссу, причем среднее линейное и среднеквадратическое отклонение задаются в виде параметров модели. В конце работы каждый процесс создает несколько новых процессов, количество которых является случайной величиной, распределенной по Пуассону. После завершения работы каждого процесса центральный процессор должен решить, отдать свои процессы другому центральному процессору или попытаться самому найти новые процессы. Первая программа должна использовать алгоритм, инициируемый отправителем, чтобы избавиться от лишней работы, если у центрального процессора оказывается более k процессов. Вторая программа должна использовать алгоритм, инициируемый получателем, чтобы получать работу, когда это необходимо. Вы можете делать любые разумные допущения, но должны заявлять о них открыто и четко.  [21]

Первая про грамма должна назначать т процессов п машинам, в соответствии с файлом инициализации. Каждый процесс должен работать в течение случайного периода времени, величина которого распределена по Гауссу, причем среднее линейное и среднеквадратическое отклонение задаются в виде параметров модели. В конце работы каждый процесс создает несколько новых процессов, количество которых является случайной величиной, распределенной по Пуассону. После завершения работы каждого процесса центральный процессор должен решить, отдать свои процессы другому центральному процессору или попытаться самому найти новые процессы. Первая программа должна использовать алгоритм, инициируемый отправителем, чтобы избавиться от лишней работы, если у центрального процессора оказывается более k процессов. Вторая программа должна использовать алгоритм, инициируемый получателем, чтобы получать работу, когда это необходимо. Вы можете делать любые разумные допущения, но должны заявлять о них открыто и четко.  [22]

23 Модель симметричного мультипроцессора. [23]

Такая модель работает, но она практически так же плоха, как и модель хозяин-подчиненный. Опять же предположим, что 10 % всего процессорного времени расходуется на выполнение самой операционной системы. К счастью, такую ситуацию легко исправить. Многие части операционной системы независимы друг от друга. Например, один центральный процессор может заниматься планированием, в то время как другой центральный процессор будет выполнять обращение к файловой системе, а третий обрабатывать страничное прерывание.  [24]



Страницы:      1    2