Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Операционные системы реального времени, их классификация.

Поиск

Операционная система выполняет две функции: обеспечение програм­мисту-пользователю удобств путём автоматизации программирования неко­торых функций и эффективное использование ресурсов ЭВМ.

Например, для большинства ЭВМ весьма затруднительно создать в машинных кодах программу ввода данных с гибкого диска. Это потребовало бы использовать 16 различных команд, каждая из которых требует 13 пара­метров, таких как номер блока на диске, номер сектора на дорожке и т.д. Ко­гда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающих наличие и типы ошибок, которые, очевидно необхо­димо программным способом анализировать и на них реагировать.

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

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

- планирование ресурса, то есть определение, кому, когда, а для дели­мых ресурсов и в каком количестве, необходимо выделить данный ресурс;

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

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

На свойства операционной системы непосредственное влияние оказы­вают аппаратные средства, на которые она ориентирована. По типу аппара­туры различают операционные системы персональных компьютеров, мини-компьютеров, мейнфреймов, сетей ЭВМ и кластеров (кластер - слабо связан­ная совокупность нескольких вычислительных систем, работающих совмест­но для выполнения общих задач, и представляющихся пользователю единой системой).

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

По числу одновременно решаемых задач операционные системы мож­но разделить на однозадачные (например, MS-DOS) и многозадачные (ОС ЕС, UNIX, Window 95). Однозадачные операционные системы включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем. Многозадачные, кроме указан­ных выше функций, управляют разделением совместно используемых ресур­сов, таких как процессор, оперативная память, файлы, внешние устройства.

Многозадачные операционные системы можно разделить на три вида: системы пакетной обработки (например, ОС ЕС), системы разделения време­ни (UNIX, VMS) и системы реального времени (QNX, RT/11).

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

Рис. 2.2. Классификация алгоритмов управления процессором

операционных системах пакетной обработки используется следующая схема функционирования: в начале работы формируется пакет заданий, каждое из которых содержит требование к системным ресурсам; оперативная система разрабатывает план выполнения заданий таким образом, чтобы обеспечить максимальное число одновременно выполняемых задач (формируется муль­типрограммная смесь). Для этого выбираются задачи, отличающиеся требо­ваниями к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной системы. Например, является желательным одновременное присутствие в мультипрограммной смеси вычислительных задач и задач с интенсивным вводом и выводом данных. В этом случае про­цессор и устройства ввода и вывода будут работать одновременно. Поэтому выбор очередной задачи из пакета зависит от складывающейся ситуации в данный момент, следовательно, в таких операционных системах невозможно гарантировать выполнение того или иного задания в течение определённого времени.

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

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

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

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

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

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

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

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

Другим важным, свойством операционных систем можно считать от­сутствие или наличие в ней средств поддержки многопроцессорной обработ­ки, которая приводит к усложнению всех алгоритмов управления ресурсами. Современные операционные системы, как правило, имеют средства под­держки многопроцессорной обработки. Примером могут служить системы OS/2 фирмы IBM, Window NT фирмы Microsoft, NetWare 4.1 фирмы Novell и

многие другие.

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

Специфика операционных систем проявляется и в том, каким образом она реагирует на сетевые функции: распознавание и перенаправление в сеть запросов к удалённым ресурсам, передача сообщений по сети, выполнение удалённых запросов. При реализации сетевых функций возникает комплекс задач, связанных с распределённым характером хранения и обработки дан­ных в сети: ведение справочной информации обо всех доступных в сети ре­сурсах и серверах, адресация взаимодействующих процессов, обеспечение прозрачности доступа, тиражирование данных, согласование копий, под­держка безопасности данных. Сетевые операционные системы имеют в своём распоряжении средства передачи сообщений между компьютерами по линии связи. Для поддержания функций передачи сообщений сетевые операцион­ные системы имеют специальные программные компоненты. Реализующие популярные коммуникационные протоколы, такие как IP, IPX, Ethernet и другие.

К базовым концепциям методов построения операционных систем от­носятся:

- операционная система может быть построена на основе монолитного ядра или микроядра, объединённого с приложениями. Монолитное ядро представляет собой одну программу, работающую в привилегированном ре­жиме, что позволяет ей осуществлять быстрые переходы от одной процедуры к другой. Альтернативой является построение операционной системы на ос­нове микроядра, работающего также в привилегированном режиме, но вы­полняющего минимум функций по управлению аппаратурой, в то время как функции операционной системы более высокого уровня осуществляют спе­циализированные компоненты - серверы, работающие в пользовательском режиме. При таком построении операционная система работает медленнее, так как имеют место частые переходы между привилегированным и пользо­вательским режимами, но система получается более гибкой - её функции можно наращивать, модифицировать или сужать, изменяя или исключая сер­веры пользовательского режима;

- при создании операционной системы, как правило, используется объ­ектно-ориентированный подход, имеющий следующие достоинства: аккуму­ляцию удачных решений в форме стандартных объектов, возможность созда­ния новых объектов на базе имеющихся с помощью механизма наследования, хорошую защиту данных за счёт их инкапсуляции во внутренние структуры объекта, что делает данные недоступными для несанкционированного ис­пользования извне, и другие;

- наличие нескольких прикладных сред даёт возможность в рамках од­ной операционной системы одновременно выполнять приложения, разрабо­танные для нескольких операционных систем. Многие современные опера­ционные системы поддерживают одновременно прикладные среды MS-DOS, Windows, UNIX, OS/2 или некоторые из этого популярного набора. Концеп­ция множественных прикладных сред наиболее просто реализуется в опера­ционных системах на базе микроядра, над которым работают различные сер­веры, реализующие прикладную среду той или иной операционной системы;

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

Вопрос 44

Операционная система реального времени "Карусель"

Операционная система реального времени "Карусель" была разработа­на для использования в системах автоматики, построенных с применением микропроцессорного комплекса "Микро-ДАТ" (КТС-ЛИУС2), но принципы её построения могут быть использованы в любых других системах.

Функционально операционная система может быть разделена на четы­ре части:

- программа обработки внешних прерываний;

- программа включения оперативной задачи;

- программа переключения карусельной задачи;

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

Все задачи, выполняемые системой, делятся на две группы: оператив­ные задачи, включаемые внешним прерыванием и решаемые до конца (опе­ративная программа может быть прервана только оперативной программой более высокого уровня приоритета), и карусельные задачи, решаемые как фоновые при отсутствии оперативных программ. Карусельные задачи вы­полняются в режиме разделения времени. Для выполнения каждой карусель­ной программы выделяется квант времени At. Если за это время задача не решена, она прерывается и включается следующая карусельная задача, для решения которой также выделяется квант времени. Таким образом, всем го­товым к решению карусельным задачам будет предоставлен квант процес­сорного времени для их решения. Только после этого осуществится переход к ранее прерванной программе. Переключение карусельных программ осу­ществляется по прерыванию, формируемому таймером, уровень приоритета которого равен единице. Оперативные задачи разделены на шесть уровней их приоритета (оче­рёдность выполнения оперативных задач, принадлежащих одному уровню приоритета, обеспечивается программой пользователя). В качестве контрол­лера прерываний в комплексе "Микро-ДАТ" применена микросхема 589ИК14, которая формирует команду RST. Для обработки прерывания вы­деляется восемь ячеек оперативной памяти. При этом управление передаётся на ячейки с адресами 8-N, где N - уровень прерывания (для первого уровня -0008h, для второго 001 Oh и т.д.). Если в регистр контроллера прерываний записать число в пределах 0..7 (например, 4), то на данный уровень и все уровни ниже данного будет наложен запрет прерываний. В нашем примере запрет прерываний будет наложен на уровни с нулевого по четвёртый вклю­чительно и разрешено прерывание задачам более высоких уровней.

При прерывании программы в стек заносится содержимое всех регист­ров микропроцессора, расположение записей показано в табл.3.1, При этом адрес возврата (содержимое регистра PC) записывается при выполнении ко­манды RST, формируемой контроллером прерываний, остальные записи осуществляются программой обработки прерываний. В вершину стека зано­сится номер уровня приоритета прерываемой задачи (при прерывании кару­сельной задачи - 00h). Уровень приоритета задачи, решаемой в данный мо­мент времени, хранится в ячейке GSTAC.

Оперативные программы используют системный стек, а для каждой карусельной про1раммы формируется отдельный стек. Его размер определя­ется программистом, исходя их потребностей программы, плюс 12 ячеек.

 

Таблица 2.1 Вершина стека

Указатель стека после прерывания ® Уровень приоритета прерванной задачи Примечание
  ВС  
  PSW А+ рг. признаков
  DE  
  HL  
  PC  
Указатель стека до пре­рывания —>    

Если прерывание осуществляется по инициативе оперативной задачи, содержимое указателя стека прерываемой программы записывается в табли­цу GSTAC (см. табл.3.2), которая располагается между системным стеком и ячейкой GSTAC.

При этом адреса ячеек, в которые производится запись содержимого регистра PS прерываемой программы, определяется уровнем приоритета прерывающей программы. Если, например, программа, имеющая уровень приоритета 5, прерывает карусельную задачу, то вершина указателя стека карусельной задачи будет записана в ячейки GSTAC-10 (младший байт) и GSTAC-9 (старший байт).

Таблица 2.2 Таблица GSTAC

 

 

 

 

 

 

Адрес Содержимое ячейки
GSTAC-15 Дно системного стека
GSTAC-14 Запись рг. PS прерываемой программы, прерывающая программа имеет уровень приоритета 7
GSTAC-13
GSTAC-12 Запись рг. PS прерываемой программы, прерывающая программа имеет уровень приоритета 6
GSTAC-11
GSTAC-10 Запись рг. PS прерываемой программы, прерывающая программа имеет уровень приоритета э
GSTAC-9
GSTAC- 8 Запись рг. PS прерываемой программы, прерывающая программа имеет уровень приоритета 4
GSTAC-7
GSTAC- 6 Запись рг. PS прерываемой программы, прерывающая программа имеет уровень приоритета 3
GSTAC- 5
GSTAC-4 GSTAC-3 Запись рг. PS прерываемой программы, прерывающая программа имеет уровень приоритета 2
GSTAC- 2 Не используются
GSTAC- 1
GSTAC Уровень приоритета выполняемой программы

Таблица 2.3 Таблица BANK

 

 

 

 

 

 

Адрес Содержимое ячеек
BANK Номер строки таблицы BANK, в которой будет записан указа­тель стека выполняемой программы
BANK+1
BANK+2 Указатель вершины стека 1-ой карусельной программы
BANK+3
BANK+4 Указатель вершины стека 2-ой карусельной программы
BANK+5
BANK+6 BANK+7 Указатель вершины стека 3-ей карусельной программы
BANK+8 Указатель вершины стека 4-ой карусельной программы
BANK+9
---  
---
BANK+k·2 Указатель вершины стека k-той карусельной программы
BANK+k·2+1
BANK+k·2+2 OOh
BANK+k·2+3 OOh

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

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

Вопрос 45



Поделиться:


Последнее изменение этой страницы: 2016-04-07; просмотров: 507; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.75.247 (0.016 с.)