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

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

.pdf
Скачиваний:
7
Добавлен:
23.04.2019
Размер:
3.18 Mб
Скачать

Vdict.dll

Vdict.dll

Vtext.dll

Vtext.dll

vtxtauto.tlb

vtxtauto.tlb

Xcommand.dll

Xcommand.dll

Архитектура ОС

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

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

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

2.Системные обрабатывающие программы (текстовые и графические редакторы, компиляторы, отладчики и т. д.)

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

4.Библиотеки различного назначения.

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

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

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

Ядро в защищённом режиме

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

11

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

Рис.8

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

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

12

Рис.9

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

Многослойная структура ОС

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

13

Рис.10

В свою очередь, ядро состоит из следующих слоёв:

1.Средства аппаратной поддержи

2.Машинно зависимые компоненты ОС

3.Базовые механизмы ядра

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

5.Интерфейс системных вызовов Выбор количества слоёв ядра является важным моментом: увеличение числа слоёв

ведёт к некоторому замедлению работы ядра, уменьшение — ухудшает расширяемость и логичность системы.

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

В защищённом режиме остаётся работать только очень небольшая часть ОС, называемая микроядром.

14

Рис.11

Схематично механизм обращения к функциям ОС оформлен в виде серверов:

Рис.12

15

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

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

Производительность

Рис.13

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

Вчисло основных задач, решаемых ОС входи:

1.Управление процессами

2.Управление памятью

16

3.Управление вводом-выводом

4.Управление проигрыванием

Управление процессом Процесс представляет собой единицу работы и заявку на использование системных

ресурсов. Жизненный цикл процессов характеризуется его пребыванием в одном из состояний и переходом между ними.

Два понятия, которые характеризуют состояние операционной среды и ход работы процесса:

1.Контекст. Содержит информацию о состоянии регистров и программного счётчика, состояние ввода-вывода и информацию об ошибках.

2.Дескриптор. Содержит идентификатор процесса, адрес расположения сегмента кода

истепень защищённости процесса.

Создание процесса происходит в три этапа:

1.Создать контекст и дескриптор

2.Включить дескриптор нового процесса в очередь готовых процессов

3.Загрузить кодовый сегмент процесса в оперативную память.

Планирование процессов делится на решение следующих задач:

1.Определение момента времени для смены выполняемого процесса

2.Выбор процесса на выполнение из очереди готовых процессов

3.Переключение контекстов старого и нового процессов.

Алгоритмы планирования процессов делятся на две большие группы:

1.Алгоритмы, основанные на квантовании

2.Алгоритмы, основанные на приоритетах

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

1.Процесс завершил свою работу и вышел из системы

2.При выполнении процесса произошла ошибка

3.Процесс перешёл в состояние ожидания

4.Исчерпан квант процессорного времени, отведённого процессу

17

Рис.14

Алгоритмы, основанные на приоритетах, делятся на две разновидности:

1.Алгоритмы, использующие относительные приоритеты

2.Алгоритмы, использующие абсолютные приоритеты

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

Средства синхронизации и взаимодействия процессов Пренебрежение вопросами синхронизации процессов может привести к их

неправильной работе или даже краху системы в целом.

18

Рис.15

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

Предположим, что в некоторый момент процесс S решил распечатать свой файл. Для этого он прочитал значение переменной NEXT, равное 4. Процесс запомнил это значение, но поместить имя файла не успел, т. к. его выполнение было прервано. Очередной процесс C тоже решил распечатать файл, прочитав то же самое значение переменной NEXT (т. е. 4) и поместил в четвёртую позицию имя своего файла и нарастил значение переменной на единицу. Когда в очередной раз управление будет передано процессу S, то он, продолжая своё выполнение в полном соответствии со значением текущей свободной позиции, полученным во время предыдущей итерации, запишет имя файла также в позицию 4 поверх имени файла процесса C. Таким образом процесс C никогда не увидит свой файл распечатанным.

19