Операционная система ос2000

Автор работы: Пользователь скрыл имя, 11 Января 2012 в 11:36, реферат

Краткое описание

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

Содержимое работы - 1 файл

Операционная система ос2000.docx

— 74.49 Кб (Скачать файл)

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

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

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

  • семафоры на общей памяти,
  • очереди сообщений на общей памяти.

Семафоры  и очереди сообщений на общей  памяти аналогичны POSIX (именованным) семафорам  и очередям сообщений, хотя имеются  и некоторые отличия 

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

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

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

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

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

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

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

  • семафоров,
  • очередей сообщений,
  • пулов памяти,
  • областей памяти.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройка на конкретную аппаратуру производится с помощью с помощью конфигурирования ППМ. Каждый ППМ имеет собственные  средства конфигурирования.

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

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

К средствам  отладки относятся также средства протоколирования, которые описаны  отдельно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Протоколирование

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

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

Интерфейс со средствами протоколирования, базируется на стандарте POSIX 1003.1 2001 г.

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

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

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

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

  • указать множество типов событий, которые нужно протоколировать;
  • указать потоки управления, в контексте которых следует или не следует производить протоколирование;
  • указать объекты ОС, действия над которыми нужно протоколировать.

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

Информация о работе Операционная система ос2000