Основные принципы построения ОС

Автор: Пользователь скрыл имя, 25 Декабря 2011 в 17:11, реферат

Описание работы

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

Работа содержит 1 файл

Принцип модульности.docx

— 33.47 Кб (Скачать)

– секретность входа (идентифицируя пользователей по уникальному имени и паролю);

– контроль доступа (информирование владельца данных о  лицах, имеющих доступ к данным и  их правах на пользование ими);

– наблюдение и учет за ситуацией с безопасностью (фиксация попыток получить доступ, создать  или удалить системные реестры);

– защита памяти (удаление содержимого памяти предыдущего  сеанса работы перед началом нового).

Системы уровня В реализуют контроль доступа (каждый пользователь имеет рейтинг защиты и доступ только в соответствии с этим рейтингом). Эти системы защищены от ошибочного поведения пользователя.

Уровень А требует дополнительно формального, математически доказанного соответствия системы требованиям безопасности. Однако А-уровень занимает своими управляющими механизмами до 90% процессорного времени. Более безопасные системы не только снижают продуктивность, но и ограничивают число доступных приложений.

Различные коммерческие структуры, например банки, поддерживают безопасность своих систем, как правило  на уровне С2.

Микроядерные ОС

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

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

− управление виртуальной  памятью;

− задания и потоки;

− межпроцессные коммуникации (IPC Inter-Process-Communication);

− управление поддержкой ввода-вывода и прерываниями;

− сервисы набора хоста (Host − главный компьютер, сейчас ПК с IP-адресом) и процессора.

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

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

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

Наиболее ярким  представителем микроядерных ОС является ОС реального времени QNХ. Её микроядро поддерживает только планирование и диспетчеризацию процессов, взаимодействие процессов, обработку прерываний и сетевые службы низшего уровня (см. далее). Объем ядра 8-46 Кбайт.

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

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

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

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

Технология «клиент-сервер»  предполагает наличие двух программных  компонентов:

1) клиента, являющегося  потребителем некоторого сервиса;

2) сервера, являющегося  поставщиком этого сервиса.

Взаимодействие между  клиентом и сервером стандартизируется, следовательно, сервер может обслуживать  клиентов, реализованных различными способами. Инициатором обмена обычно является клиент, посылающий серверу  запрос на обслуживание. Один и тот  же программный компонент может  быть по отношению к другим компонентам, как клиентом, так и сервером.Модель «клиент-сервер» является удобным концептуальным средством ясного представления функций любого программного элемента. Она применяется не только при построении ОС, но и на всех уровнях программного обеспечения.При поддержке монолитных ОС возникает ряд проблем, связанных с тем, что все функции макроядра работают в едином адресном пространстве. Это − возникновение конфликтов между частями ядра, сложность подключения к ядру новых драйверов и т.п. Поэтому микроядерные системы разрабатываются сейчас чаще, чем монолитные. Следует отметить также, что использование технологии «клиент-сервер» не обязательно делает систему микроядерной. Например, ОС Windows NT, построенная по технологии «клиент-сервер», тем не менее, является монолитной.

Принципы  построения интерфейсов  ОС

ОС всегда выступает  как интерфейс между аппаратурой  и пользователем с его задачами. Интерфейс ОС предназначен для выполнения следующих задач:

1) управления процессами, в том числе:

1.1 запуск, остановка  и снятие задач с выполнения;

1.2 задание и модификация  приоритета задачи;

1.3 взаимодействие  задач между собой (механизмы  сигналов, семафорические примитивы, очереди, конвейеры, почтовые ящики);

1.4RРС (remote procedure call) − удалённый вызов подпрограмм

2) управление памятью,  в том числе:

2.1 запрос на выделения  блока памяти;

2.2 освобождение памяти;

2.3 изменение параметров  блока памяти (статус доступа,  блокирование или разблокирование  и т.д.);

2.4 отображение файлов  на память;

3) управление вводом-выводом,  в том числе:

3.1 запрос на управление  виртуальными устройствами;

3.2 файловые операции (запросы к файловой системе  на создание, изменение и удаление  данных).

Пользовательский  интерфейс реализуется с помощью  программных модулей, принимающих  его команды (графически или на соответствующем  языке) и транслирующих их в обычные  системные вызовы. Совокупность таких  модулей обычно называют интерпретатором  команд (например, COMMAND.COM в MS-DOS). Получив  команду, командный процессор проводит её лексический и синтаксический анализ и выполняет действие, либо обращается к другим модулям ОС, используя механизм АРI (application program interface − интерфейс прикладного программирования). В последнее время большое распространение получили графические интерфейсы GUI (Graphics User Interface), использующие манипуляторы типа «мышь» или «трекбол». Такая интерфейсная подсистема транслирует «команды» пользователя в обращения к ОС.Имеются два основных подхода к управлению задачами: полное наследование порождаемой задачей ресурсов задачи-родителя, либо равноправные отношения родителя и наследника (ресурсы для обоих запрашиваются у ОС).Обращения к ОС могут осуществляться как посредством вызова подпрограмм, так и через механизм прог-раммных прерываний. Выбор метода реализации вызовов функций АРI определяется архитектурой платформы.Например, в ОС МS-DOS (однозадачная ОС) используется механизм программных прерываний, при этом основной набор функций АРI был доступен через точку входа обработчика прерываний Int 21h.Современные ОС чаще используют метод вызова программных прерываний, при котором число точек входа равно числу АРI-функций. В этом случае вызов сначала передаётся в модуль АРI, а затем переправляется соответствующим обработчикам программных прерываний ОС.

Мультипрограммность и многозадачность 

По числу одновременно выполняемых задач операционные системы можно разделить на два  класса:

многозадачные (Unix, OS/2, Windows);

однозадачные (например, MS-DOS).

Многозадачная ОС, решая  проблемы распределения ресурсов и  конкуренции, полностью реализует  мультипрограммный режим в соответствии с требованиями раздела "Основные понятия, концепции ОС".Многозадачный режим, который воплощает в себе идею разделения времени, называется вытесняющим (preemptive). Каждой программе выделяется квант процессорного времени, по истечении которого управление передается другой программе. Говорят, что первая программа будет вытеснена. В вытесняющем режиме работают пользовательские программы большинства коммерческих ОС.В некоторых ОС (Windows 3.11, например) пользовательская программа может монополизировать процессор, то есть работать в невытесняющем режиме. Как правило, в большинстве систем не подлежит вытеснению код собственно ОС. Ответственные программы, в частности задачи реального времени, также не вытесняются. Более подробно об этом рассказано в лекции, посвященной планированию работы процессора.По приведенным примерам можно судить о приблизительности классификации. Так, в ОС MS-DOS можно организовать запуск дочерней задачи и наличие в памяти двух и более задач одновременно. Однако эта ОС традиционно считается однозадачной, главным образом из-за отсутствия защитных механизмов и коммуникационных возможностей.

Приоритеты  задач. Наследование приоритетов в  ОС реального времени

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

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

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

Стандарт POSIX {Portable Operating System Interface for Computer Environments) IEEE 1003.1 даёт следующее определение РВ: «реальное время в операционных системах — это способность операционной системы обеспечить требуемый уровень сервиса в определённый промежуток времени». Следовательно, ОС РВ отличаются своим поведением, а не внутренним принципом построения-Поэтому если вероятность появления недопустимо больших задержек достаточно низка для достижения требуемого уровня сервиса (например, если она меньше допустим вероятности отказа системы), то такая ОС в конкретном применении может рассматриваться как ОС РВ. В частности, в соответствии с определением стандарта POSIX операционная система Windows ХР при управлении медленными (тепловыми) процессами может рассматриваться как ОС РВ

Информация о работе Основные принципы построения ОС