Билеты (Graur) (1114773), страница 6
Текст из файла (страница 6)
Рис. 2 Архитектура SMP
Процессоры подключены к памяти либо с помощью общей шины, либо с помощью коммутатора. Отметим, что в любой системе с общей памятью возникает проблема кэширования: так как к некоторой ячейке общей памяти имеет возможность обратиться каждый из процессоров, то вполне возможна ситуация, когда некоторое значение из этой ячейки памяти находится в кэше одного или нескольких процессоров, в то время как другой процессор изменяет значение по данному адресу. В этом случае, очевидно, значения, находящиеся в кэшах других процессоров, больше не могут быть использованы и должны быть обновлены. В SMP-архитектурах обычно согласованность данных в кэшах поддерживается аппаратно.
Очевидно, что наличие общей памяти в SMP-архитектурах позволяет эффективно организовать обмен данными между задачами, выполняющимися на разных процессорах, с использованием механизма разделяемой памяти. Однако сложность организации симметричного доступа к памяти и поддержания согласованности кэшей накладывает существенное ограничение на количество процессоров в таких системах – в реальности их число обычно не превышает 32 – в то время, как стоимость таких машин весьма велика. Некоторым компромиссом между масштабируемостью и однородностью доступа к памяти являются NUMA-архитектуры, которые мы рассмотрим далее.
Системы с неоднородным доступом к памяти – NUMA.
Системы с неоднородным доступом к памяти (NUMA3) представляют собой промежуточный класс между системами с общей и распределенной памятью. Память в NUMA-системах является физически распределенной, но логически общедоступной. Это означает, что каждый процессор может адресовать как свою локальную память, так и память, находящуюся на других узлах, однако время доступа к удаленным ячейкам памяти будет в несколько раз больше, нежели время доступа к локальной памяти. Заметим, что единой адресное пространство и доступ к удаленной памяти поддерживаются аппаратно. Обычно аппаратно поддерживается и когерентность (согласованность) кэшей во всей системе
Системы с неоднородным доступом к памяти строятся из однородных базовых модулей, каждый из которых содержит небольшое число процессоров и блок памяти. Модули объединены между собой с помощью высокоскоростного коммутатора. Обычно вся система работает под управлением единой ОС. Поскольку логически программисту предоставляется абстракция общей памяти, то модель программирования, используемая в системах NUMA, обычно в известной степени аналогична той, что используется на симметричных мультипроцессорных системах, и организация межпроцессного взаимодействия опирается на использование разделяемой памяти.
Масштабируемость NUMA-систем ограничивается объемом адресного пространства, возможностями аппаратуры поддержки когерентности кэшей и возможностями операционной системы по управлению большим числом процессоров.
Кластерные системы.
Отдельным подклассом систем с распределенной памятью являются кластерные системы, которые представляют собой некоторый аналог массивно-параллельных систем, в котором в качестве ВУ выступают обычные рабочие станции общего назначения, причем иногда узлы кластера могут даже одновременно использоваться в качестве пользовательских рабочих станций. Кластер, объединяющий компьютеры разной мощности или разной архитектуры, называют гетерогенным (неоднородным). Для связи узлов используется одна из стандартных сетевых технологий, например, Fast Ethernet.
Главными преимуществами кластерных систем, благодаря которым они приобретают все большую популярность, являются их относительная дешевизна, возможность масштабирования и возможность использования при построении кластера тех вычислительных мощностей, которые уже имеются в распоряжении той или иной организации.
При программировании для кластерных систем, как и для других систем с распределенной памятью, используется модель передачи сообщений.
БИЛЕТ 17. Терминальные комплексы. Компьютерные сети.
Терминальные комплексы.
Исторически, одним из первых примеров многомашинных ассоциаций являлись терминальные комплексы. Терминальный комплекс это многомашинная ассоциация предназначенная для организации массового доступа удаленных и локальных пользователей к ресурсам некоторой вычислительной системы. При этом, к примеру, возможно использование терминальных комплексов для сбора и централизованной обработки информации (например, обработка результатов переписи населения или выборов) или для массового доступа удаленных пользователей к информации, размещенной в вычислительной системе (например, доступ пользователей к электронной библиотеке или система бронирования и продажи авиа или железнодорожных билетов). Временем появления подобных задач является конец 50-х – начало 60-х годов 20 века.
Структуру терминального комплекса можно примерно изобразить следующим образом.
Терминальный комплекс может включать в свой состав:
-
основную вычислительную систему – систему, массовый доступ к ресурсам которой обеспечивается терминальным комплексом;
-
локальные мультиплексоры – аппаратные комплексы, предназначенные для осуществление связи и взаимодействия вычислительной системы с несколькими устройствами через один канал ввода/вывода, в общем случае возможна схема M x N, где M – число обслуживаемых мультиплексором устройств, N число используемых для организации работы каналов ввода/вывода (M > N);
-
локальные терминалы – оконечные устройства, используемые для взаимодействия пользователей с вычислительной системой (это могут быть алфавитно-цифровые терминалы, графические терминалы, устройства печати, вычислительные машины, эмулирующие работу терминалов и т.п.) и, подключаемые к вычислительной системе непосредственно через каналы ввода/вывода или через локальные мультиплексоры;
-
модемы – устройства, предназначенные для организации взаимодействия вычислительной системы с удаленными терминалами с использованием телефонной сети. В функцию модема входит преобразование информации из дискретного, цифрового представления, используемого в вычислительной технике в аналоговое представление, используемое в телефонии и обратно (в общем случае модем это устройство, предназначенное для взаимного преобразования данных из различных форм представления, например, могут быть оптические модемы, преобразующие данные из цифрового формата в оптический, предназначенный для передачи по оптоволоконным линиям связи). Со стороны вычислительной системы модем подключается либо через канал ввода/вывода, либо через мультиплексор.
-
удаленные терминалы – терминалы, имеющие доступ к вычислительной системе с использованием телефонных линий связи и модемов.
-
удаленные мультиплексоры – мультиплексоры, подключенные к вычислительной системе с использованием телефонных линий связи и модемов.
Телефонная сеть состоит из набора телефонных станций, объединенных друг с другом линиями связи. Связь абонентов телефонной в том числе и связь удаленных терминалов с вычислительной системой осуществляется с использованием коммутируемого канала, либо по выделенным каналам. Суть соединения через коммутируемый канал заключается в том, что при нескольких звонках к одному и тому же абоненту, раз от раза маршруты коммутации (т.е. набор проводов, по которым идет сообщение) отличаются друг от друга, за счет того, что каждый раз выбираются свободные каналы в телефонных станциях по пути соединения. После завершения сеанса связи между абонентами коммутируемый канал освобождается. При использовании выделенного канала маршрут коммутации между абонентами фиксируется на период аренды выделенного канала. Достоинства/недостатки использования коммутируемых и выделенных каналов очевидны.
Линия связи, которая связывает один удаленный терминал с компьютером, называется линией связи типа точка-точка. Таким образом эта линия может быть либо выделенной (мы договариваемся с телефонными станциями и фиксируем коммутацию), либо коммутируемой.
Канал может быть многоточечным. При этом на входе находится удаленный мультиплексор. Многоточечные каналы также могут быть либо выделенными, либо коммутируемыми.
С точки зрения организации потоков информации можно выделить следующие разновидности каналов.
-
Симплексные каналы - каналы, по которым передача информации ведется в одном направлении (например, телевизионный канал – обеспечивает передачу информации только в одном направлении от передающей антенны к принимающей).
-
Дуплексные каналы - каналы, которые обеспечивают одновременную передачу информации в двух направлениях (например, телефонный разговор, мы одновременно можем и говорить и слушать).
-
Полудуплексные каналы - каналы, которые обеспечивают передачу информации в двух направлениях, но в каждый момент времени только в одну сторону (подобно рации).
Одним из примеров терминального комплекса может быть система NASDAQ (National Association of Securities Dealers Automated Quatation), построенная в 60-70-х годах 20 века и предназначенная для сбора и передачи сообщений о курсах акций на бирже. Система была построена на использовании мощной, по тем временам, вычислительной машины Univac-1108 и значительного числа терминалов (несколько тысяч), установленных в биржевых конторах по всей территории США.
Многомашинные вычислительные комплексы
Многомашинные вычислительные комплексы (ММВК) - это программно аппаратное объединение группы вычислительных машин, в которых:
-
На каждой из машин работает своя операционная система (этот признак отличает ММВК от многопроцессорного вычислительного комплекса).
-
В ММВК имеются общие физические ресурсы, например ОЗУ, ВЗУ или общие каналы связи (а, следовательно, имеются проблемы синхронизации доступа).
ММВК использовались в качестве систем сбора и обработки больших наборов данных, и для организации глобальных терминальных комплексов. ММВК появились в начале 60-х и сейчас продолжают успешно существовать. Одно из основных применений ММВК - это дублирование вычислительной мощи, примером таких систем может служить любая система управления важными технологическими процессами.
В ММВК общий ресурс является общим не только для всех ВС, но и для групп ВС, благодаря этому мы можем организовывать ММВК сложной структуры, необходимой для решения конкретной проблемы (Например, ММВК для продажи авиабилетов и ММВК для параллельного проведения какого-нибудь сложного научного расчета). Мы также обсудили тот факт, что в ММВК на каждой из машин работает своя операционная система. Отсюда вытекает, что все проблемы взаимодействия должны решаться на уровне взаимодействия ОС. Система, аналогичная ММВК, но в которой работает одна ОС, - многопроцессорная ВС. Существуют задачи, для которых не хватает средств, предоставляемых терминальными комплексами. Это, например, проблема организации больших баз данных. В этом случае используют ММВК.
В ММВК имеется проблема синхронизации доступа к разделяемым ресурсом. Разделяемыми ресурсами могут быть устройства внешней памяти, ОЗУ, каналы связи, соединенные двумя или более компонентами вычислительного комплекса. Рассмотрим такой пример. У нас есть ММВК, состоящий из двух ВС. Разделяемый ресурс - жесткий диск. Проблема в данном случае явно формулируется так: «Нужно научить две ВС синхронизированно обмениваться с HDD.» Т. е. если программа одной ВС что-то пишет на HDD, то область данных, в которую она пишет или весь HDD должны быть заблокированы для другой ВС (Проблема напоминает проблему семафоров). Одно из решений - коммутатор HDD, некий контроллер, который имеет команду, блокирующую HDD. При начале обмена одной вычислительной системы доступ к HDD заблокирован для других ВС. А эта ВС в монопольном режиме использует HDD. Если другая ВС попытается начать обмен с HDD возможны два решения:
-
синхронное ожидание;
-
асинхронное ожидание (система не будет простаивать, она временно остановит процесс, подавший заказ на обмен и активизирует другой процесс).
На самом деле коммутаторы, конечно, более интеллектуальны. Они, например, устанавливают блокировку не на весь HDD, а только на некоторые его блоки.
Приведенное выше решение привлекает своей технической простотой как с аппаратной точки зрения, так и с точки зрения программной реализации (нет сложных взаимосвязей), но оно имеет существенный недостаток. ВС может заблокировать HDD и после этого зациклиться. Для борьбы с такими ситуациями можно использовать различные устройства, отличные от коммутатора HDD, позволяющие послать сигнал от одной ВС к другой. Это может быть, например, низкоскоростной канал связи (скорость передачи нам здесь не нужна).
БИЛЕТ 18
Базовые понятия, определения, структура
Операционная система – это комплекс программ, обеспечивающий контроль за существованием (некоторые из ресурсов ВС, как мы знаем, являются программными или логическими/виртуальными и создаются под контролем операционной системой), распределением и использованием ресурсов ВС.
Любая ОС оперирует некоторым набором базовых сущностей (понятий) на основе которых строится логика функционирования системы. Например, подобными базовыми понятиями могут быть задача, задание, процесс, набор данных, файл, объект.
Одним из наиболее распространенных базовых понятий ОС является процесс.
Интуитивно определение процесса достаточно просто, но определить процесс строго, формально, достаточно сложно. Поэтому существует целый ряд определений процесса, многие из которых системно-ориентированы.
Процесс – это совокупность машинных команд и данных, исполняющаяся в рамках ВС и обладающая правами на владение некоторым набором ресурсов. Эти права могут быть эксклюзивными, когда ресурс принадлежит только этому процессу. Некоторые из ресурсов могут разделяться, т. е. одновременно принадлежать двум и более процессам, в этом случае мы говорим о разделяемых ресурсах.