Операционные системы учебное пособие (1085734), страница 2
Текст из файла (страница 2)
Использование микроядра повышает надежность ОС. Каждый сервер выполняется в виде отдельного процесса в своей собственной области памяти и таким образом защищен от других серверов. Если отдельный сервер терпит крах, то он может быть просто перезапущен. И кроме того небольшой размер ядра позволяет снизить вероятность возникновения ошибок.
Модель с микроядром хорошо подходит для реализации распределенных вычислений, так как использует механизмы, аналогичные сетевым: взаимодействие клиентов и серверов путем обмена сообщениями. Серверы микроядерной архитектуры могут работать как на одном так и на разных системах.
Производительность. При классической организации ОС выполнение системного вызова сопровождается двумя переключениями режимов, а при микроядерной - четыре. При прочих равных условиях классическая модель будет всегда быстрее чем микроядерная.
Совместимость приложений
-
Совместмость на уровне исходных текстов и двоичная совместимость
-
Совместимость на уровне компилятора важна программистам
-
Совместимость на уровне двоичных кодов важна пользователям
-
Трансляция библиотек и прикладная программная среда
-
Функции интерфейса прикладного программирования (API)
В то время как многие архитектурные особенности ОС непосредственно касаются только системных программистов, концепция множественных прикладных сред непосредственно связана с нуждами конечных пользователей - возможностью ОС выполнять приложения, написанные для других ОС, называется совместимостью.
Способы реализации прикладных программных сред
Способы реализации прикладных программных сред
Создание полноценной прикладной среды, полностью совместимой со средой другой ОС, является достаточно сложной задачей, связанной со структурой ОС. Существуют различные варианты построения множественных прикладных сред, отличающихся как особенностями архитектурных решений, так и функциональностью.
Во многих версиях ОС UNIX транслятор прикладных сред реализуется в виде обычного приложения. В Windows NT прикладные среды выполнены в виде серверов, а в OS/2 организация прикладных сред встроена глубоко в ОС.
Совместимость на основе равноправных API
Подход при использовании микроядра
Итоги
Широкая функциональность ОС неизбежно приводит к сложности ее архитектуры, под которой понимают структурную организацию ОС на основе различных модулей. Обычно в состав ОС входят исполняемые модули и объектные модули стандартных для данной ОС форматов, библиотеки разных типов, программные модули специальных формата (например, загрузчик и драйверы), конфигурационные файлы, документация и т.д.
Управление локальными ресурсами Процессы и потоки
Важнейшей функцией операционной системы является организация рационального использования всех аппаратных и программных ресурсов системы. К основным ресурсам могут быть отнесены: процессоры, память, внешние устройства, данные и программы. Располагающая одними и теми же ресурсами, но управляемая различными ОС, вычислительная система может работать с разной степенью эффективности. Поэтому знание внутренних механизмов операционной системы позволяет косвенно судить о ее эксплуатационных возможностях и характеристиках.
Многозадачность
-
Способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ.
-
Основные критерии:
-
Пропускная способность
-
Удобство работы пользователей
-
Реактивность системы
-
Цель минимизация простоев устройств компьютера
Приложения используют совместно не только процессор, но и другие ресурсы компьютера: оперативную память, устройства в/в, данные. Мультипрограммирование призвано повысить эффективность использования вычислительной системы.
Характерные критерии производительности:
Пропускная способность - количество задач, выполняемых системой в единицу времени;
Удобство работы пользователя, заключающееся, в том что они имеют возможность интерактивно работала одновременно с несколькими приложениями на одной машине;
Реактивность системы - способность системы выдерживать заранее заданные интервалы времени между запуском программы и получением результата.
В зависимости от выбранного критерия эффективности ОС делятся на системы пакетной обработки, системы разделения времени и системы реального времени. Каждый тип ОС имеет специфические внутренние механизмы и особые области применения. Некоторые ОС могут поддерживать одновременно несколько режимов, например часть задач выполняется в режиме пакетной обработки, а часть - в режиме реального времени.
Многозадачность в системах пакетной обработки
Многозадачность в системах пакетной обработки
Системы пакетной обработки предназначались в основном для решения задач вычислительного характера, не требующих быстрого получения результатов. Главным критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени.
Для достижения этой цели используется следующая схема: сначала формируется пакет заданий, каждое задание содержит требования к системным ресурсам; из этого пакета формируется мультипрограммная смесь. Для одновременного выполнения выбираются задачи, предъявляющие разные требования к ресурсам, так чтобы обеспечить сбалансированную загрузку всех устройств вычислительной машины. Таким образом, выбор нового задания осуществляется на основании текущего состояния системы, то есть выбирается выгодное задание. Следовательно, в вычислительных системах, работающих под управлением пакетных ОС, невозможно гарантировать выполнение того или иного задания в течение определенного времени.
Если посмотреть на совмещение во времени операций в/в и вычислений, то можно представить себе несколько различных способов. Один их них характерен для систем с выделенным процессором в/в. В мэйнфреймах процессоры ввода-вывода называются каналами. Обычно канал имеет систему команд, отличающуюся от системы команд центрального процессора. Эти команды специально предназначены для управления внешними устройствами. Канальные программы могут храниться в той же оперативной памяти, что и программы центрального процессора. В системе команд центрального процессора предусмотрена специальная инструкция, с помощью которой каналу передаются параметры и указания на то, какую программу ввода-вывода он должен выполнить. Начиная с этого момента центральный процессор и канал могут работать параллельно.
Другой способ совмещения вычислений с операциями в/в реализуется в компьютерах, в которых внешние управляются контроллерами. Каждое внешнее устройство имеет свой контроллер, который автономно отрабатывает команды, поступающие от центрального процессора. При этом контроллер и процессор работают асинхронно. Контроллеры выполняют свои команды медленнее чем процессор -свои. Это обстоятельство используется для реализации параллельного вычисления и операций в/в: в промежутке между передачей команд контроллеру центральный процессор может выполнять вычисления.
Многозадачность в системах разделения времени
-
Пользователь интерактивно работает сразу с несколькими приложениями
-
Принудительная приостановка приложений, и выделение кванта времени другому приложению
-
Пропускная способность меньше, чем у систем пакетной обработки
-
Дополнительные накладные расходы на переключение контекстов
-
Более эффективное использование ресурсов системы
Повышение удобства и эффективности работы пользователя является целью другого способа мультипрограммирования - разделения времени. В данном случае каждое приложение должно регулярно получать возможность общения с пользователем. ОС принудительно периодически приостанавливает выполнение одного приложения и выполняет другое.
Системы разделения времени призваны исправить основной недостаток систем пакетной обработки - изолированность пользователя от процесса выполнения его задач. Так как в системах разделения времени каждому приложению выделяется только квант процессорного времени, ни одно приложение не использует процессор надолго и время ответа оказывается приемлемым. Если выбран квант времени очень небольшим, то у всех пользователей складывается впечатление, что каждый их них единолично использует систему.
Ясно что пропускная способность ниже, чем у систем пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та которая выгодна системе. Кроме того производительность системы снижается из-за дополнительных накладных расходов связанных с переключением контекста.
Многозадачность в системах реального времени
-
Фиксированный набор заранее разработанных программ
-
Переключение между задачами основано на расписании плановых работ
-
Пропускная способность не главное
-
Основной критерий реактивность или время реакции системы
-
Проектируется с учетом запаса
Еще одна разновидность мультипрограммирования используется в системах реального времени, предназначенных для управления от компьютера различными техническими объектами или технологическими процессами. В обоих случаях существует предельно допустимое время в течении которого должна быть выполнена та или иная управляющая объектом программа. Иначе произойдет авария. Таким образом, критерием эффективности здесь является способность получения результата в заданные интервалы времени. Интервал времени между запуском программы и получением результата - называется временем реакции системы, а соответствующее свойство реактивностью.
В системах реального времени мультипрограммная смесь представляет собой фиксированный набор заранее заданных программ, а выбор на выполнение осуществляется по прерываниям или в соответствии с расписанием плановых работ.
Способность аппаратуры компьютера и ОС к быстрому ответу зависит в основном от скорости переключения между задачами. Если при возникновения прерывания процессор должен опросить сотни потенциальных источников, то реакция системы будет слишком медленной.
В системах реального времени не стремятся максимально загружать все устройства, наоборот, при проектировании программного управляющего комплекса обычно закладывается некоторый запас вычислительной мощности на случай пиковой нагрузки.
Мультипроцессорная обработка
Способ организации вычислительного процесса в системах с несколькими процессорами, при котором несколько задач могут выполняться одновременно на разных процессорах
Способы организации вычислительного процесса:
-
Асимметричное мультипроцессирование (ведущий/ведомый)
-
Симметричное мультипроцессирование
-
Свойство ОС - реентерабельность (или повторная входимость)
Не следует путать мультипрограммную обработку и мультипроцессорную. В мультипрограммных системах параллельная работа разных устройств позволяет одновременно вести обработку нескольких программ, но при этом в процессоре, в каждый момент времени, выполняется только одна программа. То есть несколько программ выполняются попеременно. А в мультипроцессорных системах несколько задач выполняются действительно одновременно, так как имеется несколько обрабатывающих устройств - процессоров. Конечно многопроцессорность не исключает мультипрограммирования.
Мультипроцессорная система приводит к усложнению всех алгоритмов управления ресурсами. Сложности возникают из-за возрастания числа конфликтов при обращении к общим устройствам. Необходимо предусмотреть эффективные средства блокировки при доступе к разделяемым информационным структурам ядра. Все эти задачи должна решать ОС путем синхронизации процессов, введения очередей и планирования ресурсов.
Мультипроцессорные системы часто характеризуют как симметричные и асимметричные. При этом следует четко определять к какому аспекту мультипроцессорной системы относится эта характеристика - к типу архитектуры или к способу организации вычислительного процесса.
Симметричная архитектура мультипроцессорной системы предполагает однородность всех процессоров и единообразия включения всех процессоров в общую схему. Традиционные симметричные мультипроцессорные конфигурации разделяют одну общую память между всеми процессорами.
В ассиметричной архитектуре разные процессоры могут отличаться как своими характеристиками, так и функциональной ролью. Функциональная неоднородность в ассиметричной архитектуре влечет за собой структурные отличия во фрагментах системы, содержащих разные процессоры.
Другой аспект мультипроцессорных систем, который может характеризоваться симметрией или ее отсутствием, является способ организации вычислительного процесса. Он определяется и реализуется ОС.
Ассиметричное мультипрограммирование является наиболее простым способом организации вычислительного процесса. Данный способ часто называют ведущий-ведомый.
Функционирование системы по принципу ведущий-ведомый предполагает выделение одного из процессоров в качестве ведущего, на котором работает ОС и который управляет всеми остальными процессорами. Ассиметричная модель может быть реализована как на системах с симметричной мультипроцессорной архитектурой как и на системах с ассиметричной процессорной архитектурой.
Симметричное мультипроцессирование как способ организации вычислительного процесса может быть реализовано в системах только с симметричным мультипроцессированием. Разные процессоры могут в какой-то момент одновременно обслуживать как разные, так и одинаковые модули ОС. Для этого программы в ОС должны обладать свойством повторной сходимости (реентерабельностью).
ОС полностью децентрализована. Модули ОС выполняются на любом процессоре и никак не закрепляются за процессором.
Планирование процессов и потоков
-
Подсистема управления процессами и потоками в ОС ответственна за обеспечение процессов необходимыми ресурсами
-
ОС использует специальные информационные структуры, для хранения информации о том какие ресурсы выделены каждому процессу
-
Понятие процесс (задача) и поток (нить)
-
Понятие синхронизации потоков
Управление процессами