По назначению различают ОС общего и специального назначения.
ОС специального назначения, в свою очередь, подразделяются на ОС для носимых микрокомпьютеров и различных встроенных систем, организации и ведения баз данных, решения задач реального времени и т. п.
По режиму обработки задач различают ОС, обеспечивающий однопрограммный, мультипрограммный, мультизадачный) режимы.
К однопрограммным ОС относится MS DOS, Norton Commander.
Термины «мультипрограммный режим» и «мультизадачный режим» это не синонимы. Основное принципиальное отличие этих терминов заключается в том, что мультипрограммный режим обеспечивает параллельное выполнение нескольких приложений, и при этом программисты, создающие эти программы, не должны заботиться о механизмах организации их параллельной работы (эти функции берет на себя сама ОС; именно она распределяет между выполняющимися приложениями ресурсы вычислительной системы, осуществляет необходимую синхронизацию вычислений и взаимодействие). Мультизадачный режим, наоборот, предполагает, что забота о параллельном выполнении и взаимодействии приложений ложится как раз на прикладных программистов. Однако современные ОС для персональных компьютеров реализуют и мультипрограммный, и мультизадачный режимы.
По способу взаимодействия с компьютером можно говорить о диалоговых системах и системах пакетной обработки. При организации работы с вычислительной системой в диалоговом режиме можно говорить об одяопользовательских (однотерминальных) и мультитерминальных ОС. В мультитерминальных ОС с одной вычислительной системой одновременно могут, работать несколько пользователей, каждый со своего терминала, при этом у пользователей возникает иллюзия, что у каждого из них имеется собственная вычислительная система. Очевидно, что для организации мультитерминального доступа к вычислительной системе необходимо обеспечить мультипрограммный режим работы.
По основному архитектурному принципу операционные системы разделяются на микроядерные и макроядерпые монолитной. Функции микроядра ОС заключаются в следующем:
Управление памятью и процессами.
Обработка прерываний.
Обработка системных вызовов.
Обработка сообщений.
Архитектура монолитной ОС.
Достоинство: легкость в отладке, более простые, более быстрый межзадачный обмен
Основные особенности, отличающие ОСРВ от ОС общего назначения.
Время реакции. Время реакции системы - интервал, охватывающий время от наступления события на управляемом объекте до выполнения необходимых ответных действий. Величина этого интервала зависит от ряда причин.
Наиболее важными параметрами, характеризующими реактивность ОС, является время задержки прерывания и время переключения контекста.
Время задержки прерывания - интервал времени от момента посылки запроса на прерывания до выполнения первой команды программы обработки прерывания. Обычно это время оценивается для худшего случая (при наличии других прерываний, занятости процессора и т.д.) и зависит от эффективности ОС и архитектуры процессора, связанной с обработкой прерываний.
Время переключения контекста tnк - среднее время, которое система затрачивает на переключение между независимыми задачами:
где ti — время переключения i — ой задачи; п - число одновременно выполняемых задач.
Время tnK зависит от эффективности структуры данных управления задачей, архитектуры процессора и набора инструкций.
Механизм реального времени. Распределение ресурсов.
Планирование задач (процессов) связано с выбором системы приоритервв-и алгоритмов диспетчеризации.
К механизмам межзадачного взаимодействия относятся семафоры, разделяемая память, сообщения и др., позволяющее синхронизировать процессы и обеспечивать быстрый обмен информацией между ними. Важной архитектурной особенностью является возможность переключения во время выполнения не только пользовательской, но системной фазы ядра, что обеспечивает возможность обработки критических прерываний.
Архитектура микроядра. OCPB с микроядерной архитектурой обладают меньшим временем реакции на события.
Модульный принцип. Масштабируемость. Функциональные компоненты ОС - ядро, система управления файлами и др. - реализованы в виде независимых модулей. Такие системы являются масштабируемыми и расширяемыми системами.
Аппаратная поддержка. ОСРВ работают на различных аппаратных платформах.
Важным свойством является возможность размещения ОСРВ и приложений в ПЗУ, что позволяет создавать компактные (в том числе встроенные в технологическое оборудование) системы без внешних накопителей.
Работа в вычислительных сетях. ОСРВ поддерживают работу во всех основных типах локальных сетей имеют прозрачный доступ к ресурсам любого узла сети; отвечают требованиям надежности и отказоустойчивости; содержат программные средства защиты информации от несанкционированного доступу.
Соответствие стандартам. Современная концепция СРВ связана с архитектурой открытых систем, основанных на использовании стандартизованных аппаратных и программных средств.
Разновидности задач, выполняемых в ОС
Задачи могут быть созданы как процесс или как поток (потоки) внутри процесса.
Процесс — отдельный исполнительный программный модуль (.ЕХЕ или .СОМ файлы).
Когда говорят о процессах, отмечают, что ОС поддерживает их обособленность (у каждого свое виртуальное пространство, свои ресурсы, свои файлы и т.д.), которая нужна для защиты одного процесса от другого. ОС считает процессы совершенно несвязанными и независимыми, при этом именно ОС решает споры конкурирующих процессов за ресурсы и обеспечивает защиту выполняющихся вычислений
Потоки - задачи, объединенные в одном процессе (программа Word (пример многопоточной задачи) - проверка орфографии, ввод символов и т.д.).
Некоторые операции, выполняемые приложением, могут требовать для своего исполнения достаточно длительное использование центрального процессора. Программные модули, исполняющие такие длительные операции, желательно оформлять в виде самостоятельных «подпроцессов» (легковесных процессов, потоков выполнения, или задач), которые могут выполняться параллельно с другими подпроцессами (потоками, задачами), то у пользователя появляется возможность параллельно выполнять несколько операций в рамках одного приложения (процесса).
Легковесными эти процессы называют потому, что операционная система не должна для них организовывать полноценную виртуальную машину, то есть эти задачи не имеют своих собственных ресурсов, а развиваются в том же виртуальном адресном пространстве, могут пользоваться теми же файлами, виртуальными устройствами и иными ресурсами, выделенными ОС данному процессу. Единственное, что они имеют свое — это процессорный ресурс.
Свойства задач.
Приоритет - целое число, которое присваивается задачи характеризует ее важностью отношению к другим задачам.
Контекст задачи - набор данных (текущий адрес прерванной задачи, регистры процессора, указатель стека - служебная область, используемая для вызова подпрограммы, текущий адрес ячейки), которые содержат всю необходимую информацию для возобновления выполнения задачи с того места на котором она была прервана.
Состояние задачи:
а) активное состояние (выполняется в текущий момент времени),б) готовая к исполнению (была блокирована в ожидании события - нажатие символа на клавиатуре и т.д.), в) блокированная задача, (ресурсы необходимые для выполнения задачи заняты).
программные модули допускают повторное многократное прерывание своего, исполнения и повторный их запуск по обращению из других задач (вычисли- тельных процессов.
Управление задачами
Самым важным ресурсом является сам процессор, а точнее - процессорное время. Процессорное время делится попеременно (параллельно).
Один из основных модулей супервизора ОС - диспетчер задач - переводит процессы в одно из состояний в зависимости от того, доступен тот или иной ресурс или не доступен.
ОС выполняет следующие основные функции, связанные с управлением процессами и задачами:
создание и удаление задач;
планирование процессов и диспетчеризация задач;
синхронизация задач, обеспечение их средствами коммуникации.
Создание задачи сопряжено с формированием соответствующей информационной структуры, а ее удаление - с расформированием. Создание и удаление задач осуществляется по соответствующим запросам от пользователей или от самих задач.
Решение вопросов, связанных с тем, какой задаче следует предоставить процессорное время в данный момент, возлагается на специальный модуль операционный системы чаще всего называемый диспетчером задач. Вопросы подбора вычислительных процессов, которые можно и целесообразно решать параллельно - возлагаются на планировщик процессов.
Задача подбора такого множества процессов, которые при своем выполнении будут как можно реже конфликтовать за имеющиеся в системе ресурсы решается при помощи планирования вычислительных процессов.
Задачи динамического планирования стали называть диспетчеризацией. Основное различие между долгосрочным и краткосрочным планировщиками заключается в частоте их запуска.
Долгосрочный планировщик решает какой из процессов, находящихся во входной очереди, в случае освобождения ресурсов памяти должен быть переведен в очередь процессов, готовых к выполнению.
Краткосрочный планировщик решает, какая из задач, находящихся в очереди готовых к выполнению, должна быть передана на исполнение.
Существует большое количество дисциплин диспетчеризации, то есть, правил формирования очереди готовых к выполнению задач, в соответствии с которыми формируется эта очередь (список).
1. Циклическаядисциплина диспетчеризации.
Недостаток: если одна из задач повиснет, или очень долго будет
исполняться, то все остальные задачи остановятся.
Достоинство: Простой алгоритм. Такой программный комплекс легко настраивается. По подобной схеме работает 90% промышленных контроллеров.
2. Разделение времени. Процессорное время выделяется квантами - фиксированными интервалами. Досле окончания кванта времени задача снимается с процессора, и он передается следующей задаче. Снятая задача ставится в конец очереди задач, готовых к выполнению. Если величина кванта времени велика, то при увеличении очереди готовых к выпол? нению задач реакция системы станет медленной.
Недостаток: если возможности процессора ограничены по сравнению с тп&-буемыми, то процессор будет выполнять задачи с наибольшим приоритетом, низкоприоритетные задачи при этом могут быть не выполнены.
3. Разделение времени с равнодоступностью. Приоритет является плавающим. Те задачи, которые занимают много процессорного времени у них приоритет понижается, и наоборот.
4.Приоритетная многозадачность с вытеснением. Планировщик задачи не дожидается пока программа использует свой квант времени, а отдаёт время появившейся более приоритетной задачи.
Методы синхронизации задач
Мультипрограммные и мультизадачные ОС позволяют организовать не только независимые, но и взаимодействующие вычисления. Проблема синхронизации взаимодействия параллельных вычислительных процессов, обмена данными между ними является одной из самых важных. ОС имеют в своем составе различные средства синхронизации
Существуют следующие виды синхронизации:
Синхронизация по данным.
Синхронизация по использованию ресурсов.
Синхронизация с внешними событиями.
Синхронизация по времени.
Синхронизация по данным.
Данные могут готовиться одной программой, а использоваться другой, поэтому необходим механизм по передаче сообщений. Можно выделить синхронное и асинхронное сообщения.
Синхронное сообщение — программа пересылает данные и приостанавливает
свою работу до получения ответа от другой программы.
Асинхронное сообщение — программа, выполнив передачу, продолжает работу не дожидаясь ответа. Механизмы передачи данных:
1. Почтовые ящики.
2. Очередь сообщений.
Почтовые ящики - область оперативной памяти, в которой программа может помещать какие-либо данные и считывать их.
Новое сообщение стирает старое. Поэтому если программа не успела считать данные, то информация будет потеряна.
Очередь сообщений. Каждая программа имеет буфер памяти, размер которой меняется от количества сообщений.
Здесь сообщения не теряются, а очередь сообщений ограничена оперативной памятью
Синхронизация по использованию ресурсов.
Ресурс — физическое устройство (печатающее или дисковое) или область оперативной памяти.
Цель: При наличии двух программ, которые выполняют расчету выводят результат на печатающее устройство, а также отсутствии при этом синхронизации, на принтере имела место смесь символов от одной и другой программ.
Подходы к синхронизации:
1. Использование специальной программы (сервера ресурса), которая принимает запросы, упорядочивает запросы, обрабатывает эти запросы, т.е. управляет запросами.
Для печатающего устройства — система спулинга — управление очередью печати. Спулинг разделяет запросы на печать.
2. Использование семафоров.
Семафор - специальная переменная, которая принимает значения 0 и 1. Используются также «счетные семафоры».
Если семафор принимает значения 0 - ресурс занят или 1, то - ресурс свободен.
Перед тем как обратится к устройству программа определяет переменную, при наличии 1 программа уменьшает значение семафора.
В случае «счетных семафоров»:
0 - занят ресурс;
не 0 - свободно.
Следует отметить, что существуют семафоры, значение которых может иметь отрицательное целое число. Это число таким образом показывает количество задач, требующих данный ресурс.
В качестве примера борьбы за ресурс рассмотрим два случая, которые могут иметь место быть:
«Смертельный» захват.
Для выполнения программ 1 и 2 необходимо иметь устройство ввода информации устройство вывода. При этом Пр. 1 захватила клавиатуру, Пр. 2 - монитор понизив при этом значение семафора и клавиатуры и монитора до нуля. В итоге и Пр.1 и Пр. 2 не могут закончить свою работу, т.к. для их выполнения необходимы нужен и монитор и клавиатура. Итогом является зависание обеих программ в ожидании монитора или клавиатуры.
Выход: При этом используется процедура отката, которая заключается в том, что программа освобождает все захваченные ресурсы и после пытается их захватить.
2. Инверсия приоритетов.
Программа 1 активна, т.к. 2 и 3 не были готовы для работы. Ресурс не успевая произвести запись на диск, прерывается программой 3. Низкоприоритетная задача не может освободить ресурс, т.к. была прервана, а программа 3 не может записаться, т.к. ресурс занят. Таким образом, программа 3 также не может работать. Программа 2 в этом случае работает все свободное время. В итоге программа 2 с более низким приоритетом работает, а программа 3 не работает вообще.
Синхронизация с внешними событиями.
События должны быть обнаружены, и программы в соответствие с событиями должны производить те или иные действия.
Технологические процессы
Способы считывания информации о внешнем процессе:
Циклический опрос;
Обмен по прерываниям;
Прямой доступ к памяти. 4. Циклический опрос
Достоинство: способ прост.
Недостатки: Если существует большое количество датчиков и исполнительных механизмов, то очень сложно организовать чтение со всех регистров. Если регистры пусты, то процессорное время будет потрачено впустую.
Обмен по прерываниям
Внешнее устройство выдает на системную магистраль сигнал запроса «на прерывание». Это сигнал воспринимается процессором. Процессор прекращает выполнение текущей задачи и переходит к подпрограмме обработки 2 по прерываниям». Далее процессор переходит к обработке прерванной программы. За каждым прерыванием закреплен вектор прерывания — ячейка памяти, которая содержит адрес программы обработки.
Прямой доступ к памяти.
УСО может записывать в ОЗУ без участия процессора.
Синхронизация по времени.
Необходимо при выполнении действий, привязывать их к астрономическому времени. Такая необходимость возникает не так часто, как необходимость отслеживать интервалы времени. Для работы со временем микропроцессор содержит в себе программируемый таймер, который через заданный интервал времени может генерировать сигнал прерывания. Сигнал таймера называется - тиком. Тик обычно равен lμс, но можно изменять длительность тика.
Лекция 3 Классы систем реального времени
Количество операционных систем реального времени, несмотря на их специфику, очень велико. Сама специфика применения операционных систем реального времени требует гарантий надежности, причем гарантий в том числе и юридических.
Среди коммерческих систем реального времени можно выделить группу ведущих систем - по объемам продаж и по популярности. Эти системы: VxWorks, OS9, pSOS, LynxOS, QNX, VRTX.
Классификация ОСРВ представлена на рис. 8.1
Исполнительные системы реального времени
Признаком этих систем служат различные платформы для систем разработки и исполнения. Приложение реального времени разрабатывается на host- компьютере (компьютере системы разработки), затем компонуется с ядром и загружается в целевую систему для исполнения. Как правило, приложение реального времени - это одна задача и параллелизм здесь достигается с помощью нитей (threads).
Системы этого типа обладают рядом достоинств, среди которых главное - скорость и реактивность системы.
С этим главным достоинством связан и ряд недостатков: зависание всей системы при зависании нити, проблемы с динамической подгрузкой новых приложений. Наиболее ярким представителем систем этого класса является операционная система VxWorks. Область применения - компактные системы,реального времени с хорошими временами реакций.