Электронный коспект лекций (1162752)
Текст из файла
Операционные системы распределенныхвычислительных систем (распределенные ОС)(Крюков В.А.)Лекция 1Распределенная система - совокупность независимыхкомпьютеров, которая представляется пользователю единымкомпьютером (metacomputer), использование которого ненамного сложнее, чем использование персональной ЭВМ.Введение в ОС однопроцессорных ЭВМ.Два взгляда: менеджер ресурсов; один слой в множестве слоев абстрактных машин.Представление ОС как менеджера ресурсовУправление процессамиУправление процессорамиПроцессорыУправление файламиУправление памятьюУправлениеустройствамиПамятьУстройстваПредставление ОС как абстрактной машиныАбстрактная машинаИнтерфейс пользователяИнтерфейс программыЯзыки управления заданиямиСистемаСистемные вызовыКомандные языкикомандПроцессы ПамятьОкна, меню, пиктограммыФайлыИнформационныефункцииМесто ОС среди ПОПрикладное ПО(отдельные приложения, пакеты прикладных программ,информационные системы, САПР)Системное ПО(ОС + системы программирования, СУБД, графические библиотеки,сервисные программы)История ОС.1940-е и 1950-е"Персональные ЭВМ" - "пультовый режим"Библиотека программ ввода-вывода, служебная программа.Инструкция оператору.Середина 1950-хПакетная обработка.
Однопрограммный и мультипрограммныйрежимы.Инструкция оператору -> паспорт задачи (простейший языкуправления заданиями).Требования к аппаратуре: защита памяти; прерывания; привилегированный режим; таймер.Как обеспечить мультипрограммный режим без таких механизмов.Середина 1960-хРежим разделения времени.Терминалы, квантование, свопинг, страничная и сегментнаяорганизация (общие сегменты памяти).1970-еМногопроцессорные ЭВМ, многомашинные комплексы, сетиЭВМ.1980-еПерсональные ЭВМ.1990-еMPP, открытые системы, Internet.2000-екластеры, распределенные системы, GRID, многоядерные имногопоточные процессоры.Лекция 21 Введение в параллельные и распределенные системы1.1 Достоинства многопроцессорных систем с общей памятью(мультипроцессоров)(1) Производительность(2) Надежность1.2. Недостатки(1) ПО (приложения, языки,ОС) сложнее, чем дляоднопроцессорных ЭВМ(2) Ограниченность при наращивании (физ.
размеры - близость кпамяти, когерентность КЭШей, 64 процессора - максимальнодостигнутое).1.2 Достоинства распределенных системРаспределеннаясистемасовокупностьнезависимыхкомпьютеров,которая представляется пользователю единымкомпьютером.Примеры: сеть рабочих станций (выборпроцессорадлявыполнения программы,единаяфайловаясистема),роботизированныйзавод (роботы связаны с разнымикомпьютерами, но действуют как внешние устройства единогокомпьютера,банксмножествомфилиалов,системарезервирования авиабилетов.Почему создаются распределенные системы? В чем ихпреимущества перед централизованными ЭВМ?1-ая причина - экономическая.Закон Гроша (Herb Grosh) - быстродействие процессорапропорционально квадрату его стоимости.С появлениеммикропроцессоров закон перестал действовать - за двойную ценуможно получить тот же процессор с несколько большейчастотой.2-ая причина - можнодостичьтакойвысокойпроизводительности путем объединения микропроцессоров,которая недостижима в централизованном компьютере.3-я причина - естественная распределенность (банк, поддержкасовместной работы группы пользователей ).4-ая причина - надежность (выход из строя нескольких узловнезначительно снизит производительность).5-я причина - наращиваемость производительности.В будущем главной причиной будет наличие огромногоколичества персональных компьютеровинеобходимостьсовместной работы без ощущения неудобства от географическогои физического распределения людей, данных и машин.Почему нужно объединять PC в сети?1.
Необходимость разделять данные.2. Преимуществоразделениядорогихпериферийныхустройств, уникальных информационных и программных ресурсов.3. Достижение развитых коммуникаций между людьми.Электронная почта во многих случаях удобнее писем, телефонов ифаксов.4. Гибкость использования различных ЭВМ,распределениенагрузки.5. Упрощениепостепенноймодернизациипосредствомзамены компьютеров.Недостатки распределенных систем:1. Проблемы ПО (приложения, языки , ОС).2. Проблемы коммуникационной сети (потери информации,перегрузка, развитие и замена).3. Секретность.1.3 Виды операционных систем (сетевые ОС, распределенныеОС, ОС мультипроцессоров).Сетевые ОС - машины обладают высокой степеньюавтономности, общесистемных требований мало. Можно вестидиалог с другой ЭВМ, вводить задания в ее очередь пакетныхзаданий, иметь доступ к удаленным файлам, хотя иерархиядиректорий может быть разной для разных клиентов.
Пример серверы файлов (многие WS могут не иметь дисков вообще).Распределенные ОС - единый глобальный межпроцессныйкоммуникационный механизм,глобальная схема контролядоступа, одинаковое видение файловой системы. Вообще иллюзия единой ЭВМ.ОС мультипроцессоров - единая очередь процессов, ожидающихвыполнения, одна файловая система.Компьютерная системавыглядит как виртуальныймультипроцессорОдна и та же ОСвыполняется на всехпроцессорахСколько копий ОС имеется впамятиИмеется ли единая очередьвыполняющихся процессовИмеется хорошоопределенная семантикаразделения файловСетеваяОСНЕТРаспределенная ОСНЕТДАNДА (очень условно все вглубину, начиная спараллельного)NНЕТНЕТДАОбычноНЕТДАДАДАОС мультипроцессораДА11.4.
Принципыпостроенияраспределенных ОС(прозрачность,гибкость,надежность, эффективность,масштабируемость).(1) Прозрачность (для пользователя и программы).ПрозрачностьрасположенияПрозрачностьмиграцииПрозрачностьразмноженияПрозрачностьконкуренцииПрозрачностьпараллелизмаПользователь не должен знать, гдерасположены ресурсыРесурсы могут перемещаться безизменения их именПользователь не должен знать,сколько копий существуетМножество пользователей разделяетресурсыавтоматическиРабота может выполняться параллельно без участияпользователя(2) Гибкость (не все еще ясно - потребуется менять решения).Использование монолитного ядра ОС или микроядра.(3) Надежность.Доступность, устойчивость к ошибкам (fault tolerance).Секретность.(4) Производительность.Грануллированность.
Мелкозернистый и крупнозернистыйпараллелизм(fine-grainedparallelism,coarse-grainedparallelism).Устойчивость к ошибкам требует дополнительныхнакладных расходов.(5) Масштабируемость.Плохие решения: централизованные компоненты (один почтовый-сервер); централизованные таблицы (один телефонный справочник); централизованные алгоритмы (маршрутизатор на основеполной информации).Только децентрализованные алгоритмы со следующими чертами: ни одна машина не имеет полной информации о состояниисистемы; машины принимают решения на основе только локальнойинформации; выход из строя одной машины не должен приводить котказу алгоритма; недолжнобытьнеявногопредположенияосуществовании глобальных часов.Лекция 32 Операционные системы мультипроцессорных ЭВМОрганизация ОС: главный-подчиненный (master-slave,выделение одногопроцессора для ОС упрощает ее, но этот процессорстановится узким местом с точки зрения загруженности инадежности); симметричная (наиболее эффективная и сложная).2.1Процессы и нитиПроцесс - это выполнение программы.
Компоненты процесса выполняющаяся программа, ее данные, ее ресурсы (например,память), и состояние выполнения.Традиционно, процесс имеет собственное адресное пространствои его состояние характеризуется следующей информацией: таблицы страниц (или сегментов); дескрипторы файлов; заказы на ввод-вывод; регистры; и т.п.Большой объем этой информации делает дорогимисоздания процессов, их переключение.операцииПотребность в легковесных процессах, нитях (threads), которыесовместно используют единое адресное пространство процесса,возникла еще на однопроцессорных ЭВМ (физические процессыили их моделирование, совмещение обменов и счета), но дляиспользованиядостоинств многопроцессорных ЭВМ с общейпамятью они просто необходимы.Процессы могут быть независимыми, которые не требуют какойлибо синхронизации и обмена информацией (но могутконкурировать за ресурсы), либо взаимодействующими.2.2.
Взаимодействие процессовЕсли приложение реализовано в виде множества процессов(или нитей), то эти процессы (нити) могут взаимодействоватьдвумя основными способами: посредством разделения памяти (оперативной или внешней) посредством передачи сообщенийПри взаимодействии через общую память процессы должнысинхронизовать свое выполнение.Различают два вида синхронизации - взаимное исключениекритических интервалов и координация процессов.Критические секции – частный случай критического интервала,когда критический интервал оформлен в виде конструкции языкапрограммирования.
Если не обеспечено взаимное исключениекритических интервалов, то недетерминизм, race condition (условиягонок).Процесс p1 выполняет оператор X = X+1,а процесс p2 - оператор X = X-1машинные коды выглядят так:Load R1,XLoad R1,XAdd R1,=”1”Sub R1, =”1”Store R1,XStore R1,XРезультат зависит от порядка выполнения этих команд.Требуется взаимноеисключениекритическихинтервалов.Решение проблемывзаимногоисключениядолжноудовлетворять требованиям: в любой момент времени только один процесс можетнаходиться внутри критического интервала; если ни один процесс не находится в критическом интервале, толюбой процесс, желающий войти в критический интервал,должен получить разрешение без какой либо задержки; ниодин процесс не должен бесконечно долго ждатьразрешения на вход в критический интервал (если ни одинпроцесс не будет находиться внутри критического интервалабесконечно долго); не должно существовать никаких предположений о скоростяхпроцессоров.Взаимноеисключениеоднопроцессорной ЭВМ.критическихинтерваловв1.
Блокировка внешних прерываний (может нарушатьсяуправление внешними устройствами, возможны внутренниепрерывания при работе с виртуальной памятью).2. Блокировка переключения на другие процессы (MONO,MULTI).Взаимное исключениекритическихинтерваловвмногопроцессорной ЭВМ.Программные решения на основе неделимости операций записии чтения из памяти (при чтении переменной всегда читаемпоследнее присвоенное ей значение) .Алгоритм Деккера (1968).Два процесса (нити) с номерами i=0 и i=1 в цикле регулярновходят в критический интервал и выходят из него.int turn;boolean flag[2 ];proc( int i ){while (TRUE){<вычисления>;enter_region( i );<критический интервал>;leave_region( i );}}void enter_region( int i ){try: flag[ i ]=TRUE;while (flag [( i+1 ) % 2]){if ( turn = = i ) continue;flag[ i ] = FALSE;while ( turn != i );goto try;}}void leave_region( int i ){turn = ( i +1 ) % 2;flag[ i ] = FALSE;}turn = 0;flag[ 0 ] = FALSE;flag[ 1 ] = FALSE;proc( 0 ) AND proc( 1 ) /* запустили 2 процесса */Алгоритм Петерсона (1981)int turn;int flag[ 2 ];void enter_region( int i ){int other;/* номер другого процесса */other = 1 - i;flag[ i ] = TRUE;turn = i;while (turn = = i && flag[ other ] = = TRUE)оператор */;/* пустой}void leave_region( int i ){flag[ i ] = FALSE;}Использование неделимой операции TEST_and_SET_LOCK.Операция TSL(r,s):[r = s; s = 1]Квадратные скобки неделимости операций.enter_region:используютсядляспецификацииtsl reg, flagcmp reg, #0/* сравниваем с нулем */jnz enter_region/* если не нуль - повторяемпопытку */retleave_region:mov flag, #0 /* присваиваем нуль*/retНедостатки такого "активного ожидания" при использованиикоманды TSL или алгоритмов Деккера или Петерсонабесполезная трата времени, нагрузка на общую память, ивозможность фактически заблокировать работу процесса,находящегося в критическом интервале.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.