Архитектура типа клиент-сервер на основе микроядра

      Комментарии к записи Архитектура типа клиент-сервер на основе микроядра отключены

Архитектура типа клиент-сервер в настоящее время является наиболее совершенной с точки зрения расширяемости и переносимости операционных систем.

Идея архитектуры клиент-сервер состоит в следующем: все компоненты операционной системы разделяются на программы – поставщики услуг (программы серверы, выполняющие определенные действия по запросам других программ), и программы – потребители услуг (программы клиенты, обращающиеся к серверам для выполнения определенных действий). Заметим здесь, что одна и та же программа может быть одновременно сервером по отношению к одному виду услуг и клиентом по отношению к другому виду услуг.

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

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

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

Уменьшено: 89% от [ 572 на 422 ] — нажмите для просмотра полного изображения

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

Таким образом, архитектура клиент-сервер обеспечивает следующие основные преимущества:

• переносимость операционной системы, т.к. серверы, работающие в пользовательском режиме, аппаратно независимы;

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

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

Указанные преимущества делают архитектуру клиент-сервер наиболее подходящей для построения операционных систем, удовлетворяющих современным требованиям.

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

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

Такая организация операционной системы позволяет достичь удачного компромисса гибкость/производительность, и, в конечном итоге, получить производительность, близкую к производительности классической многоуровневой системы в сочетании с максимально простой переносимостью и расширяемостью.

Драйверы.

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

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

Утилиты DOS

Утилитами обычно называют внешние команды (программы), входящие в стандартный комплект DOS в виде отдельных загрузочных файлов и выполняющие сервисные функции. В DOS входят более десятка утилит, предназначенных для разных целей. При практической работе наиболее часто используются лишь некоторые из них: FORMAT.COM, CHKDSK.EXE, MODE.COM. Реже используются другие программы: FDISK.EXE, DISKCOPY.COM, RESTORE.EXE, PRINT.EXE, GRAPHICS.GOM, TREE.COM и пр.

К утилитам DOS относят иногда текстовый редактор EDIT.COM и интерпретатор языка бейсик — QBASIC.EXE, однако правильнее относить их к категории системных или прикладных программ. С другой стороны, любые новые прикладные программы, ориентированные на реализацию тех или иных сервисных функций, можно также считать утилитами DOS.

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

Вопросы для активизации и создания проблемной ситуации.

1. Что входит в состав программного обеспечения ПК?

2. По каким признакам классифицируются операционные системы? Что такое файловая система?

3. Что такое текущий каталог и текущий диск?

4. Что такое командная строка, аргументы командной строки?

5. Дайте определение термину командный файл.

6. Что такое команда MS DOS? Приведите примеры.

7. Опишите процедуру загрузки DOS. Что такое операционные оболочки и каковы их основные функции?

8. Как производится поиск файлов с помощью шаблонов?

Лекция № 14. Сети и телекоммуникации (1 час)

Цель лекции: изложить главные принципы построения и функционирования

компьютерных (вычислительных) сетей; познакомить с основами работы в локальной компьютерной сети; рассмотреть топологию сети.

Вопросы лекции:

1. Назначение и классификация компьютерных сетей. Распределенная обработка данных.

2. Обобщенная структура компьютерной сети

3. Классификация вычислительных сетей

4. Характеристики коммуникационной сети

5. Сетевая безопасность.

6. Классификация угроз

Содержание лекции:

Современные информационные системы продолжают возникшую в конце 70-х гг. тенденцию распределенной обработки данных. Начальным этапом развития таких систем явились многомашинные ассоциации – совокупность вычислительных машин различной производительности, объединенных в систему с помощью каналов связи. Высшей стадией систем распределенной обработки данных являются компьютерные (вычислительные) сети различных уровней – от локальных до глобальных.

Пользователи локальных вычислительных сетей (ЛВС) получают доступ к сетевому ресурсу файл-сервера с рабочих станций. Работа в многопользовательской системе требует выполнения определенных правил. В первую очередь это касается организации защиты пользовательских каталогов и файлов в сети, которая представляет собой систему коллективного доступа к некоторому разделяемому ресурсу (жесткий магнитный диск, принтер и плоттер)

seL4. Лекция 1. Часть 1. Введение в микроядра и seL4