
- •Базы данных
- •Вопрос 29 Основные функции систем управления базами данных
- •Вопрос 30 Реляционные базы данных
- •Базовые понятия реляционных баз данных
- •Фундаментальные свойства отношений
- •Недостатки реляционной модели баз данных
- •Вопрос 31 Реляционная модель данных
- •Вопрос 32 Манипулирование данными
- •Реляционная алгебра
- •Вопрос 33
- •Вопрос 34
- •Вопрос 36 Реляционное исчисление кортежей и доменов
- •Вопрос 38. Состав программного обеспечения информационно-управляющих систем
- •Вопрос 39. Программы организации и контроля вычислительного процесса
- •Вопрос 40. Особенности операционных систем реального времени
- •Вопрос 41. Операционная система реального времени qnx
- •Вопрос 42. Операционная система реального времени "Карусель"
- •Вопрос 43 Программа обработки прерываний
- •Вопрос 44. Программа включения оперативной задачи
- •Вопрос 45. Программа включения карусельной задачи
- •Вопрос 46 Программа start и подпрограмма zagr
Вопрос 40. Особенности операционных систем реального времени
Операционная система выполняет две функции: обеспечение программисту-пользователю удобств путём автоматизации программирования некоторых функций и эффективное использование ресурсов ЭВМ.
Например, для большинства ЭВМ весьма затруднительно создать в машинных кодах программу ввода данных с гибкого диска. Это потребовало бы использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т.д. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающих наличие и типы ошибок, которые, очевидно необходимо программным способом анализировать и на них реагировать.
Операционная система позволяет представить диск как набор файлов, каждый из которых имеет наименование. Работа с файлами сводится к их открытию, чтению или записи, а затем и закрытию. Остальную работу операционная система выполняет сама. Операционная система берёт на себя также обработку прерываний, управление таймером и оперативной памятью и т.д.
Вторая задача операционной системы - распределение процессорного времени, памяти, устройств вывода и ввода и др. между конкурирующими процессами. Оперативная система должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность её функционирования. Управление ресурсами включает решение двух общих, не зависящих от типа ресурса задач:
- планирование ресурса, то есть определение, кому, когда, а для делимых ресурсов и в каком количестве, необходимо выделить данный ресурс;
- отслеживание состояния ресурса, то есть поддержание оперативной информации о том, занят или свободен ресурс, а для делимых ресурсов и какое количество ресурса свободно.
Операционные системы могут различаться особенностями аппаратных средств, алгоритмов управления ресурсами, областью использования, методами построения и многими другими свойствами.
На свойства операционной системы непосредственное влияние оказывают аппаратные средства, на которые она ориентирована. По типу аппаратуры различают операционные системы персональных компьютеров, мини-компьютеров, мейнфреймов, сетей ЭВМ и кластеров (кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих задач, и представляющихся пользователю единой системой).
Классификация операционных систем по способу управления одним из ресурсов, а именно процессором представлена на рис. 3.2.
По числу одновременно решаемых задач операционные системы можно разделить на однозадачные (например, MS-DOS) и многозадачные (ОС ЕС, UNIX, Window 95). Однозадачные операционные системы включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем. Многозадачные, кроме указанных выше функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы, внешние устройства.
Многозадачные операционные системы можно разделить на три вида: системы пакетной обработки (например, ОС ЕС), системы разделения времени (UNIX, VMS) и системы реального времени (QNX, RT/11).
Операционные системы пакетной обработки предназначались для решения задач вычислительного характера, не требующих быстрого и строго определённого времени получения результатов.
Главной целью и критерием эффективности системьгпакетной обработки является максимальная пропускная способностьТт^Гмаксимальное число решённых задач за определённое время. Для достижения этой цели в операционных системах пакетной обработки используется следующая схема функционирования: в начале работы формируется пакет заданий, каждое из которых содержит требование к системным ресурсам; оперативная система разрабатывает план выполнения заданий таким образом, чтобы обеспечить максимальное число одновременно выполняемых задач (формируется мультипрограммная смесь). Для этого выбираются задачи, отличающиеся требованиями к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной системы. Например, является желательным одновременное присутствие в мультипрограммной смеси вычислительных задач и задач с интенсивным вводом и выводом данных. В этом случае процессор и устройства ввода и вывода будут работать одновременно. Поэтому выбор очередной задачи из пакета зависит от складывающейся ситуации в данный момент, следовательно, в таких операционных системах невозможно гарантировать выполнение того или иного задания в течение определённого времени.
В системах пакетной обработки переключение процессора с выполнения одной задачи на выполнение другой происходит только в случае, если активная задача сама отказывается от процессора, например, из-за необходимости выполнить операции ввода или вывода. Поэтому одна задача может надолго занять процессор, что делает невозможным выполнение интерактивных задач. Таким образом, взаимодействие пользователя с ЭВМ сводится к тому, что он приносит задание, отдаёт его оператору и через некоторое время получает результаты вычислений. Вмешаться в процесс вычислений он не может, исправляет ошибки путём корректировки задания и повторения вычисления.
Операционные системы разделения времени устраняют основной недостаток систем пакетной обработки - изоляцию пользователя-программиста от процесса выполнения его задачи. Каждому пользователю предоставляется терминал, с которого он может вести диалог со своей программой. Так как в системе разделения времени каждой задаче выделяется только квант процессорного времени, ни одна задача не занимает процессор надолго, и время ответа оказывается приемлемым. Естественно, система разделения времени обладает меньшей пропускной способностью, чем системы пакетной обработки, так как на выполнение принимается каждая запущенная пользователями задача, а не та, которая "выгодна" системе, и, кроме того, дополнительно теряется процессорное время на переключение задач. Таким образом, критерием выбора этой системы является не максимальная пропускная способность, а удобство и эффективность работы пользователя.
Операционные системы реального времени применяются для управления различными техническими объектами и технологическими процессами, такими, например, как вагонный замедлитель сортировочной горки, стрелки и сигналы на станции, формирование графика исполненного движения диспетчерской централизации. Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная программа. В противном случае может возникнуть недопустимая ситуация: отцеп уйдёт с замедлителя с недопустимо высокой скоростью и разобьёт стоящие на подгорочном пути вагоны, маршрут поезду своевременно не будет задан, и поезд остановится у входного светофора и т.д. Таким образом, критерием эффективности систем реального времени является их способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата (формированием управляющего воздействия).
Некоторые операционные системы могут совмещать в себе свойства систем разных типов, например, некоторые задачи могут решаться в режиме пакетной обработки, а другие задачи - в режиме реального времени или в режиме разделения времени. В таких случаях режим пакетной обработки часто называют фоновым.
По числу одновременно работающих пользователей операционные системы разделяются на однопользовательские и многопользовательские. Главным отличием многопользовательских операционных систем является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей.
Следует заметить, что не всякая многозадачная система является многопользовательской и не всякая однопользовательская операционная система является однозадачной.
Важнейшим разделяемым ресурсом считается процессорное время. Способов разделения процессорного времени между несколькими одновременно существующими в системе процессами довольно много, наиболее существенными из них являются алгоритмы, вытесняющие и не вытесняющие многозадачность. Эти алгоритмы отличаются друг от друга степенью централизации механизма планирования процессов. При невытесняющей многозадачности активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы она выбрала из очереди другой готовый к выполнению процесс. Таким образом, механизм планирования процессов распределён между операционной системой и прикладными программами. В операционных системах реального времени такой механизм планирования получил название мягкого временного режима, при котором своевременность окончания выполнения программы не гарантируется.
При вытесняющей многозадачности решение о переключении процессора с одного процесса на другой принимается операционной системой, т.е. механизм планирования процессов целиком сосредоточен в операционной системе. Такой режим планирования называется жёстким временным режимом, при котором своевременность выполнения программ гарантируется. Важнейшим свойством операционной системы является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая операционная система разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями).
Другим важным, свойством операционных систем можно считать отсутствие или наличие в ней средств поддержки многопроцессорной обработки, которая приводит к усложнению всех алгоритмов управления ресурсами. Современные операционные системы, как правило, имеют средства поддержки многопроцессорной обработки. Примером могут служить системы OS/2 фирмы IBM, Window NT фирмы Microsoft, NetWare 4.1 фирмы Novell и многие другие.
Многопроцессорные операционные системы могут классифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС. Асимметричная операционная система выполняется на одном из процессоров системы и распределяет прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует все процессоры, разделяя их между прикладными задачами.
Существенное влияние на вид операционной системы оказывают также способы управления другими ресурсами системы: памятью, файлами, устройствами ввода-вывода.
Специфика операционных систем проявляется и в том, каким образом она реагирует на сетевые функции: распознавание и перенаправление в сеть запросов к удалённым ресурсам, передача сообщений по сети, выполнение удалённых запросов. При реализации сетевых функций возникает комплекс задач, связанных с распределённым характером хранения и обработки данных в сети: ведение справочной информации обо всех доступных в сети ресурсах и серверах, адресация взаимодействующих процессов, обеспечение прозрачности доступа, тиражирование данных, согласование копий, поддержка безопасности данных. Сетевые операционные системы имеют в своём распоряжении средства передачи сообщений между компьютерами по линии связи. Для поддержания функций передачи сообщений сетевые операционные системы имеют специальные программные компоненты. Реализующие популярные коммуникационные протоколы, такие как IP, IPX, Ethernet и другие.
К базовым концепциям методов построения операционных систем относятся:
- операционная система может быть построена на основе монолитного ядра или микроядра, объединённого с приложениями. Монолитное ядро представляет собой одну программу, работающую в привилегированном режиме, что позволяет ей осуществлять быстрые переходы от одной процедуры к другой. Альтернативой является построение операционной системы на основе микроядра, работающего также в привилегированном режиме, но выполняющего минимум функций по управлению аппаратурой, в то время как функции операционной системы более высокого уровня осуществляют специализированные компоненты - серверы, работающие в пользовательском режиме. При таком построении операционная система работает медленнее, так как имеют место частые переходы между привилегированным и пользовательским режимами, но система получается более гибкой - её функции можно наращивать, модифицировать или сужать, изменяя или исключая серверы пользовательского режима;
- при создании операционной системы, как правило, используется объектно-ориентированный подход, имеющий следующие достоинства: аккумуляцию удачных решений в форме стандартных объектов, возможность создания новых объектов на базе имеющихся с помощью механизма наследования, хорошую защиту данных за счёт их инкапсуляции во внутренние структуры объекта, что делает данные недоступными для несанкционированного использования извне, и другие;
- наличие нескольких прикладных сред даёт возможность в рамках одной операционной системы одновременно выполнять приложения, разработанные для нескольких операционных систем. Многие современные операционные системы поддерживают одновременно прикладные среды MS-DOS, Windows, UNIX, OS/2 или некоторые из этого популярного набора. Концепция множественных прикладных сред наиболее просто реализуется в операционных системах на базе микроядра, над которым работают различные серверы, реализующие прикладную среду тоц.или иной операционной системы;
- распределённая организация операционной системы позволяет упростить работу пользователей и программистов в сетевых средах. В распределённой операционной системе реализованы механизмы, которые дают возможность пользователю представлять и воспринимать сеть в виде традиционного однопроцессорного компьютера. Характерными признаками распределённой организации операционной системы являются: наличие единой справочной службы разделяемых ресурсов, единой службы времени, использование механизма вызова удалённых процедур для прозрачного распределения программных процедур по машинам, возможность многонитевой обработки, позволяющей распараллеливать вычисления в рамках одной задачи и выполнять эту задачу сразу на нескольких компьютерах сети, а также наличие других распределённых служб.