Миргородская 7сессия / Операционные системы / %D0%9E%D0%A1_%D0%A1%D0%93%D0%A2%D0%A3%20v5
.pdf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Процессор |
|
|
Процессор |
|
|
. . . |
Процессор |
|
||||||
|
|
Кэш |
|
|
|
Кэш |
|
|
|
Кэш |
|
|
|||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Подсистема
Основная ввода-вывода память
Рис. 70. Архитектура симметричной многопроцессорной системы
Пользователь может создавать приложения с использованием несколь-
ких процессов или нескольких потоков в процессах, не заботясь о том, какое количество процессоров будет доступно — один или несколько. Таким обра-
зом, многопроцессорная операционная система должна выполнять все функ-
ции многозадачной системы, а также обладать дополнительными возможно-
стями по распределению вычислений среди процессоров. В число особенно-
стей архитектуры такой операционной системы входят следующие:
Одновременные параллельные процессы или потоки. Чтобы несколь-
ко различных процессов могли одновременно выполнять один и тот же код ядра, он должен быть реентерабельным. При выполнении несколькими про-
цессорами одного и того же кода ядра (или разных его частей) необходима организация управления таблицами и управляющими структурами ядра, что-
бы избежать взаимоблокировок или неправильного выполнения операции.
Планирование. Планирование может выполняться на любом из про-
цессоров, поэтому необходимо предусмотреть механизм, позволяющий избежать конфликтов. При использовании многопоточности на уровне ядра
231
несколько потоков одного и того же процесса могут выполняться на разных процессорах.
Синхронизация. В ситуации, когда несколько активных процессов имеют возможность доступа к совместным адресным пространствам или ре-
сурсам ввода-вывода, необходимо позаботиться об их эффективной синхро-
низации. Синхронизация — это средство, обеспечивающее реализацию взаимоисключений и упорядочение событий. Общепринятым механизмом синхронизации в многопроцессорных операционных системах являются бло-
кировки.
Управление памятью. Система управления памятью в многопроцес-
сорнойсистеме должна быть способна разрешать все проблемы, возникаю-
щие в однопроцессорных машинах, а кроме того, операционная система должна уметь использовать возможности, предоставляемые аппаратным обеспечением, например многопортовую память. Механизмы страничной ор-
ганизации памяти разных процессоров должны быть скоординированы, что-
бы обеспечить согласованность работы в ситуации, когда несколько процес-
соров используют одну и ту же страницу или один и тот же сегмент и прини-
мают решение по вопросу замещения страниц.
Надежность и отказоустойчивость. При отказе одного из процессоров операционная система должна обеспечить продолжение корректной ра-
боты системы. Планировщик операционной системы (как и другие ее части)
должен получить информацию о потере одного из процессоров и соответст-
вующим образом перестроить свои управляющие таблицы.
Поскольку при описании архитектуры многопроцессорной операцион-
ной системы, как правило, рассматриваются те же вопросы (с добавлением некоторых других), что и при описании устройства однопроцессорной опера-
ционной системы, мы не будем останавливаться на многопроцессорных опе-
рационных системах отдельно. Вместо этого по ходу изложения материала книги будем обращаться к вопросам, являющимся специфичными для мно-
гопроцессорных систем.
232
7.3. Принципы функционирования кластеров
Кластер - набор вычислительных узлов (вполне самостоятельных ком-
пьютеров), связанных высокоскоростной сетью (интерконнектом) и объеди-
ненных в логическое целое специальным программным обеспечением [3].
Фактически простейший кластер можно собрать из нескольких персоналок,
находящихся в одной локальной сети, просто установив на них соответст-
вующее программное обеспечение.
Кластеры ассоциируются у нас с суперкомпьютерами, круглые сутки решающими на десятках, сотнях и тысячах вычислительных узлов какую-
нибудь сверхбольшую задачу. Часто встречаются кластеры, в которых одни узлы, дублируя другие, готовы в любой момент перехватить управление, или,
например, одни узлы, проверяя получаемые с другого узла результаты, ради-
кально повышают надежность системы. Еще одно популярное применение кластеров - решение задачи массового обслуживания, когда серверу прихо-
дится отвечать на большое количество независимых запросов, которые мож-
но легко раскидать по разным вычислительным узлам. Суперкомпьютер-
кластер состоит из трех основных компонентов: " компьютеров, образующих узлы кластера; интерконнекта, соединяющего эти узлы в сеть, и программно-
го обеспечения, заставляющего всю конструкцию "почувствовать" себя еди-
ным компьютером. Программное обеспечение для кластеров: для кластерных вычислений существует стандарт - MPI (Message Passing Interface). Програм-
мы, написанные с использованием MPI, абсолютно переносимы - их можно запускать из любой операционной системы.
Идея многопроцессорной обработки как способа повышения общей эффективности вычислений родилась давно. Однако прежде чем попытаться распределить вычисления между N процессорами, нужно отчётливо пони-
мать, что не любой вычислительный процесс получит какие-либо преимуще-
ства от реализации на многопроцессорных архитектурах. Для этого он дол-
жен быть достаточно «хорошо распараллеливаемым». Какие же классы задач
233
предполагают такой вычислительный процесс? Это, как правило, задачи с вычислениями, многократно повторяемыми при вариациях некоторых на-
чальных условий в каждом цикле. Кроме того, желательно, чтобы в таких за-
дачах параметры последующих циклов вычисления имели бы минимально выраженную зависимость от результатов предыдущих циклов («итерацион-
ность»). Достаточно широкие классы задач оказываются в определённой ме-
ре «хорошо распараллеливаемыми» [33]:
Восстановление криптографированного текста с помощью всех воз-
можных ключей шифрования и выбор наилучшего результата.
Поиск в больших объёмах данных по ключевым признакам или по их сложным комбинациям.
Прочностные расчёты, реализация метода конечных элементов, зада-
чи гидро- и электродинамики сплошных сред.
Проверка комбинаторно синтезируемых гипотез и идентификация отметок, полученных пространственно разнесёнными приёмниками, в систе-
мах радио- и гидролокации.
Задачи баллистики.
Обработка изображений, например идентификация дактилоскопиче-
ских отпечатков или анализ аэрокосмических снимков.
Множественное вычисление целевой функции в процедурах много-
мерной нелинейной оптимизации.
Реализация нестационарного метода статистического моделирования для газовой динамики и кинетической теории газов.
Обеспечение высокой надёжности систем баз данных.
Большинство задач поиска вариантов в пошаговых игровых про-
граммах.
Степень успешности распараллеливания обратно зависима от того, как сильно исходные данные последующих циклов вычислений зависят от пре-
дыдущих. За годы эволюции идеи распределённой обработки сложились в различные её реализационные механизмы, каждый из которых в той или
234
иной степени соответствует двум основным моделям: сильносвязанные мно-
гопроцессорные системы (системы с симметричной многопроцессорной об-
работкой — SMP) и слабосвязанные многопроцессорные системы (кластер-
ные системы).
В SMP-системах N обрабатывающих процессоров разделяют общие поля внешних устройств и, что особенно важно, поле оперативной памяти.
Для реализации этой модели необходимо использовать специализированные архитектуры взаимодействия процессоров и специальные наборы системных микросхем (chipset). В таких архитектурах оптимальным механизмом рас-
пределения работы между параллельными ветвями представляется разделе-
ние на уровне потоков (thread). Последовательно наблюдались массовая реа-
лизация механизмов thread в аппаратных платформах (начало 90-х), под-
держка абстракций thread в операционных системах (1994-1996) и отражение их в стандартах POSIX (конец 90-х). Одной из самых существенных техниче-
ских трудностей при построении таких архитектур является необходимость обеспечения когерентности данных в локальных устройствах кэш-памяти каждого из процессоров.
В кластерных системах предполагается, что каждый из узлов является типовой вычислительной архитектурой со своим процессором, оперативной памятью, каналами ввода_вывода и т.д., а кооперация узлов осуществляется через некоторые каналы передачи данных между ними. В такой архитектуре распараллеливание работ реализуется на уровне процессов, каждый из кото-
рых выполняется на своём узле вычислительной структуры.
И та и другая модель имеет как свои преимущества, так и свои недос-
татки, баланс которых может существенно смещаться в зависимости от клас-
са решаемых задач. Все прочие многопроцессорные архитектуры могут рас-
сматриваться как линейная комбинация решений, почерпнутых из этих двух моделей.
Из приведённых общих соображений уже должно быть достаточно по-
нятно, что если SMP-структуры пригодны только для наращивания произво-
235
дительности системы, то кластерные системы, кроме того, могут быть ис-
пользованы и для повышения «живучести» системы в применениях, где должна быть обеспечена высокая надёжность. Действительно, в N -
процессорном кластере при выходе из строя любого количества хостов до
(N - 1) система может сохранять работоспособность (правда, обычно со сни-
жением общей производительности) за счёт перераспределения загрузки ме-
жду оставшимися хостами.
236
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1.Википедия [Электронный ресурс]: Операционная система. – Режим доступа: http://ru.wikipedia.org.
2.Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. –
СПб.: Изд-во «Питер», 2002. 740с.
3.Столлингс В. Операционные системы. – М.: Вильямс, 2002, 848с.
4.Таненбаум Операционные системы. – М.: Вильямс, 2006, 934с.
5.Робачевский А.М., Немнюгин С.А., Стесик О.Л. Операционная систе-
ма Unix. 2-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2005. 656с.
6.Соломон Д., Русинович А. Внутреннее устройство W2000. – М.: Виль-
ямс, 2001. 900с.
7.Фленов М.Е. Программирование на Delphi глазами хакера. – СПб.:
БХВ-Петербург, 2003. 336с
8.Фленов М.Е. Программирование на С++ глазами хакера. – СПб.:БХВ-
Петербург, 2006. 336с.
9.Джонсон М. Харт. Системное программирование в среде Win32. – М.:
Вильямс, 2001, 446с.
10. Мир советов [Электронный ресурс]: Установка Windows XP. – http://mirsovetov.ru/a/hi-tech/software/direction-windows-xp.html
11. [Электронный ресурс]: Загрузка Windows XP. – http://sysbin.com/files/articles/startupprocess/startupprocess.html
12.[Электронный ресурс]: Разработка пакетных файлов. – http://www.oszone.net/2245
13.[Электронный ресурс]: Работа с реестром. – http://forum.chel- net.ru/archive/index.php/t-6632.html
14.[Электронный ресурс]: Стсндартные процессы Windows XP. – http://md-forum.net/article219.html
15.Зыль С.Н. QNX Momentics: основы применения. – СПб.:БХВ-
Петербург, 2005. 256с.
16. [Электронный ресурс]: Файловый менэджер Midnight Commander . –
http://www.ixbt.com/soft/filemanagers-linux.shtml
237
17.Цилюрик О., Горошко Е. QNX/UNIX: анатомия паралеллизма. – СПб.:Символ-Плюс, 2006. 288с.
18.Операционная система реального времени QNX Neutrino 6.3. Системная архитектура: Пер. с англ. – СПб.: БХВ-Петербург, 2005. 336с.
19.Кёртен Р.Введение в QNX Neutrino 2. Руководство для разработчиков приложений реального времени. – СПб.:БХВ-Петербург, 2005. 400с.
20.[Электронный ресурс]: Последовательность загрузки QNX. – http://www.rts.ua/rus/articles/360/0/43/
21.Практика работы с QNX. Алексеев Д., Ведревич Е., Цилюрик О. и др.
–М.: КомБук, 2004. 432с.
22.Электронная энциклопедия «Википедия» [Электронный ресурс]: Виртуальные машины. – http://ru.wikipedia.org/wiki/Виртуальная_машина
23.[Электронный ресурс]: Работа с виртуальной машиной VmWare. – http://www.citforum.ru/operating_systems/seven/
24.М. Гук Аппаратные средства локальных сетей. Энциклопедия – СПб: Издательство «Питер», 2000. 576с.
25. |
[Электронный |
ресурс]: |
Сети |
Windows. |
– |
http://www.xnets.ru/plugins/content/content.php?content.20
26.Богумирский Б. Оптимизация и настройка Windows 98 для профессионалов. – СПб: Изд-во «Питер», 1999. 400с.
27.Касперский К. Техника и философия хакерских атак. – М.:Солон-Р,
1999. 272с.
28.Касперский К. Техника сетевых атак. – М.:Солон-Р, 2001. 396с.
29.Касперский К. Образ мышления – дизассемблер IDA. – М.:Солон-Р,
2001. 472с.
30.Касперский К. Укрощение Интернета. – М.:Солон-Р, 2002. 284с.
31.Касперский К. Фундаментальные основы хакерства. – М.:Солон-Р,
2002. 445с.
32.Айрапетян Р.А. Отладчик SoftICE подробный справочник – М.:Солон- Р, 2003. 302с.
33.Цилюрик О. QNX : кластерные вычисления СТА // СТА, 2004. №4.
С.54-62.
238