Операционные системы реального времени

Использование системного и общего программного обеспечения как способа сокращения сроков разработки и повышения качества систем реального времени. Создание мобильных систем, организация псевдопараллельной обработки данных. Базовые операции ввода/вывода.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.07.2009
Размер файла 52,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Для решения этой проблемы прикладная программа может либо потребовать обеспечения целостности данных или файла при выполнении каждой операции ввода/вывода, либо время от времени вызывать одну из функций: fsync(), fdatasync() или aio_fsync(), которые обеспечиваю целостность данных или файла.

Первый вариант реализуется путем установки флагов O_SYNC, O_DSYNC и O_RSYNC в описании файла. Эти флаги могут быть установлены при открытии файла функцией open(). После открытия файла значения флагов могут быть установлены или сброшены функцией fcntl().

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

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

Более подробную информацию об операциях ввода/вывода можно получить в гл. Операции ввода/вывода.

1.8 Взаимодействие с сетью

1.8.1 Протоколы семейства TCP/IP

Программное обеспечение портировано из UNIX BSD 4.2, что обеспечивает соответствие стандартам, используемым в Интернет.

Реализованы следующие протоколы семейства TCP/IP.

Код

Наименование

Примечание

ARP

Address Resolution Protocol

Определение физического адреса по IP.

IP

Internet Protocol

Связь между двумя точками через несколько сетей (без установления связи)

ICMP

Internet Control Message Protocol

 

TCP

Transmission Control Protocol

Надежная связь между двумя точками через несколько сетей

UDP

User Datagram Protocol

 

FTP

File Transfer Protocol

Средство передачи файлов

Telnet

Terminal emulation

Протокол эмуляции вертуального терминала

Для работы по последовательному интерфейсу реализованы протоколы PPP и SLIP.

1.8.2 Интерфейс пользователя (сокеты)

Пользовательский интерфейс (API) совпадает с UNIX BSD 4.2. Программное обеспечение портировано из UNIX BSD 4.2

1.9 Многопроцессорные системы

Операционная система содержит средства поддержки многопроцессорных комплексов на MIPS-совместимых процессорах. Их можно использовать для комплексов, состоящих из нескольких плат, взаимодействующих по шине VME. Каждая плата содержит процессор и память. Часть этой памяти доступна только данному процессору (локальная память), другая часть - всем процессорам (общая память). Для посылки прерываний друг другу процессоры используют так называемые "почтовые ящики" - регистры, адресуемые через шину VME. Каждый "почтовый ящик" находится на плате одного из процессоров. Запись в "почтовый ящик" вызывает прерывание соответствующего процессора.

Операционная система обеспечивает взаимодействие потоков управления, выполняющихся на разных процессорах, распределение общей памяти, ведение словаря объектов на общей памяти, а также эмуляцию Ethernet на общей памяти.

Хотя объекты общей памяти имеют уникальный VME-адрес, их адреса в адресном пространстве различных процессоров (локальные адреса) могут отличаться. В силу этого операционная система работает с относительными адресами (смещениями относительно начала общей памяти). Перед обращением к объекту в общей памяти прикладная программа должна преобразовать смещение в локальный адрес.

1.9.1 Взаимодействие потоков управления

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

· семафоры на общей памяти,

· очереди сообщений на общей памяти.

Семафоры и очереди сообщений на общей памяти аналогичны POSIX (именованным) семафорам и очередям сообщений. Основные отличия семафоров и очередей сообщений в общей памяти:

· очередь потоков, ожидающих ресурсы, обслуживается по принципу "первый пришел - первый обслужен (FIFO)";

· их нельзя использовать в функциях обработки прерываний;

· семафоры и очереди сообщений в общей памяти не могут быть уничтожены.

Напомним, что в POSIX очередь потоков, ожидающих семафор или сообщение, обслуживается в соответствии с приоритетами; принцип "первый пришел - первый обслужен (FIFO)" применяется только для потоков с одинаковым приоритетом.

Для семафоров и очередей сообщений на общей памяти используются те же функции, что и для обычных (POSIX) семафоров и очередей сообщений. Благодаря этому программу для многопроцессорного комплекса можно в начале разрабатывать и отлаживать на однопроцессорной ЭВМ, а затем (внеся лишь небольшие поправки в аргументы функций создания семафоров и/или очередей сообщений) отлаживать и использовать на многопроцессорном комплексе.

Если поток управления использует средства межпроцессорного взаимодействия, то при его создании нужно указать соответствующий атрибут.

1.9.2 Распределение памяти

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

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

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

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

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

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

1.9.3 Словарь объектов в общей памяти

Словарь объектов предназначен для учета следующих объектов в общей памяти:

· семафоров,

· очередей сообщений,

· пулов памяти,

· областей памяти.

Словарь содержит набор структур, каждая из которых описывает один объект. Структура содержит следующие сведения об объекте:

· имя объекта,

· тип объекта,

· адрес объекта в общей памяти (смещение).

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

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

1.9.4 Объекты типа спин

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

Для обеспечения взаимоисключения при обработке объектов в общей памяти одновременно несколькими процессорами операционная система на нижнем уровне использует объекты типа спин.

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

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

Захват спина совмещается с запрещением прерываний. Перед захватом спина запрещаются прерывания, затем делается попытка захватить спин. Если попытка была неудачной, то разрешаются прерывания, затем снова запрещаются прерывания, делается новая попытка захватить спин и т.д.

Вообще говоря, существует несколько способов реализации спинов. Конкретная реализация определяется ППМ. Применяемый в настоящее время способ реализации основан на захвате шины VME. Спину соответствует слово памяти. При инициализации спина туда заносится 0. При захвате спина в начале захватывается шина VME и проверяется значение спина. Если оно равно 0, то ему присваивается значение 1. Затем шина освобождается.

1.9.5 Эмуляция Ethernet на общей памяти

Так как в настоящее время сетевые карты Ethernet широко распространены, для ос2000 был разработан драйвер, совпадающий по интерфейсу с драйверами карт Ethernet, но использующий для передачи данных шину VME и общую память.

Такой подход позволяет использовать программное обеспечение, разработанное для карты Ethernet, в первую очередь стек протоколов TCP/IP, широко применяемый в Интернет. Таким образом, процессоры на шине VME могут взаимодействовать друг с другом, используя интерфейс передачи данных по сети (в частности аппарат сокетов). Для выхода в локальную или глобальную сеть достаточно одной карты, принадлежащей одному процессорному модулю. Этот модуль используется как шлюз другими процессорными модулями.

Отметим, что эмулятор Ethernet не зависит от других средств межпроцессорного обмена (семафоров, очередей сообщений и др.)

1.10 Конфигурирование

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

Средства конфигурирования ос2000 позволяют настроить операционную систему

· на нужды прикладной программы, определив параметры ОС и включив в образ системы только нужные прикладной программе части операционной системы (масштабирование);

· на конкретную конфигурацию аппаратуры.

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

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

Головным модулем ППМ является ос2000.с. Этот модуль получает управление после загрузки ОС. Он производит инициализацию аппаратуры и операционной системы, а затем запускает корневой поток управления прикладной программы или командный интерпретатор. Хотя для каждой платы создается свой вариант модуля ос2000.с, они имеют много общего. В частности ос2000.с содержит в себе модуль initos.c, который инициализирует ОС и обеспечивает конфигурирование аппаратно независимой части ОС.

Условная компиляция модуля initos.c управляется DEFINE-переменными, определяемыми в модуле configos.h. Наиболее удобный способ определения конфигурации - формирование configos.h диалоговой программой.

Настройка операционной системы на конкретную конфигурацию аппаратуры производится с помощью DEFINE-переменных, определяемых в модуле configbrd.h или путем внесения изменения в исходные тексты ППМ, прежде всего в модуль ос2000.с.

Более подробную информацию о конфигурировании можно получить в гл. Конфигурирование.

1.11 Средства отладки

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

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

1.11.1 Командный интерпретатор

Командный интерпретатор shell предназначен для интерактивной работы. Для взаимодействия с интерпретатором (для ввода команд и получения результатов) используется консоль. В качестве консоли может быть использован алфавитно-цифровой терминал или telnet соединение. В ос2000 командный интерпретатор является реентерабельной программой и поэтому можно использовать несколько экземпляров интерпретатора.

Командный интерпретатор позволяет:

· вывести значение переменной;

· присвоить переменной указанное значение;

· создать переменную;

· вызывать функцию (любую функцию, упомянутую в таблице имен);

· вычислить арифметическое выражение, содержащее константы, переменные и функции;

Для адресации объектов операционной системы интерпретатор позволяет использовать специальные синтаксические конструкции, например, выражение %s1 эквивалентно адресу первого (в списке) семафора.

Для облегчения ввода команд интерпретатор хранит последние 10 введенных команд и позволяет повторить любую из них.

1.11.2 Локальный отладчик

Локальный отладчик позволяет отлаживать прикладные программы непосредственно на целевой ЭВМ. Управление отладчиком производится с помощью команд, которые вводятся в командный интерпретатор. Отладка производится в терминах команд целевой ЭВМ (а не в терминах языка высокого уровня, на котором написана прикладная программа). Отладка в терминах исходного языка программы возможна с помощью удаленного отладчика, работающего на инструментальной ЭВМ.

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

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

1.11.3 Динамический загрузчик

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

Загружаемый модуль может иметь ссылки на ранее загруженные (например, при начальной загрузке) функции и переменные, упомянутые в таблице имен. При загрузке модуля его внешние переменные и функции вносятся в таблицу имен.

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

Более подробную информацию о средствах отладки можно получить в гл. Средства отладки.

1.12 Документация

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

Документация создается в HTML-формате, что позволяет использовать гипертекстовые ссылки как внутри документации, а также включать в документацию схемы, рисунки и фотографии.

Отметим следующие достоинства формата HTML:

· является общепринятым стандартом,

· подробное описание формата легко доступно,

· не зависит от типа ЭВМ,

· широко используется в Интернете и интранете.

Для получения документации в виде книги или брошюры HTML-файлы объединяются в один или несколько документов в формате PDF или PS.


Подобные документы

  • Классификация систем реального времени. Ядра и операционные системы реального времени. Задачи, процессы, потоки. Преимущества и недостатки потоков. Свойства, планирование, синхронизация задач. Связанные задачи. Синхронизация с внешними событиями.

    реферат [391,5 K], добавлен 28.12.2007

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

    реферат [55,0 K], добавлен 11.12.2011

  • Основные характеристики систем реального времени, типы архитектур. Система приоритетов процессов (задач) и алгоритмы диспетчеризации. Понятие отказоустойчивости, причины сбоев. Отказоустойчивость в существующих системах реального времени (QNX Neutrino).

    контрольная работа [428,8 K], добавлен 09.03.2013

  • Характеристики, основы применения, архитектура жестких и операционных систем реального времени. Последовательное программирование задач реального времени. Структура и языки параллельного программирования, мультипрограммирования и многозадачности.

    курсовая работа [195,9 K], добавлен 17.12.2015

  • Обзор требований проблемной области. Особенности управления задачами. Исполнительные системы реального времени. Программирование на уровне микропроцессоров. Модели и методы предметной области. Реализация прототипа системы реального времени.

    курсовая работа [263,1 K], добавлен 15.02.2005

  • Рассмотрение основных принципов и методов проектирования систем реального времени. Описание конструктивных и функциональных особенностей объекта управления, построение диаграммы задач. Выбор аппаратной архитектуры, модели процессов-потоков, интерфейса.

    курсовая работа [1,2 M], добавлен 19.01.2015

  • Современные SCADA-системы и их безопасность. Диспетчерское управление и сбор данных. Основные компоненты SCADA-систем. Система логического управления. База данных реального времени. Автоматическая конвертация проектов для разных операционных систем.

    реферат [253,7 K], добавлен 25.11.2014

  • Создание систем автоматизированного сбора и обработки данных. Разработка информационной системы гостиничного комплекса. Выбор требуемой СУБД и программного обеспечения. Концептуальное, логическое проектирование. Организация ввода данных в базу данных.

    дипломная работа [790,1 K], добавлен 13.02.2016

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

    курсовая работа [1,5 M], добавлен 23.01.2010

  • Инструментальные средства проектирования интеллектуальных систем. Анализ традиционных языков программирования и представления знаний. Использование интегрированной инструментальной среды G2 для создания интеллектуальных систем реального времени.

    контрольная работа [548,3 K], добавлен 18.05.2019

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.