- •1. Определение и основные особенности осрв.
- •2. Определение осрв. Типичные времена реакции на внешние события в управляемых осрв процессах.
- •3. Основные области применения осрв.
- •4. Особенности оборудования, на котором работают осрв.
- •5. Основные определения: программа, процессор, процесс, состояние, стек, виртуальная память.
- •6. Основные определения: межпроцессное взаимодействие (семафоры и т.П.), событие, задача, ресурс, связывание.
- •Типы задач. Виды программирования.
- •8. Виды ресурсов. Состояние процесса
- •9)Типы взаимодействия процессов.
- •10)Стандарты на осрв. Нормы esse консорциума vita. Стандарт posix 1003.1b.
- •11. Стандарт на осрв sceptre
- •12. Типы архитектур осрв
- •13.ОБъектно-ориентированный подход к программированию. Основная концепция объектно-ориентированного подхода
- •14. Монолитная архитектура осрв
- •15. Модульная арх-ра осрв(на основе микроядра)
- •16. Объектная арх-ра на основе объектов-микроядер
- •17. Строение ос
- •18. Синхронизация и взаимодействие процессов
- •19. Семафоры.
- •20. События (сигналы).
- •21. Почтовые ящики
- •23.Собъекты синхронизации стандарта Posix, Mutex, Condvar
- •24.Управление задачами. Планирование задач.
- •25. Планирование задач. Приоритеты.
- •26. Стратегии планирования задач.
- •27. Планирование периодических задач
- •28.Переключение контекста.
- •29. Классификация осрв.Краткий обзор современных осрв
- •30.Системы на основе Linux
- •31.Осрв на основе Windows nt
- •32.Критерии выбора языка программирования для срв
- •32.Языки разработки для осрв
- •35. Типовая структура программ, работающих в рв.
- •36. Необходимость оптимизации программ.
- •37. Осрв qnx. Краткая характеристика.
- •38. Осрв qnx. Особенности.
- •39. Элементы стандарта posix в осрв qnx.
32.Критерии выбора языка программирования для срв
1)получение наивысш. произв-ти - один из наиболее главных критериев. Язык програм-ия должен быть компилированным- с поддержкой оптимизации испол-го кода. Этим требованиям удовл. С++. Часто при созд-и быстродейст-щих приложений при написании критич-х по времени фрагментов прогр-ы исп-ся Ассемблер
2)получение доступа к любым рес-сам оборуд-я либо посред-вом языковых конструкций, либо использ-ие функции дополнит. библиотек, поставляем. вместе с оборудованием
3)возм-ть вызова процедур, напис-х на др.языке
4)возм-ть исп-я объектно-ориентиров. подхода
При созд-и приложений для ОСРВ исп-ся С/С++, Assembler, Java
32.Языки разработки для осрв
Assembler-является машинным кодом в котором каждая команда процессора заменяется условным обозначением понятым для человека
Обеспечивает мах производительность ,прямой доступ к оборудованию , вызов любых процедур на других языках
Переносимость только в пределах 1 аппаратной платформы
Обычно используется для написания небольших четких механизмов, рагментов приложений
С\С++ обеспечивает баланс между быстродействием приложения и эффективностью труда программиста , доступ к оборудов.
Стандартизированная версия языка обеспечивает 100% переносимости .
Java Язык интерпретированного типа , низкая производительность программного кода
Доступ к оборудованию с помощью библиотечных функций .
Хорошая переносимость программного кода Java VM для доступа приложения требуется виртуальная машина
В обычных системах данный язык используется для создания вспомогательного оборудования ,не управляет техническими объектами .
Группа языков 4 поколения : CASE (программы автоматического создания программного обеспечения )
34. особенности языка С/С++, как языка системного программирования. Достоинства и недостатки языка С.
Язык С появился в 1973г. Автор: Деннис Ритчи (Bell labs). Он создавался для UNIX, для цели системного программирования, быстродействия. В начале 60х гг появился язык Алгол, который большей своей частью вошел в язык Pascal, а так же в С.
Приложения, созданные на языке С обладают более высокой производительностью по сравнению с приложениями, созданными на других языках высокого уровня. Многие языковые конструкции С являются абсурдными с точки зрения строгих алгоритмических языков: if (!a) или if (a==0). В Паскале: if (a=0) then. Целью таких нелогичных конструкция является минимизация получаемого машинного кода. В большинстве случаев такие конструкции объясняются на основе машинного представления информации, т е на основе представления информации в процессоре.
Язык прогр-я высокого уровня
Язык С относится к
Assembler
Процессор
По разработке промышленных компов 1 место занимает Microsoft Visual C.
Достоинства:
малый размер компилятора.
Базовый синтаксис языка содержит порядка 30 ключевых слов
Слабая типизация языка (слабо выраженные типы данных)
char a;
a=7; или a=’b’;
char b[30];
b=”строка”; или b[1]=5;
(float) c – преобразование типа:
float f;
(int) (f+0,4);
Это все позволяет сформировать более быстродействующий программный код.
Поддержка модульного программирования (используется для создания больших программных проектов, когда размер прогр. кода превышает 100 строк. Позволяет более эффективно вести разработку программ, например большим коллективом программистов).
Проект prog
modul 1.c – компиляция – modul 1.obj
modul 2.c – компиляция – modul 2.obj prog.exe
modul 3.asm – трансляция – modul 3.obj
Простой интерфейс с подпрограммами на Ассемблере. Поддержка ассемблера осущ-ся как на уровне внешних модулей, так на уровне исходного текста программы на языке С, т е используется так называемые ассемблерные вставки:
текст на С
….
asm {
текст на ассемблере….
}
…….
текст на С.
Ассемблер обычно используется для повышения быстродействия отдельных участков программ.
Эффективная работа с памятью, основана на указателях:
int a; - память выделяется
int *b; - память сразу не выделяется, она будет распределена динамически
Компиляторы языка как правило имеют встроенные средства оптимизации исполняемого кода.
Недостатки:
Слабая типизация языка (может приводить к ошибкам в алгоритме работы программы)
Отсутствие проверок на этапе исполнения скомпилированных программ. Но отсутствие проверок повышает быстродействие исполняемого кода.