20432

Распределенные операционные системы

Доклад

Информатика, кибернетика и программирование

Распределенные операционные системы Существует два типа распределенных операционных систем. Поэтому давайте кратко обсудим операционные системы предназначенные для обыкновенных компьютеров с одним процессором. Операционные системы для однопроцессорных компьютеров Операционные системы традиционно строились для управления компьютерами с одним процессором. На время выполнения кода операционной системы процессор переключается в режим ядра.

Русский

2013-07-25

79 KB

29 чел.

7 5

1.4.1. Распределенные операционные системы

Существует два типа распределенных операционных систем. Мультипроцессорная операционная система (multiprocessor operating system) управляет ресурсами мультипроцессора. Мулътикомпъютерная операционная система (multicomputeroperating system) разрабатывается для гомогенных мультикомпьютеров. Функциональность распределенных операционных систем в основном не отличается от функциональности традиционных операционных систем, предназначенных для компьютеров с одним процессором за исключением того, что она поддерживает функционирование нескольких процессоров. Поэтому давайте кратко обсудим операционные системы, предназначенные для обыкновенных компьютеров с одним процессором.

Операционные системы для однопроцессорных компьютеров

Операционные системы традиционно строились для управления компьютерами с одним процессором. Основной задачей этих систем была организация легкого доступа пользователей и приложений к разделяемым устройствам, таким как процессор, память, диски и периферийные устройства. Говоря о разделении ресурсов, мы имеем в виду возможность использования одного и того же аппаратного обеспечения различными приложениями изолированно друг от друга. Для приложения это выглядит так, словно эти ресурсы находятся в его полном распоряжении, при этом в одной системе может выполняться одновременно несколько приложений, каждое со своим собственным набором ресурсов. В этом смысле говорят, что операционная система реализует виртуальную машину (virtual machine), предоставляя приложениям средства мультизадачности.

Важным аспектом совместного использования ресурсов в такой виртуальной машине является то, что приложения отделены друг от друга. Так, невозможна ситуация, когда при одновременном исполнении двух приложений, А и В, приложение А может изменить данные приложения В, просто работая с той частью общей памяти, где эти данные хранятся. Также требуется гарантировать, что приложения смогут использовать предоставленные им средства только так, как предписано операционной системой. Например, приложениям обычно запрещено копировать сообщения прямо в сетевой интерфейс. Взамен операционная система предоставляет первичные операции связи, которые можно использовать для пересылки сообщений между приложениями на различных машинах.

Следовательно, операционная система должна полностью контролировать использование и распределение аппаратных ресурсов. Поэтому большинство процессоров поддерживают как минимум два режима работы. В режиме ядра (kernelmode) выполняются все разрешенные инструкции, а в ходе выполнения доступна вся имеющаяся память и любые регистры. Напротив, в пользовательском режиме (user mode) доступ к регистрам и памяти ограничен. Так, приложению не будет позволено работать с памятью за пределами набора адресов, установленного для него операционной системой, или обращаться напрямую к регистрам устройств. На время выполнения кода операционной системы процессор переключается в режим ядра. Однако единственный способ перейти из пользовательского режима в режим ядра — это сделать системный вызов, реализуемый через операционную систему. Поскольку системные вызовы — это лишь базовые службы, предоставляемые операционной системой, и поскольку ограничение доступа к памяти и регистрам нередко реализуется аппаратно, операционная система в состоянии полностью их контролировать.

Существование двух режимов работы привело к такой организации операционных систем, при которой практически весь их код выполняется в режиме ядра. Результатом часто становятся гигантские монолитные программы, работающие в едином адресном пространстве. Оборотная сторона такого подхода состоит в том, что перенастроить систему часто бывает нелегко. Другими словами, заменить или адаптировать компоненты операционной системы без полной перезагрузки, а возможно и полной перекомпиляции и новой установки очень трудно. С точки зрения открытости, проектирования программ, надежности или легкости обслуживания монолитные операционные системы — это не самая лучшая из идей.

Более удобен вариант с организацией операционной системы в виде двух частей. Одна часть содержит набор модулей для управления аппаратным обеспечением, которые прекрасно могут выполняться в пользовательском режиме. Например, управление памятью состоит в основном из отслеживания, какие блоки памяти выделены под процессы, а какие свободны. Единственный момент, когда мы нуждаемся в работе в режиме ядра, — это установка регистров блока управления памятью.

Вторая часть операционной системы содержит небольшое микроядро (microkernel), содержащее исключительно код, который выполняется в режиме ядра. На практике микроядро должно содержать только код для установки регистров устройств, переключения процессора с процесса на процесс, работы с блоком управления памятью и перехвата аппаратных прерываний. Кроме того, в нем обычно содержится код, преобразующий вызовы соответствующих модулей пользовательского уровня операционной системы в системные вызовы и возвращающий результаты. Такой подход приводит к организации, показанной на рис. 1.8.

Использование микроядра дает нам разнообразные преимущества. Наиболее важное из них состоит в гибкости: поскольку большая часть операционной системы исполняется в пользовательском режиме, относительно несложно заменить один из модулей без повторной компиляции или повторной установки всей системы. Другой серьезный плюс заключается в том, что модули пользовательского уровня могут в принципе размещаться на разных машинах. Так, мы можем установить модуль управления файлами не на той машине, на которой он управляет службой каталогов. Другими словами, подход с использованием микроядра отлично подходит для переноса однопроцессорных операционных систем на распределенные компьютеры.

У микроядер имеется два существенных недостатка. Во-первых, они работают иначе, чем существующие операционные системы, а попытки поменять сложившееся «статус-кво» всегда встречают активное сопротивление («если эта операционная система подходила для моего деда — она подойдет и для меня»). Во-вторых, микроядро требует дополнительного обмена, что слегка снижает производительность. Однако, зная как быстры современные процессоры, снижение производительности в 20 % вряд ли можно считать фатальным.

Мультипроцессорные операционные системы

Важным, но часто не слишком очевидным расширением однопроцессорных операционных систем является возможность поддержки нескольких процессоров, имеющих доступ к совместно используемой памяти. Концептуально это расширение несложно. Все структуры данных, необходимые операционной системе для поддержки аппаратуры, включая поддержку нескольких процессоров, размещаются в памяти. Основная разница заключается в том, что теперь эти данные доступны нескольким процессорам и должны быть защищены от параллельного доступа для обеспечения их целостности.

Однако многие операционные системы, особенно предназначенные для персональных компьютеров и рабочих станций, не могут с легкостью поддерживать несколько процессоров. Основная причина такого поведения состоит в том, что они были разработаны как монолитные программы, которые могут выполняться только в одном потоке управления. Адаптация таких операционных систем под мультипроцессорные означает повторное проектирование и новую реализацию всего ядра. Современные операционные системы изначально разрабатываются с учетом возможности работы в мультипроцессорных системах.

Многопроцессорные операционные системы нацелены на поддержание высокой производительности конфигураций с несколькими процессорами. Основная их задача — обеспечить прозрачность числа процессоров для приложения. Сделать это достаточно легко, поскольку сообщение между различными приложениями или их частями требует тех же примитивов, что и в многозадачных однопроцессорных операционных системах. Идея состоит в том, что все сообщение происходит путем работы с данными в специальной совместно используемой области данных, и все что нам нужно — это защитить данные от одновременного доступа к ним. Защита осуществляется посредством примитивов синхронизации.

Мультикомпьютерные операционные системы

Мультикомпьютерные операционные системы обладают гораздо более разнообразной структурой и значительно сложнее, чем мультипроцессорные. Эта разница проистекает из того факта, что структуры данных, необходимые для управления системными ресурсами, не должны больше отвечать условию легкости совместного использования, поскольку их не нужно помещать в физически общую память. Единственно возможным видом связи является передача сообщений (messagepassing). Мультикомпьютерные операционные системы в основном организованы так, как показано на рис. 1.9.

Каждый узел имеет свое ядро, которое содержит модули для управления локальными ресурсами — памятью, локальным процессором, локальными дисками и т. д. Кроме того, каждый узел имеет отдельный модуль для межпроцессорного взаимодействия, то есть посылки сообщений на другие узлы и приема сообщений от них.

Поверх каждого локального ядра лежит уровень программного обеспечения общего назначения, реализующий операционную систему в виде виртуальной машины, поддерживающей параллельную работу над различными задачами. На деле, как мы сейчас кратко рассмотрим, этот уровень может даже предоставлять абстракцию мультипроцессорной машины. Другими словами, он предоставляет полную программную реализацию совместно используемой памяти. Дополнительные средства, обычно реализуемые на этом уровне, предназначены, например, для назначения задач процессорам, маскировки сбоев аппаратуры, обеспечения прозрачности сохранения и общего обмена между процессами. Другими словами, эти средства абсолютно типичны для операционных систем вообще.

Множество аспектов проектирования мультикомпьютерных операционных систем одинаково важны для любой распределенной системы. Основная разница между мультикомпьютерными операционными системами и распределенными системами состоит в том, что в первом случае обычно подразумевается, что аппаратное обеспечение гомогенно и полностью управляемо. Множество распределенных систем, однако, строится на базе существующих операционных систем.


 

А также другие работы, которые могут Вас заинтересовать

30906. Виды моторики пищеварительного тракта 49 KB
  Физиологические свойства и особенности гладкой мускулатуры пищеварительной трубки Гладкая мускулатура пищеварительной трубки состоит из гладкомышечных клеток ГМК. Межклеточные контакты ГМК пищеварительной трубки обеспечивает наличие нексусов. ГМК пищеварительной трубки обладают рядом физиологических свойств: возбудимостью проводимостью и сократимостью. Особенности возбудимости ГМК пищеварительной трубки: Возбудимость ГМК пищеварительной трубки ниже чем у миоцитов поперечнополосатой мускулатуры ППМ.
30907. Пищеварение в полости рта 27.5 KB
  Пищеварение в полости рта Секреция в ротовой полости В ротовой полости слюну вырабатывают 3 пары крупных и множество мелких слюнных желез. 1 Время нахождения пищи в ротовой полости в среднем 1618 секунд. Е нормальная микрофлора ротовой полости которая угнетает патологическую. В пределах ротовой полости ферменты слюны практически не оказывают влияния изза незначительного времени нахождения пищевого комка в ротовой полости.
30908. Пищеварении в желудке 38.5 KB
  Железы желудка состоят из трех видов клеток: Главные клетки вырабатывают ферменты; Париетальные обкладочные НCl; Добавочные слизь. Клеточный состав желез изменяется в различных отделах желудка в антральном нет главных клеток в пилорическом нет обкладочных. Стимулирует секрецию желез желудка. Стимулирует моторику желудка.
30909. Пищеварение в 12-перстной кишке 27.5 KB
  За сутки 1525 л панкреатического сока рН 7588. Специфические вещества поджелудочного сока: 1. Ферменты панкреатического сока. Пищеварительные ферменты поджелудочного сока Протеазы поджелудочного сока эндо и экзопептидазы: а Эндопептидазы действуют на молекулу изнутри расщепляя внутренние пептидные связи.
30910. Роль печени в пищеварении 29 KB
  Состав желчи: 1. Специфические вещества: желчные кислоты и желчные пигменты: билирубин основной пигмент у человека придает коричневую окраску; биливердин в основном в желчи травоядных животных зеленый цвет. Роль желчи в пищеварении: 1.Желчные кислоты как компонент желчи играют в пищеварении ведущую роль: эмульгируют жиры активируют поджелудочную липазу обеспечивают всасывание нерастворимых в воде веществ образуя с ними комплексы жирные кислоты холестерин жирорастворимые витамины А D Е К и соли Са2...
30911. Состав и свойства кишечного сока 44.5 KB
  Состав и свойства кишечного сока Сок тонкой кишки Объем суточной секреции 25 л. Сахараза Лактаза Мальтаза Изомальтаза Гаммаамилаза фиксирована к стенке кишки. Фосфатазы Щелочная фосфатаза Кислая фосфатаза Сок толстой кишки рН сока 8590. К специфическим веществам сока толстой кишки относится слизь которая обеспечивает формирование каловых масс.
30912. Всасывание 28.5 KB
  Всасываются глюкоза алкоголь некоторые лекарственные вещества валидол нитроглицерин назначаются под язык . В желудке всасываются вода алкоголь некоторые соли и моносахариды в минимальных количествах вещества растворенные в спирте всасываются в больших количествах. Всасываются: продукты гидролиза жиров белков углеводов вода минеральные соли витамины. В норме всасываются только низкомолекулярные вещества лишенные видовой и индивидуальной специфичности.
30913. Принципы регуляции деятельности пищеварительной сис 33.5 KB
  Принципы регуляции деятельности пищеварительной системы Общие принципы регуляции пищеварения 1. Механизмы регуляции пищеварения: делятся на: нервные и гуморальные. Нервная регуляция пищеварения Нервная регуляция пищеварения осуществляется за счет безусловных и условных рефлексов. Рефлекторная регуляция пищеварения имеет ряд особенностей: 1.
30914. Пластическая и энергетическая роль углеводов, жиров и белков 28 KB
  Пластическая роль липидов состоит в том что они входят в состав клеточных мембран и в значительной мере определяют их свойства. Большая часть жиров в организме находится в жировой ткани меньшая часть входит в состав клеточных структур. Они входят в состав клеточных структур в частности клеточных мембран а также ядерного вещества и цитоплазмы. Это вещество входит в состав клеточных мембран; оно является источником образования желчных кислот а также гормонов коры надпочечников и половых желез.