Классификация архитектур ОС
3. Микроядерная (или архитектура «клиент-сервер»)
Монолитная архитектура
В состав монолитной ОС:
• Основная программа, которая может вызывать требуемую служебную процедуру.
• Набор служебных процедур, для выполнения какой-либо операции (управление памятью, файлами и т.д.)
• Набор вспомогательных процедур, содействующих работе служебных процедур.
• При использовании этой технологии каждая процедура(программа) может свободно вызвать любую другую процедуру(программу), если та выполняет для неё какое-нибудь полезное действие.
Достоинства монолитного ядра:
· упрощённая разработка модулей;
· богатство предоставляемых возможностей и функций;
· поддержка большого количества разнообразного оборудования.
Недостатки монолитного ядра:
· поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы;
· присутствие в ядре лишних компонентов крайне нежелательно, так как ядро всегда полностью располагается в оперативной памяти.
Уровневая архитектура
Прикладное ПО имеет возможность получить доступ к аппаратуре не только через ядро системы и её сервисы, но и напрямую.
Достоинства: по сравнению с монолитной такая архитектура обеспечивает значительно большую степень предсказуемости реакций системы, а также позволяет осуществлять быстрый доступ прикладных приложений к аппаратуре.
· Интерфейс уровня с остальными уровнями становится громоздким. Поэтому заменить уровень новым или нарастить его функциональность становится сложной задачей;
· Если потребуется ввести новые функции в уровень, то необходимо вносить изменения и в соседние уровни для возможности обращения к этим функциям;
· Проблема безопасности, т. к. между уровнями много точек обмена.
12. Классификация архитектур ОС. Микроядерная и гибридные архитектуры. Достоинства и недостатки
Классификация архитектур ОС
3. Микроядерная (или архитектура «клиент-сервер»)
Микроядерная архитектура (или архитектура «клиент-сервер»)
все компоненты операционной системы разделяются на:
• Программы-серверы – поставщики услуг (выполняющие определенные действия по запросам других программ)
• Программы-клиенты – потребители услуг (программы клиенты, обращающиеся к серверам для выполнения определенных действий).
• Одна и та же программа может быть одновременно сервером по отношению к одному виду услуг и клиентом по отношению к другому виду услуг.
- Серверы постоянно находится в состоянии ожидания клиентских запросов.
- В случае необходимости, клиенты посылают серверам запросы (например, запрос на чтение файла, запрос на выделение памяти, запрос на вывод результатов на экран)
- Получив запрос от клиента, сервер выполняет его, при этом он сам может обратиться за услугами к другим серверам.
- После выполнения запроса сервер отсылает клиенту сообщение о завершении задания и результаты работы.
- Клиенты и серверы никогда не общаются напрямую, а через микроядро.
- При этом микроядро само является сервером по отношению к запросам, связанным с управлением аппаратурой и клиентом при обращении к аппаратуре.
Достоинства: устойчивость к сбоям оборудования, ошибкам в компонентах системы, расширяемость, переносимость и совместимость.
Недостаток: производительность микроядерной операционной системы заметно ниже производительности многоуровневых и монолитных операционных систем из- за частых переключений из режима ядра в режим пользователя.
Гибридные архитектуры
Гибридные ядра — это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра.
- Гибридное ядро ОС кроме функций посредника (микроядра)выполняет следующие дополнительные функции как в монолитных ОС:
• низкоуровневое управление памятью;
• взаимодействие между процессами (программами);
Достоинства: возможно добавлять драйвера устройств двумя способами: и внутрь ядра, и в пользовательское пространство.
· производительность микроядерной операционной системы заметно ниже производительности многоуровневых и монолитных операционных систем из- за частых переключений из режима ядра в режим пользователя;
· поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы;
· присутствие в ядре лишних компонентов крайне нежелательно, так как ядро всегда полностью располагается в оперативной памяти.
13. Понятие ресурса. Назначение основных таблиц ОС по управлению ресурсами.
Ресурс – средство вычислительной системы, которое может быть выделено процессу на определенный интервал времени.
Ресурсы могут быть:
§ делимыми, когда несколько процессов используют их одновременно (в один и тот же момент времени) или параллельно (попеременно в течение некоторого интервала времени) – пример – файл;
§ неделимыми, используемыми программой единолично – пример – выделяемая процессу память.
ОС управляет следующими основными ресурсами;
- — процессором (процессорами, ядрами);
- — программами (процессами);
- — памятью (физическая и виртуальная);
- — устройствами ввода-вывода;
- — файлами;
- — таймерами;
- — и др.
Что хранится в таблицах памяти?
Эти таблицы включают следующую информацию:
1) объем основной (физической) памяти, отведенной процессу;
2) объем вторичной или виртуальной памяти, отведенной процессу;
3) все атрибуты защиты блоков основной и виртуальной памяти;
4) всю информацию, необходимую для управления виртуальной памятью.
Что хранится в таблицах ввода – вывода?
1. Используются для управления устройствами ввода-вывода.
2. В каждый момент времени устройство ввода-вывода может быть либо свободным, либо отданным в распоряжение какому-либо процессу.
3. Если выполняется операция ввода-вывода, то должна быть информация о состоянии этой операции.
Что хранится в таблицах файлов?
В них находится информация о существующих файлах, их расположение на носителях, текущем состоянии, атрибутах доступа, других атрибутах.
14. Понятие процессора. Модель процессора. Переход процессора из одного состояния в другое по диаграмме процесса.
Процесс – это система действий, реализующая выполнение программы в компьютерной системе («Процесс – это домик в котором живет программа»).
1. Новый процесс. Только что созданный процесс, информация о процессе помещена ОС во множество (таблицу) процессов, но процесс не загружен в оперативную память.
2. Готовый к выполнению. Процесс загружен в память и будет запущен, как только представится возможность.
3. Выполняющийся. Процесс, выполняющийся процессором в данный момент.
4. Блокированный. Процесс, который ожидает некоторого события.
5. Завершающийся. Процесс, удаленный из множества запущенных процессов.
1 Понятие операционной системы. Классификация операционных систем
Понятие операционной системы.
Операционная система (ОС)– это комплекс программного обеспечения, основная задача которого обеспечивать возможность рационального использования оборудования компьютера наиболее удобным для пользователя образом.
Обобщённую структуру вычислительной системы можно представить в виде совокупности технического и программного обеспечения. Техническое обеспечение: процессор, память, монитор, дисковые устройства и т.д. Всепрограммное обеспечениепринято делить на две части: прикладное и системное. Кприкладному программному обеспечению, как правило, относятся разнообразные пользовательские программы, игры, текстовые процессоры и т.п.
Системное программное обеспечение – комплекс программ, способствующих функционированию и разработке прикладных программ.
Таким образом, операционная система является фундаментальным компонентом системного программного обеспечения.
Существует несколько подходов для классификации операционных систем. Можно отметить следующие критерии классификации:
По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
многозадачные (Unix,OS/2,Windows), полностью реализует мультипрограммный режим;
однозадачные (например, MS-DOS).
– поддержка многопользовательского режима.
По числу одновременно работающих пользователей ОС можно разделить на:
многопользовательские (WindowsNT,Unix), характеризуются наличием у механизмов защиты персональных данных каждого пользователя.
По этому критерию ОС делятся на:
многопроцессорные, характеризуются поддержкой мультипроцесси-рования и более сложными алгоритмами управления ресурсами (Linux,Solaris,WindowsNTи в ряде других).
Многопроцессорные системы состоят из двух или более центральных процессоров, осуществляющих параллельное выполнение команд.
Многопроцессорные ОС делятся на:
симметричные, в которых на каждом процессоре функционирует одно и то же ядро и задача может быть выполнена на любом процессоре, то есть обработка полностью децентрализована;
асимметричные, в которых процессоры неравноправны, т.е. существует главный процессор (master) и подчиненные (slave), загрузку и характер работы которых определяет главный процессор.
– работа в режиме реального времени.
Для работы в режиме реального времени предназначены специализированные ОС.
Системы реального времени– операционные системы, характеризуемые предельно допустимым временем реакции на внешнее событие, в течение которого должна быть выполнена программа, управляющая объектом.
Основное требование – система должна обрабатывать поступающие данные быстрее, чем те могут поступать, причем от нескольких источников одновременно.
Системы реального времени используются для управления различными техническими объектами или технологическими процессами.
Столь жесткие ограничения сказываются на архитектуре систем реального времени, например, в них может отсутствовать виртуальная память, поддержка которой дает непредсказуемые задержки в выполнении программ.
1.6. Классификация операционных систем
Все многообразие существующих (и ныне не использующихся) ОС можно классифицировать по множеству различных признаков. Остановимся на основных классификационных признаках.
По назначению ОС делятся на универсальные и специализированные. Специализированные ОС, как правило, работают с фиксированным набором программ (функциональных задач). Применение таких систем обусловлено невозможностью использования универсальной ОС по соображениям эффективности, надежности, защищенности и т.п., а также вследствие специфики решаемых задач [10].
Универсальные ОС рассчитаны на решение любых задач пользователей, но, как правило, форма эксплуатации вычислительной системы может предъявлять особые требования к ОС, т.е. к элементам ее специализации.
По способу загрузки можно выделить загружаемые ОС (большинство) и системы, постоянно находящиеся в памяти вычислительной системы. Последние, как правило, специализированные и используются для управления работой специализированных устройств (например, в БЦВМ баллистической ракеты или спутника, научных приборах, автоматических устройствах различного назначения и др.).
По особенностям алгоритмов управления ресурсами. Главным ресурсом системы является процессор, поэтому дадим классификацию по алгоритмам управления процессором, хотя можно, конечно, классифицировать ОС по алгоритмам управления памятью, устройствами ввода-вывода и.т.д.
Поддержка многозадачности (многопрограммности). По числу одновременно выполняемых задач ОС делятся на 2 класса: однопрограммные (однозадачные) – например, MS-DOS, MSX, и многопрограммные (многозадачные) – например, ОС ЕС ЭВМ, OS/360, OS/2, UNIX, Windows разных версий.
Однопрограммные ОС предоставляют пользователю виртуальную машину, делая более простым и удобным процесс взаимодействия пользователя с компьютером. Они также имеют средства управления файлами, периферийными устройствами и средства общения с пользователем. Многозадачные ОС, кроме того, управляют разделением совместно используемых ресурсов (процессор, память, файлы и т.д.), это позволяет значительно повысить эффективность вычислительной системы.
Поддержка многопользовательского режима. По числу одновременно работающих пользователей ОС делятся: на однопользовательские (MS-DOS, Windows 3х, ранние версии OS/2) и многопользовательские (UNIX, Windows NT/2000/2003/XP/Vista).
Главное отличие многопользовательских систем от однопользовательских – наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей. Следует заметить, что может быть однопользовательская мультипрограммная система.
Виды многопрограммной работы. Специфику ОС во многом определяет способ распределения времени между несколькими одновременно существующими в системе процессами (или потоками). По этому признаку можно выделить 2 группы алгоритмов: не вытесняющая многопрограммность (Windows3.x, NetWare) и вытесняющая многопрограммность (Windows 2000/2003/XP, OS/2, Unix).
В первом случае активный процесс выполняется до тех пор, пока он сам не отдает управление операционной системе. Во втором случае решение о переключении процессов принимает операционная система. Возможен и такой режим многопрограммности, когда ОС разделяет процессорное время между отдельными ветвями (потоками, волокнами) одного процесса.
Многопроцессорная обработка. Важное свойство ОС – отсутствие или наличие средств поддержки многопроцессорной обработки. По этому признаку можно выделить ОС без поддержки мультипроцессирования (Windows 3.x, Windows 95) и с поддержкой мультипроцессирования (Solaris, OS/2, UNIX, Windows NT/2000/2003/XP).
Многопроцессорные ОС классифицируются по способу организации вычислительного процесса на асимметричные ОС (выполняются на одном процессоре, распределяя прикладные задачи по остальным процессорам) и симметричные ОС (децентрализованная система).
По области использования и форме эксплуатации. Обычно здесь выделяют три типа в соответствии с использованными при их разработке критериями эффективности:
системы пакетной обработки (OS/360, OC EC);
системы разделения времени (UNIX, VMS);
системы реального времени (QNX, RT/11).
Первые предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Критерий создания таких ОС – максимальная пропуская способность при хорошей загрузке всех ресурсов компьютера. В таких системах пользователь отстранен от компьютера.
Системы разделения времени обеспечивают удобство и эффективность работы пользователя, который имеет терминал и может вести диалог со своей программой.
Системы реального времени предназначены для управления техническими объектами (станок, спутник, технологический процесс, например доменный и т.п.), где существует предельное время на выполнение программ, управляющих объектом.
По аппаратной платформе (типу вычислительной техники), для которой они предназначаются, операционные системы делят на следующие группы.
Операционные системы для смарт-карт. Некоторые из них могут управлять только одной операцией, например, электронным платежом. Некоторые смарт-карты являются JAVA-ориентированным и содержат интерпретатор виртуальной машины JAVA. Апплеты JAVA загружаются на карту и выполняются JVM-интерпретатором. Некоторые из таких карт могут одновременно управлять несколькими апплетами JAVA, что приводит к многозадачности и необходимости планирования.
Встроенные операционные системы. Управляют карманными компьютерами (lialm OS, Windows CE – Consumer Electronics – бытовая техника), мобильными телефонами, телевизорами, микроволновыми печами и т.п.
Операционные системы для персональных компьютеров, например, Windows 9.x, Windows ХР, Linux, Mac OSX и др.
Операционные системы мини-ЭВМ, например, RT-11 для PDP-11 – OC реального времени, RSX-11 M для PDP-11 – ОС разделения времени, UNIX для PDP-7.
Операционные системы мэйнфреймов (больших машин), например, OS/390, происходящая от OS/360 (IBM). Обычно ОС мэйнфреймов предполагает одновременно три вида обслуживания: пакетную обработку, обработку транзакций (например, работа с БД, бронирование авиабилетов, процесс работы в банках) и разделение времени.
Серверные операционные системы, например, UNIX, Windows 2000, Linux. Область применения – ЛВС, региональные сети, Intranet, Internet.
Кластерные операционные системы. Кластер – слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений и представляющихся пользователю единой системной, например, Windows 2000 Cluster Server, Windows 2008 Server, Sun Cluster (базовая ОС – Solaris).
Знакомство с архитектурой UNIX начнем с рассмотрения таких неотъемлимых для неё характеристических понятий, как стандартизация и многозадачность:
Несмотря на многообразие версий UNIX, основой всего семейства являются принципиально одинаковая архитектура и ряд стандартных интерфейсов (в UNIX стандартизовано почти всё – от расположения системных папок и файлов, до интерфейса системных вызовов и списка драйверов базовых устройств). Опытный администратор без особого труда сможет обслуживать другую версию, тогда как для пользователей переход на другую систему и вовсе может оказаться незаметным. Для системных же программистов такого рода стандарты позволяют полностью сосредоточиться на программировании, не тратя время на изучение архитектуры и особенностей конкретной реализации системы.
В системе UNIX может одновременно выполняться множество процессов (задач), причем их число логически не ограничивается, и множество частей одной программы может одновременно находиться в системе. Благодаря специальному механизму управления памятью, каждый процесс развивается в своем защищенном адресном пространстве, что гарантирует безопасность и независимость от других процессов. Различные системные операции позволяют процессам порождать новые процессы, завершают процессы, синхронизируют выполнение этапов процесса и управляют реакцией на наступление различных событий.
Два кита UNIX: файлы и процессы
Существует два основных объекта операционной системы UNIX, с которыми приходиться работать пользователю – файлы и процессы. Эти объекты сильно связаны друг с другом, и в целом организация работы с ними как раз и определяет архитектуру операционной системы.
Все данные пользователя храняться в файлах; доступ к периферийным устройствам осуществляется посредством чтения и записи специальных файлов; во время выполнения программы, операционная система считывает исполняемый код из файла в память и передает ему управление.
С другой стороны, вся функциональность операционная определяется выполнением соответствующих процессов. В частности, обращение к файлам на диске невозможно, если файловая подсистема операционной системы (совокупность процессов, осуществляющих доступ к файлам) не имеет необходимого для этого кода в памяти.
Беглый взгляд на архитектуру UNIX
Презентация 2-02: беглый взгляд на архитектуру UNIX
Самый общий взляд на архитектуру UNIX позволяет увидеть двухуровневую модель системы, состоящую из пользовательской и системной части (ядра) (см. Рисунок 1.20, «Архитектура операционной системы UNIX»). Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные программы (процессы в пользовательской части операционной системы) от особенностей ее архитектуры. Ядро имеет набор услуг, предоставляемых прикладным программам посредством системных вызовов. Таким образом, в системе можно выделить два уровня привилегий: уровень системы (привиегии специального пользователя root) и уровень пользователя (привилегии всех остальных пользователей). Подробнее об управлении доступом рассказывается в следующих главах (Глава 3, Безопасность операционной системы UNIX).
Рисунок 1.20. Архитектура операционной системы UNIX
Важной частью системных программ являются демоны. Демон – это процесс, выполняющий опеределенную функцию в системе, который запускается при старте системы и не связан ни с одним пользовательским терминалом. Демоны предоставляют пользователям определенные сервисы, примерами которых могут служить системный журнал, веб-сервер и т.п.. Аналогом демонов в операционной системе Windows NT и более поздних версиях являются системные службы.
Презентация 2-03: ядро UNIX
Операционная система UNIX обладает классическим монолитным ядром (см. «Архитектура операционной системы»), в котором можно выделить следующие основные части:
Доступ к структурам ядра осуществляется через файловый интерфейс.
Сюда входит управление параллельным выполнением процессов (планирование и диспетчеризация), виртуальной памятью процесса, и взаимодействием между процессами (сигналы, очереди сообщений и т.п.).
Драйверы устройств делятся на символьные и блочные по типу внешнего устройства. Для каждого из устройств определен набор возможных операций (открытие, чтение и т.д.). Блочные устройства кэшируются с помощью специального внутреннего механизма управления буферами.
Рисунок 1.21. Ядро операционной системы UNIX
Благодаря тому, что в UNIX аппаратно-независимая часть явно отделена, это семейство операционных систем может быть с минимальными затратами перенесено на новые аппаратные платформы.
Видно, что ядро операционной системы UNIX является классическим для многозадачной многопользовательской операционной системы, поэтому оно широко используется в обучении системному программированию и теории операционных систем.