Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы программирование.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
263 Кб
Скачать
☆

Вопрос 15(2). Инструментальная и целевая эвм.

Ограничения в распределённых системах реального временинет файловой системы, виртуальной памяти. Есть только приём прерываний и генерация временных интервалов.

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

Возникает инструментально-целевая ЭВМ.

В коды ИЭ, отладка

В используемый код

Кросс-трансляторы – трансляторы, работающие на одной машине, транслирующие в коды другой машины.

Вопрос 16(3). Комплекс вычислительных средств, сбои и отказы.

КВС – управляет системой

Пример:

Пусть есть АТС, есть канал, к которому подключен КВС, нес-ко МАЛ(модуль абонентской линии), БД, несколько модулей СЛ. Пусть скорость передачи 9.6 КБ/с. Вводим сообщения: шапка+содержимое+crc

Ответ о получении – 1 бит.Будем посылать все цифры вместе.

Можно рассмотреть «ФОБОС К» (но основе троированного Самсона в качестве):

"Самсон" – троированный. Является устройством, имеющим больший уровень надёжности, чем все остальные.

Если что-то не работает (аппаратная синхронизация):

  1. проверить, не сломалась ли сеть (для этого послать групповое сообщение)

  2. обнаружив неисправный узел, протестировать его

  3. ремонт

  4. вернуть узел на место (постепенное выравнивание памяти)

Постепенное выравнивание памяти

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

Если падают РМО (программная синхронизация):

УВК всегда посылает данные на два РМО (основной и резервный). Таким образом, гарантируем, что пользователь потеряет не более одной команды. Единственный плохой случай, когда упало во время работы с базой данных.

Отлавливание отказов:

Проц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 мс соответственно. Образуется очередь:

Уменьшаем на единицу только первое значение (вычитание происходит аппаратно). Когда доходит до нуля, значит подаём сигнал этому процессу, смещаем указатель в очереди.