Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции_операционные системы (Информатики)

.pdf
Скачиваний:
57
Добавлен:
06.06.2015
Размер:
3.81 Mб
Скачать

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

Достоинствами этой архитектуры являются высокая скорость работы ОС.

Есть и недостатки у этой архитектуры. Поскольку всѐ ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.

3.4. Операционные системы с микроядром

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

выполняющееся в привилегированном режиме, минимизируется.

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

51

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

Рис. 3.4. Схема ОС с микроядром.

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

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

находятся в изолированных адресных пространствах, то напрямую обмен данными между ними невозможен, поэтому микроядру,

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

перенаправляется к соответствующему приложению. Это и является

52

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

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

файловые системы и т. д.

Примеры ОС с микроядерной архитектурой: Symbian OS;

микроядро Mach, используемое в GNU/Hurd и Mac OS X; Minix и

другие ОС.

Формально ОС Windows NT и выше часто называют микроядерной операционной системой. Однако микроядро этой ОС слишком велико (более 1 Мбайт), чтобы определяться как «микро».

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

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

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

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

53

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

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

Контрольные вопросы:

1.Назовите главный компонент в архитектуре любой ОС?

2.При помощи какого механизма осуществляется защита главных модулей ОС?

3.Какие основные компоненты принято выделять в структуре ядра?

4.Как происходит взаимодействие между различными компонентами ядра?

5.Какую роль играет интерфейс прикладного программирования ОС?

6.В чем достоинства и недостатки ОС с монолитным ядром?

7.В чем достоинства и недостатки микроядерной архитектуры ОС?

8.Почему у некоторых современных ОС ядро называют гибридным? Какими характеристиками обладает этот тип ядра ОС?

9.Приведите примеры ОС на каждый тип архитектурного решения.

ГЛАВА 4. УПРАВЛЕНИЕ РАБОТОЙ ПРИЛОЖЕНИЙ

 

Прикладную

компьютерную

программу

называют

приложением. Приложения не взаимодействуют

напрямую с

 

54

 

 

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

устройствами компьютера, а только через операционную систему

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

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

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

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

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

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

55

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

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

например, библиотек).

4.1. Многозадачность

Как мы увидели из истории развития операционных систем,

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

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

Многозадачность в системах пакетной обработки.

Чтобы повысить эффективность и оптимизировать работу вычислительной системы, возникла идея мультипрограммирования,

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

процессор возвращается к выполнению первой программы.

Мультипрограммирование изначально использовалось в системах пакетной обработки.

56

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

На следующей схеме (рис. 4.1) представлено выполнение тех же заданий, но уже в мультипрограммном режиме.

Рис. 4.1. Схема выполнения программ в однозадачной и многозадачной ОС.

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

Многозадачность (multitasking), или

мультипрограммирование (термин, который ранее использовался)

– это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняется сразу несколько задач (программ).

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

57

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

Многозадачность в системах разделения времени.

Появление многотерминальных ЭВМ ознаменовало переход от систем пакетной обработки к системам разделения времени.

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

влияя на процесс ее выполнения.

Многозадачность в системах реального времени.

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

течение времени, критического для этого события. Величина критического времени для каждого события определяется объектом

58

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

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

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

Многозадачность в мультипроцессорной обработке.

Мультипроцессорная обработка – способ организации вычислительного процесса в системах с несколькими процессорами,

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

Мультипроцессорная обработка отличается от многозадачности. При многозадачности параллельно

59

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

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

Конечно, многопроцессорность не исключает многозадачности.

Типы многозадачности.

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

Невытесняющая многозадачность – тип многозадачности,

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

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

Windows версий до 3.x включительно, а также 16-битных приложениях в Windows 9x. Плюсом такой организации многозадачности является простота реализации. Однако, совместная многозадачность часто приводит к зависанию всей системы, если задача, занявшая процессор, не освобождает его.

Вытесняющая многозадачность реализуется с использованием следующих методов:

- Равномерное квантование – выделение задачам времени по принципу обычной очереди. Каждой задаче выделяется одинаковый

60