Операционные системы среды и оболочки

Автор работы: Пользователь скрыл имя, 28 Января 2013 в 21:29, контрольная работа

Краткое описание

1вопрос Основные функции ОС
2вопрос Классификация ОС
3вопрос Управление процессами
4вопрос Макроядерные ОС
5вопрос Микроядерные ОС

Содержимое работы - 1 файл

Otvety_po_operatsionnym_sistemam.docx

— 134.12 Кб (Скачать файл)

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

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

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

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

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

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

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

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

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

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

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

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

Упрощенно механизм обработки  прерываний независимо от архитектуры  вычислительной системы можно представить  в виде следующей схемы (рисунок 17).

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

Главные функции механизма  прерываний это:

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

Исполняемая программа

Прерывание

Отключение прерываний, сохранение контекста прерванной программы, установка  режима работы системы прерываний

 

 

Собственно тело

программы обработки прерывания

Восстановление контекста прерванной ранее программы, установка прежнего режима работы системы прерываний

Рисунок 17. Обработка прерывания

 

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

К внешним прерываниям можно отнести, например:

  • прерывания от таймера или от другого процессора или от другого ПК;
  • прерывания от внешних устройств ввода-вывода;
  • прерывания с пульта оператора вычислительной системы и т.п.;

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

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

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

 

Средства контроля процессора

Системный таймер

Магнитные диски

Сетевое оборудование

Терминалы

Внешние устройства

Высокий приоритет

Низкий приоритет

Рисунок 18. Распределение  прерываний по уровням приоритета

 

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

4вопрос

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

 

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

Монолитное ядро – старейший  способ организации операционных систем. Примером является большинство Unix-систем.

Стандартное решение для  большинства ОС: ядро работает в  привилегированном режиме, а приложение – в пользовательском режиме. Например, UNIX, OS/390, OS/2, Windows NT.

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

 

Пользовательский  режим

Привилегированный режим

Пользовательский  режим

 

переключение

переключение

 

Рисунок 12. Схема переключения режимов

 

Однако есть и исключения: например, ОС Net Ware, в ней и для ядра и для системных приложений используется привилегированный режим. Надежность системы несколько ниже, но скорость работы выше. Если рассматривать систему: «Аппаратура – ядро ОС – системные утилиты (и библиотеки процедур)», то схематично это можно представить в виде концентрических окружностей, (или в виде слоев) в центре которых располагается аппаратура, затем ядро ОС и на периферии – системные утилиты. Любой модуль может выполнить свою работу самостоятельно внутри своего слоя, либо обратиться к модулю соседнего слоя.

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

 

 

 

 

 

  Аппар.


САП

МЗК

БФЯ

МР

ИСВ


 

 

 

 

 

 

 

 

 

 

Рисунок 13. Многослойная структура  ядра ОС

 

На рисунке 13 изображены следующие элементы:

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

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

 

5вопрос

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

 

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

Информация о работе Операционные системы среды и оболочки