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

Системное программное обеспечение

.pdf
Скачиваний:
114
Добавлен:
23.02.2016
Размер:
1.26 Mб
Скачать

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

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

Вспомогательные модули ОС

Приложения пользователей

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

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

Ядро ОС

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

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

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

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

Продемонстрируем это ни рисунке.

приложение приложение

ЯДРО

t

t

t - время переключения режимов

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

Ее используют многие популярные ОС (UNIX, VAX VMS, IBM OS/390, OS/2, Windows NT (c модификациями)).

Иногда разработчики отступают от классического варианта архитектуры и организуют работу ядра и приложений в одном режиме ??? что лучше, если, например, в ОС NetWare ядро и специфические загружаемые модули NLM работают в привилегированном режиме, а что хуже???

Очевидно, что в одном режиме работа идет и в ОС, разработанных для процессоров, не поддерживающих привилегированный режим. Например, Intel 8088/86. ОС MS-DOS состоит из двух модулей msdos.sys и io.sys (по сути это ядро системы, хотя так никогда не называлось). К ним с системными вызовами обращаются командный интерпретатор command.com, системные утилиты и приложения. Приложения вполне могут разрушать основные модули ОС.

Достоинства рассмотренной нами структурной организации ОС (архитектуры ОС) в виде привилегированного ядра и вспомогательных модулей-приложений заключаются в следующем:

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

9Экономия ОП. (Постоянно в ОП располагаются только самые необходимые коды.)

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

РЕЗЮМЕ по простейшей структурной организации ОС

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

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

Вспомогательные модули являются транзитными. Модули ядра - резидентными.

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

8.Микроядерная архитектура

Является альтернативой классическому способу построения ОС. Суть микроядерной архитектуры состоит в следующем.

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

Микроядро защищено от остальных частей ОС и приложений.

В состав микроядра входят обычно

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

модули, выполняющие базовые функции ядра:

-управление процессами (только код для переключения процессора с процесса на процесс);

-обработка прерываний (перехват аппаратных прерываний);

-управление виртуальной памятью (установка регистров блока управления памятью);

-управление устройствами ввода-вывода (загрузка или чтение регистров устройств);

-пересылка сообщений;

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

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

(Напомним, что в этом заключается принцип функциональной избирательности)

Вспомогательные модули ОС

Приложения пользователей

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

Менеджеры ресурсов

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

микроядро

 

Ядро ОС

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

Они также оформлены в виде приложений.

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

серверами ОС.

Механизм обращения к серверам ОС выглядит следующим образом.

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

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

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

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

(Обратим внимание, что работа микроядерной ОС соответствует модели клиент-сервер, в которой роль транспортных средств выполняет микроядро)

Приложения пользователей

Менеджеры ресурсов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

микроядро

Преимущества и недостатки микроядерной архитектуры

Операционные системы, основанные на микроядерной архитектуре, удовлетворяют большинству требований, предъявляемым к современным ОС:

9обладают переносимостью

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

9высокая степень расширяемости

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

9достаточная надежность

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

9поддержка распределенных вычислений

(серверы ОС могут работать на разных компьютерах - асимметричная ОС; возможен перенос однопроцессорных ОС на распределенные компьютеры)

Основной (и по сути единственный) недостаток микроядерной архитектуры -

снижение производительности.

При классической организации ОС выполнение системного вызова сопровождается двумя переключениями режимов:

приложение

приложение

ЯДРО

А при микроядерной организации - четырьмя:

приложение

Сервер ОС

приложение

Однако, при современныхМикро скоростяхМикроядпроцессоров снижение производительности в 20% неядросчитается фатальным.

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

РЕЗЮМЕ по микроядерной архитектуре ОС

Микроядерная архитектура является альтернативой классическому способу построения ОС.

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

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

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

Наиболее ярким представителем микроядерных ОС является ОС реального времени QNX. Микроядро QNX поддерживает только планирование и диспетчеризацию процессов, взаимодействие процессов, обработку прерываний и сетевые службы нижнего уровня. Микроядро обеспечивает всего лишь пару десятков системных вызовов, но благодаря этому оно может быть целиком размещено во внутреннем кэше даже таких процессоров, как Intel 486. Разные версии этой ОС имеют различные объемы ядер — от 8 до 46 Кбайт.

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

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

Литература

Основная:

1.Молчанов А.Ю. Системное программное обеспечение. Учебник для вузов.

— СПб.: Питер, 2003. — 396 с.

2.Молчанов А.Ю. Системное программное обеспечение. Лабораторный практикум.- СПб.: Питер, 2005.- 284 с.

3.Юров В.И. Assembler. Учебник для вузов. 2-е издание - СПб.: Питер.- 2004.-

637с.

4.Компаниец Р.И., Маньков Е.В., Филатов Н.Е. Системное программирование: Основы построения трансляторов + FD.- М.: КОРОНА принт.- 2004.- 255 с.

5.Фельдман Ф.К. Системное программирование на персональном компьютере.- 2004.- 512

6.Ахо А.,Сети Р., Ульман Дж. Компиляторы: принципы, технологии и инструменты: Пер. с англ. — М.: Издательский дом «Вильямс», 2003. — 768 с.

7.Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. —

СПб.: Питер, 2002. — 734 с.

8.Олифер В.Г., Олифер Н.А. Сетевые операционные системы. СПб.: Питер, 2002. — 544

Дополнительная:

1.Малявко А.А. Теория формальных языков: Учеб. пособие: В 3 ч. – Новосибирск: Изд-во НГТУ, 2001. – Ч. 1. – 96 с.

2.Малявко А.А. Теория формальных языков: Учеб. пособие: В 3 ч. – Новосибирск: Изд-во НГТУ, 2002. – Ч. 2. – 96 с.

3.Ф.Льюис, Д. Розенкранц, Р.Стирнз. Теоретические основы проектирования компиляторов. М., Мир, 1979.

4.Л. Бек. Введение в системное программирование. М.,Мир, 1988.

5.В.Е.Котов, В.К.Сабельфельд. Теория схем программ. -М.: Наука, 1978

6.Автоматное управление асинхронными процессами в ЭВМ и дискретных системах /Под ред. В.И.Варшавского. -М.:Наука.

7.Питерсон Дж. Теория сетей Петри и моделирование систем.- М.: Наука.

1984.

8.Минский М. Вычисления и автоматы. - М.: Мир.- 1971.

9.Котов В.Е. Сети Петри. - М.: Наука. - 1984.-

10.Ахо А.,Хопкрофт Дж., Ульман Дж.Построение и анализ вычислительных алгоритмов. - М.: Мир. -1979.

11.Питерсон Дж. Теория сетей Петри и моделирование систем: Пер. с англ. –

М.: Мир, 1984. – 264 с.

Лекция 2 Управление задачами.

План

1.Особенности алгоритмов управления ресурсами

2.Особенности аппаратных платформ

1.Особенности алгоритмов управления ресурсами

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

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

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

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

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

По числу одновременно работающих пользователей ОС делятся на:

однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);

многопользовательские (UNIX, Windows NT).

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

Следует заметить, что не всякая многозадачная система является многопользовательской, и не всякая однопользовательская ОС является однозадачной.

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

невытесняющая многозадачность (NetWare, Windows 3.x);

вытесняющая многозадачность (Windows NT, OS/2, UNIX).

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

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

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

ОС подразделяются на поддерживающие и неподдерживающие многонитевость.

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

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

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

Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.

В современных ОС введены функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.

Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС.

Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам.

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

2.Особенности аппаратных платформ

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

По типу аппаратуры различают операционные системы

персональных компьютеров;

мини-компьютеров;

мейнфреймов;

кластеров;

и сетей ЭВМ.

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

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

В зависимости от выбранного критерия эффективности операционные системы делятся на:

системы пакетной обработки (например, OC EC);

системы разделения времени (UNIX, VMS);

системы реального времени (QNX, RT/11).

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

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

Схема функционирования систем пакетной обработки данных:

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

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

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

таких ОС невозможно гарантировать выполнение того или иного задания в течение определенного периода времени.

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

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

Основной недостаток систем пакетной обработки - изоляция пользователя-программиста от процесса выполнения его задач.

Системы разделения времени призваны исправить недостаток систем пакетной обработки данных.

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