Pazke, 27.02.2004 11:59:52 :
Различается основательно. Многопроцессорный hal должен иметь функции для обнаружения и запуска дополнительных процессоров, обработки межпроцессорных прерываний, да и вообще с прерываниями на многопроцессорных системах все несколько сложнее и т.д.
А что имелось в виду здесь:
Вроде это идет на уровне расписания, а они и пользуются как раз много чем из этого HAL.
В чем отличие запуска одного процессора от запуска двух? Если это так, то система с двумя хардами должна иметь отличия в HAL от системы с одним хардом. Мое понимание HAL (подкрепленное, до некоторой степени, чтением исходников 2000) - это обеспечение единого интерфейса к оборудованию.
А что имелось в виду здесь:
Вроде это идет на уровне расписания, а они и пользуются как раз много чем из этого HAL.
Обработка очередей готовых задач осуществляется на весьма высоком абстрактном уровне. Изначально теория для работы ОС на многопроцессорнных конфигурациях разрабатывалась для процессоров в количестве степенй 2. Потом стали делать для сумм 4 (вроде, я видел с 12 процессорами). Поэтому сейчас можно увидеть наборы 2, 4, 8, 16, 32 64. Если есть интерес, то могу порыться в статьях, что у меня есть. Конечно, до советских мне сейчас не добраться - в Союзе в конце 70 и в 80 был расцвет этого дела. В Питере, Киеве, Москве, Новосибе, Таллине, Казани, Томске, даже в Кишиневе
- можно было найти много людей, работающих в этой области. А поскольку многопроцессорных машин было мало, то практически все работы были чисто теоритическими.
Из зарубежных - если залезть на kernel лист разработчиков для Фряхи, то там давали ссылки на Sun, DEC и других авторов про то как это сделано в Юниксах коммерческих систем.
Вот и в Форточках, алгоритмы составления расписания отличаются для однопроцессорной иногопроцессорной конфигурации. Дурка состоит в том, что при увеличении числа процессоров, простейший алгоритм scheduling-а становиться настолько неэффективным, что многопроцессорная система начинает проигрывать однопроцессорной.