- •Вопрос 1. Понятие технологии программирования.
- •Вопрос 2. Жизненный цикл программы.
- •Реализация
- •Вопрос 3. Постановка задачи. Оценка осуществимости.
- •Вопрос 4. Планирование.
- •Вопрос 5. Управление.
- •Вопрос 6. Тестирование и обеспечение качества.
- •Вопрос 9. Документирование.
- •Вопрос 7. Групповая разработка, управление версиями.
- •Вопрос 8. Организация коллектива разработчиков.
- •Вопрос 10. Сопровождение.
- •Вопрос 11. Управление качеством. Стандарты iso 9000, cmm, spice.
- •Вопрос 12. Case-средства.
- •Use case (описание словами всех интерфейсов – случаев использования). Диаграмма функций
- •Диаграмма объектов.
- •Диаграмма классов.
- •Конвертер из sdl в объектный программный код
- •Вопрос 13. Реинжиниринг программных систем.
- •Часть II. Технология программирования встроенных систем реального времени
- •Вопрос 14(1). Понятие встроенной системы реального времени.
- •Вопрос 15(2). Инструментальная и целевая эвм.
- •Вопрос 16(3). Комплекс вычислительных средств, сбои и отказы.
- •Вопрос 17(4). Работы с временными интервалами.
- •Вопрос 18(5). Организация вычислительного процесса.
- •Вопрос 19(6). Технология rtst.
- •Вопрос 20(7). Технология Real. Статическая модель.
- •Вопрос 21(8). Технология Real. Динамическая модель.
Вопрос 15(2). Инструментальная и целевая эвм.
Ограничения в распределённых системах реального временинет файловой системы, виртуальной памяти. Есть только приём прерываний и генерация временных интервалов.
Ограничения (требования) сильно влияют на архитектуру ЭВМ в распределённых системах реального времени. Прямо на ней работать нельзя.
Возникает инструментально-целевая ЭВМ.
В коды ИЭ, отладка
В используемый код
Кросс-трансляторы – трансляторы, работающие на одной машине, транслирующие в коды другой машины.
Вопрос 16(3). Комплекс вычислительных средств, сбои и отказы.
КВС – управляет системой
Пример:
Пусть есть АТС, есть канал, к которому подключен КВС, нес-ко МАЛ(модуль абонентской линии), БД, несколько модулей СЛ. Пусть скорость передачи 9.6 КБ/с. Вводим сообщения: шапка+содержимое+crc
Ответ о получении – 1 бит.Будем посылать все цифры вместе.
Можно рассмотреть «ФОБОС К» (но основе троированного Самсона в качестве):
"Самсон" – троированный. Является устройством, имеющим больший уровень надёжности, чем все остальные.
Если что-то не работает (аппаратная синхронизация):
проверить, не сломалась ли сеть (для этого послать групповое сообщение)
обнаружив неисправный узел, протестировать его
ремонт
вернуть узел на место (постепенное выравнивание памяти)
Постепенное выравнивание памяти
Все приходящие заказы помещаются в список. С другого конца списка эти заказы исполняются. Когда происходит подключение второй половины, запоминается последний пришедший заказ. С этого момента вторая половина только принимает заказы, но не исполняет их. Дождавшись, когда первая половина исполнит запомненный заказ, обе половины начинают работать вместе (теперь у них одинаковые списки заказов).
Если падают РМО (программная синхронизация):
УВК всегда посылает данные на два РМО (основной и резервный). Таким образом, гарантируем, что пользователь потеряет не более одной команды. Единственный плохой случай, когда упало во время работы с базой данных.
Отлавливание отказов:
Проц1, проц2, проц3- память1,память2,память3.
Если в какую-то память один из процессоров хочет записать не тот результат, который хотят двух других, и так, к примеру, 3 раза, то очевидно, что он сломался и его надо заменить.
Теперь плохая схема:
Каждые
100 мс компьютеры посылают соседям
сообщение "я жив", соседи читают
из памяти. Если кто-то "умер", соседи
через 100 мс об этом узнают.
Плохая реактивность: за 100 мс поломавшийся узел мог вообще всё испортить.
Вопрос 17(4). Работы с временными интервалами.
В самом названии РВ заложена проблематика времени. Во многих функциях используется время.
Если какой-то процесс в системе "завис" в ожидании сообщения, то как его "вычислить"? Чтобы процесс не "висел" в бесконечном ожидании сообщения, оставлена только функция получения сообщения с ограничением на время ожидания.
Есть аппаратный таймер, который каждые 10 мс выдаёт прерывание. К нему очередь процессов, которые надо "разбудить". Очередь упорядочена по возрастанию.
Классическое решение (псевдопараллелизм):
Есть
работающий процесс.
Его прервали.
Управление передаётся диспетчеру, который даёт поработать P1, P2 (они такие, что отработают быстро), потом поработают P3, P4, P5, потом снова P1, P2.
Что плохо:
редко какой процесс работает долго;
прерывание процесса (сворачивание) – занимает очень много команд (200-300).
Лучше процесс не прерывать (+600 команд), а дать ему доработать (20-30 команд).
Правильное решение (очередь временных событий):
пусть
имеется три процесса. Пусть их надо
будить через 10, 30, 100 мс соответственно.
Образуется очередь:
Уменьшаем на единицу только первое значение (вычитание происходит аппаратно). Когда доходит до нуля, значит подаём сигнал этому процессу, смещаем указатель в очереди.
