РОС, 01 лекция (от 08 февраля)
Материал из eSyr's wiki.
Что такое РОС? РОС — ОС распределённых систем. Лучше говорить, что распределённых вычислительных систем.
РВС — совокупность компьютеров, которая представляется пользователю как некий единый компьютер, с которым работать не намного сложнее, чем с персональной ЭВМ, и тут как раз много сложностей. На какой персональной ЭВМ? На той, которая появилась в начале 80-х или на той, которая появится через 5 лет? Может оказаться, что на второй работать сложнее. Мы наверняка столкнёмся с тем, что расп. системы у нас будут на столе в одном корпусе. РВС — система компьютеров, которые могут работать самостоятельно. Если мы посмотрим, где лежит грань, когда совокупность компьютеров перестаёт быть распр. системой, то мы можем её нащупать: объединили компьютеры, потом отняли клавиатуру, убрали диски, а рпоблемы организации видения этой машины как некоего единого компьютера остаются теми же, когда мы решаем, что у компьютера единая память, то мы уже переходим к другому понятию, многопроц. системе, а не РВС.
Сегодня вводная лекция, будет рассказана история РВС. Далее будет про архитектуру и как писать программы. Эти две лекции — то, что должны уже знать.
Как такую же работу, как на многопроцессоре, можно организовать,когда непосредственно одна машина не может использовать ресурсы другой, которые связаны только коммуникациями. Оказывается, что для этого надо написать программу, которая будт иметь много процессов, не заботясь о физическом нахождении процессов, далее окажется, что механизмы синхр., которые исп. в мультипроцессорах, также не подходят. Следующий шаг: удобно писать программы из нескольких процессов, когда они общаются через общую память, и надоу на РВС это эмулировать. Та же проблема сфайлами. Мы хотим работать с данными, которые находятся в ВС, и работать вне зависимости от того, где физически находится процесс, что в итоге приводит к распределённым ФС. РФС и SHMem опираются на механизм синхронизации. Казалось бы, мы всё это создали. Но в силу распределённости и удалённости машин нам нужно думать о надёжности. Из того, что мы научились собирать компьютеры из монжества компонент, мы стремимя собирать их как можно мощнее, собираем из 100, 1000, 100000 процессоров, замый мощный компьютер имеет порядка 200000 процессоров, и тут уже сбои заметны. Поэтому завершающая лекция о надёжности.
Такой подводный камень: есть конспекты лекции, которые можно найти на сайте кафедры в разделе информация, каждый может поглядеть на эти лекции и увидеть, что там всё описано, лектор советует посмотреть вопросы к экзамену, и эти вопросы есть задачи, которые охватывают весь материал, и в которых фактически придумывать алгоритм, которого в лекциях нет.
Обычно лектор слышит на экзамене, что по программистским дисциплинам не бывает таких задач, что всё делает параллельно, и возникают коллизии, что-то возникает одновременно, и часто при этой одновременности алгоритмы перестают работать.
Можно воспринимать это отступление как рекоммендацию ходить на лекции, или как рекоммендацию посмотреть вопросы заранее, и, если не можете дать ответы, прийти хотя бы на консультацию.
Что такое ОС
Обычно ОС определяют как систему программ, которые выполняют две группы функций: они позволяют предоставить пользователю более удобную машину, чем физическая машина, вторая функция: обеспечить эффективное использование физической машини разными программами, разными пользователями (менеджер ресурсов). Большинство ОС постороено так, что эти группы функций переплетаются, но есть примеры, где они разнесены, когда делали System/360, а у нас копипасту ЕС серия 2, то там монитор только позволял запускать несколько операционных систем, и это позволяло запускать несколько разных ОС, отлаживать ОС, и это позволяло частично решить проблему с дефицитом машин, и механизм виртм. машин это решал.
Когда первые машины появились, системы были однопользовательские, и там не решалась проблема менеджмента ресурсов.
Казалось, что механизм виртуальных машин это что-то прошлое, но сейчас это опять стало актуальным.
Дальше в этом направлении лектор не будет двигаться, пойдём по годам, история.
История
- Середина 40-х, началао 50-х. В это время ЭВМ использовались в режиме персональных ЭВМ (тогда решались очень секретные задачи, поэтому надо дверь закрыть). В то время оператор один работал с программой, просматривать и изменять содержимое памяти, в особенности по прошествии времени было понятно, какое это хорошее время. тогда системные программисты создали управляющую программу и библиотеку ввода-вывода. Когда мы говорим о том, что ОС создаёт некую адстрактную машину, то надо понимать, что тут етсть две компоненты: интерфйс прогрпамм и интерфейс пользователя (это не обязательно пользователь, это может быть программист). И когда мы говорим, о той помощи, которые обеспечивали системные программисты, то есть упраляющая программа обеспечивала интерфейс пользователя, а библ. IO обеспечивала интерфейс с внешними устройстваими, без этого было сложно, и это интерфейс программ. Тогда понятия ОС не было, оно появилось позже. Когда так работали, то поняли, что очень много времени уходит на работу с машиной, и решили, чтобы машинну эффективно использовать, учёных надо подальше, а за машини посадить операторов. Лектор представлял себе операторов как девушек, которые закончили 10 классов, не поступили в универ, но собирались поступить. Чтобы оператор мог выолнить программу, нужны были инструкции, и к колоде перфокарт прилагались инструкции: если порграмма 5 минут молчит, то сбросить, выдать дамп такого-то участка памяти, и так далее. Программист приносил колоды с интсрукциями, а оператор выполнял их по мере освобождения машины, это всё равно отнимало много времени и затрудняло отладку
- Середина 50-х годов. Пакетный режим. Заранее все программы вводятся на магнитную ленту, эту ленту можно было нести на центральный компьютер, там отрешать эти задачи, на друкгую ленту собрать результат, её вернуть на машину, где лучше распечатывать результаты. Потом сообразили, что эти ленты могли быть общими, потом поняли, что этим может заниматься центральный компьютер, главное, чтобы он не стоял. Тогда и появилась ОС, то есть система, автоматизирующая работу оператора. Тогда же появился паспорт задачи, аналог инструкций. Что же должна была делать ОС, которая обеспечивала пакетный режим? ОС загружена в ОП, она загружает проргамму или программы в оставшуюся часть памяти, это одно- или многопрограммный режим. Иногопрограммный режим нужен тогда, когда одна программа тратит время на ввод/вывод, это отражение находит в аппаратуре, Multithreading.
Требования к аппаратуре для реализации мультипрограммного режима:
- Прерывания. Машина раньше останавливалась по команде стоп. Я сно, что в многопрограммной среде нельзя останавливать машину, нужен механизм прерываний, которые позволяют среагировать ОС. Прерывания могут быть порграммные, ввода/вывода
- Защита памяти. Ясно, что мы не должны давать программам писать в области памяти, кроме своей.
- Привилегированный режим. В режиме ОС разрешается делать что угодна, а в непривилегированном — нет.
- Таймер.
Операционные системы после 60-х годов сформировались, и не претерпели далее такого изменения, как за первые два десятка лет.
- 60-е года. Режим разделения времени. При пакетном режиме отладка сильно замедлилась, и появилась потребность вернуть диалог пользователя, но уже на другом уровне. Появлися механизм терминалов. Изначально казалось, что это устройство ввода и вывода. Потом стало понятно, что нужна ещё кнопка внимания. Далее потребовалось, чтобы простые запросы выполнялись быстро. Это то, что на поверхности. То, что не на поверхности — рганизация работы с памятью. Когда мы работали в пакетном режиме, то мы вполне могли разместитть несколько задач, которые позволяют загрузить процессор. За счёт чего загружался процессор — за счёт одновременной работы устройств ввода-вывода и процессора. Здесь же множество терминалов, пользователи работают медленно, но в памяти разместить всё невезможно, и тогда появилась страничная, сегментная организация памяти, и работа с памятью — одна из самых сложных функций ОС. Эта и работа ФС — две самых сложных функции. Распределение времени заставило придумать такие способы. Было время, когда столкнулись с противоречием: если 100 пользователй работают с редактором, то возникает вопрос, зачем его дублировать, и тогда сначлаа придумывать делать многостаночные редакторы, но получается, что внутри редактора маленькая ОС, но тут могли быть ошибки, и из-за ошибки, вызванной одним пользователем работу теряли многие. В связи с этим это было трудно работать в многопользовательском режиме. Ибо путь маленькой ОС неправильный, правильно, чтобы у каждого был свой редактор, но в памяти один сегмент кода.
Оказывается, что указанные выще аппаратные требования обязательные, если убрать любое из них, то невозможна реализация ни мультипрограммного режима, ни режима разделения времени.
Альтернатива: интерпретация, когда весь код интерпретируется. Это жутко тормозит, но позволяет отказаться от части апп. требований.
Другой вариант — использование средств компилятора и строгий язык, в этом случае можно вставить дополнительные проверки.
- 70-е. Многопроцессорные ЭВМ. Комплексы ЭВМ. Сети ЭВМ. Цели: специализация, эффективность, надёжность.
- Специализация — иногда лучше подождать, пока универсальные процессоры достигнут требуемой производительности, иногда
- Эффективность —
- Надёжность — когда один процесс ломается, другой продолжает работу
Когда на многопроцессороной системе ОС работает на каждой системе, то она должна уметь обслуживать процессы с других процессоров, и так далее. Первое время ОС делали только на одном процессоре, но это не хорошо.
По поводу специализации: мы разрабатывали с НИИЦЭВТом ЕС 91 нам доверили разработать процессор под ОС. И пока делали, появился 386-ой, который обгоняет специализированный процесор.
- 80-е ПЭВМ. Появились менюшки, пиктограммы. Очень быстро ОС из простеньких превратились в сложные. Всё вернулось, но продвинулись по части интерфейса.
- 90-е массово параллельные процессоры (MPP). Многопроцессорные системы с распределённой памятью хороши, но плохо масштабируемые.
Ничего нового для людей не было. Как писать программы без общей памяти давным давно предложил Хор, к этому нормально относились. По настоящему массово параллельных программ писать нужно мало. Но программирование очень сложное.
Интересно, что интерес в Европе к многопроцессорным машинам, транспьютерами проявился ещё в середине 80-х.
На этой платформе соревнуются и общаются Windows и UNIX.
Интернеты. Со времён появления сетей серьёзно анализу и изменению подвергался механизм защиты.
- 2000-е. Кластеры. Распределённые системы. GRID. Встала остро проблема обучения персонала.
Если раньше написали последовательную программу, которая с каждым новым апгрейдом версией работала всё быстрее, то теперь будет всё медленнее.
Распределённые операционные системы
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
Календарь
пт | пт | пт | пт | пт | |
Февраль
| 08 | 15 | 22 | 29 | |
Март
| 06 | 13 | 20 | 27 | |
Апрель
| 04 | 11 | 18 | 25 | |
Май
| 02 | 16 | 23 |