Главная » Просмотр файлов » Н. Джехани - Язык Ада (1988)

Н. Джехани - Язык Ада (1988) (1160771), страница 29

Файл №1160771 Н. Джехани - Язык Ада (1988) (Н. Джехани - Язык Ада (1988)) 29 страницаН. Джехани - Язык Ада (1988) (1160771) страница 292019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 29)

Если в ожидаемый момент времени показания не поступили, выдается сигнал тревоги — возбуждается исключение ХО ТЕМР КЕАР1ХО (нет измерения температуры), — по которому следует предпринять корректирующие действия. Такой процесс управления можно реализовать следующим образом: 1оор ве!ес! ассер( ХЕ% ТЕМР(А: 1п ТЕМРЕКАТОКЕ) оо Т: А; ево' ХЕ1г' ТЕМР; обработать последние значения температуры Т ог йе)ау 0.1; — ждать 0,1 секунды, а затем выдать сигнал тревоги гаЬе ХО ТЕМР КЕАР1ХО; — сигнал тревоги выдан. Исключения — рассматриваются в главе 5 ево ве!есй епа!оор; 4.8. Механизм взаимного исключения Механизм рандеву можно использовать для реализации взаимного исключения во времени.

Взаимное исключение необходимо для того, чтобы гарантировать целостность данных при их совместном использовании несколькими задачами [ВК173). Взаимное исключение в языке Ада можно реализовать достаточно просто, если потребовать, чтобы в каждом рандеву участвовало только две задачи. Одна из задач может осуществлять контроль за той областью совместно используемых данных, к которой разрешен взаимно исключающий доступ. Например, задача МЕНАКЕР РАТА контролирует совместно используемые данные, которые изменяются н читаются несколькими задачами: !аак БНАКЕР РАТА Ь ев!ту 1.1РРАТЕ (формальные параметры); ев!гу КЕАР(формальные параметры) Г3а яаноегь епо БНАКЕР ВАТА; 3ав)г Ьойу БНАКЕР ВАТА 3в описание совместно используемых данных Ьей)п 3оор Принять по одному запросы на изменение или чтение совместно используемых данных яе)ес3 ассере 3)РВАТЕ(формальные параметры) оо Запомнить параметры езн3 3)РРАТЕ; - - разрешить задаче, выдавшей запрос на изменение данных, - - продолжить выполнение -- в течение того времени, когда - - происходит фактическое изменение ог Изменить данные ассер3 КЕАР (формальные параметры) 3)о Присвоить параметрам соответствующие значения еш3 КЕАР; ог - - остановиться„если все задачи, использующие - - эти данные, уже завершились или готовы завершиться гепп)вазе; ево яе)ес3; епо!оор; евй МЕНАКЕР ВАТА; Доступ к общим данным осуществляется путем выполнения вызова входов: БНАКЕР ВАТА 3)РВАТЕ (фактические параметры) ЕНАКЕР ВАТА.КЕАР(фактические параметры) Этот пример показывает, что реализация механизма взаимного исключения в языке Ада очень проста.

Часто бывает необходимо обеспечить нескольким задачам возможность одновременного доступа к совместно используемым данным, так как это может уменьшить среднее время ожидания. Для этого должна быть спроектирована такая задача, которая представляла бы другим задачам право на обновление и чтение общих данных, но сама бы в отличие от задачи МЕНАКЕР РАТА не контролировала эти данные Задачи пользователя сообщают этой задаче о завершении своей работы с этими данными, чтобы она могла следить за другими задачами„имеющими доступ к совместно используемым данным.

Глава 4 4.9. Задачные типы 19.1, 9.21 Задачные типы облегчают описание одинаковых задач, так как несколько задач могут быть описаны вместе в массиве либо индивидуально. Описание задач- ного типа синтаксически аналогично описанию задачи с единственным отличием, что в него включено зарезервированное слово гуре. Например, задачный тнп РОКК можно описать следующим образом: $аяЫ гуре РОКК!в еп1гу Р1СК 1иР; визгу Р11Т 0Овв'Х; епй РОКК; Описание Р!, Р2: РОКК; определяет две задачи — Р! и Р2.

Эти задачи становятся активными непосредственно перед выполнением первого оператора подпрограммы илн перед выполнением пакета, в котором эти задачи описаны. Массивы, элементами которых являются задачи, описываются точно так же, как массивы элементов любых других типов. Например, каждый элемент массива Р, описанного как > Р:агаву(1О) о1 РОКК; является задачей. Задачные типы аналогичны лимитируемым личным типам. Объекты задачного типа являются константами, и к ним нельзя применять присваивание и проверку на равенство ~~. Задачи можно передавать как параметры, причем фактический и соответствующий формальный параметры обозначают одну и ту же задачу для всех видов параметров.

Если в программе требуется динамически создавать задачи либо запоминать и переименовывать их, то используется ссылочный тип. Например, рассмотрим ссылочный тип АХОТНЕК РОКК, описанный как гуре АХОТНЕК РОКК Ь ассеяя РОКК; и переменную ЕХТКА РОКК, описанную как ЕХТКА РОКК: АХОТНЕК РОКК: Задача может быть создана динамически с помощью генератора певч ЕХТКА РОКК:- веча РОКК; Такие задачи становятся активными после выполнения генератора. Задачи, порожденные генератором, должны быть завершены перед выходом из блока, подпрограммы или задачи, в которых описан этот ссылочный тип. В противном случае из них выйти нельзя. и И на неравенство. — Прим. ред. 141 Параллельность 4.10.

Оператор прекращения 19.101 Задачу можно явно прекратить с помощью оператора прекращения аЬогг. В результате выполнения оператора аЬогг Ть Ть ..., Т„; все задачи Ть Ть ..., Тм которые еще не были прекращены, переводятся в аварийное состояние, предотвращая любые дальнейшие рандеву с ними. Все задачи, которые зависят от задачи, перешедшей в аварийное состояние, также завершаются аварийно. Задача, ставшая аварийной, завершается немедленно, если она ожидает вызова входа операторов принятия, отбора или задержки. В противном случае эта задача завершается, как только будет достигнута точка синхронизации — начало или конец оператора принятия, обработчика исключения и т.

д. Если вызывающая задача стала аварийной в процессе рандеву, то до завершения ей разрешается закончить выполнение рандеву. Вызванная задача при этом не затрагивается. Если в процессе рандеву становится. аварийной задача, содержащая оператор приема, то в вызвавшей запаче в точке вызова входа возбуждается исключение ТАЗК)ХО ЕККОК (ошибка управления задачами). Исключение ТАЗК1)ЧО-ЕККОК возбуждается в точках вызова входа во всех задачах, ожидающих или пытающихся установить рандеву с задачей, завершившейся аварийно. Если задача стала аварийной (либо если выполнение задачи закончилось или завершено), атрибут САЕЕАВЬЕ принимает значение РА(.оЕ.

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

4.11. Прерывания 113.5. Ц Язык программирования Ада предоставляет прекрасные возможности обработки запросов на прерывание от оборудования. Запросы на прерывание, которые можно поставить в очередь, рассматриваются системой как обычные вызовы входа, а те запросы на прерывание, которые нужно обработать немедленно, — как условные вызовы входов. Вход задачи можно связать с запросом на прерывание от оборудования, если потребовать, чтобы этот вход был расположен по адресу прерывания. Такая спецификация входа зависит от реализации. Оператору принятия, выполняющемуся в ответ на прерывание, дается наивысший приоритет (выше, чем у любой пользовательской задачи), чтобы обеспечить эффективное использование устройств и приемлемое время отклика при работе в условиях реального времени. (Более подробную информацию о связи входов с адресами прерываний можно получить в гл.

8.) 142 Глава 4 4.12. Приоритеты задач [9.81 Каждая задача может иметь приоритет, отличающийся от приоритета, присвоенного задаче по умолчанию при реализации. Приоритет задается с помощью прагмы РК1ОК1ТУ (приоритет) ргарпа РК10К1ТУ(Р); которая включается в спецификацию задачи.Р— статическое выражение, принадлежащее зависящему от реализации целому подтипу РК)ОК1ТУ. Чем больше значение Р, тем выше приоритет задачи. Приоритет задачи является статическим и его нельзя изменить динамически.

При выборе для выполнения рандеву задаче с более высоким приоритетом отдается предпочтение. Пусть две задачи, А и В, готовы выполнить рандеву с задачей С, причем А имеет более высокий приоритет, чем В. Если А и В вызвали разные входы задачи С, то задача А будет выбрана первой, поскольку она имеет более высокий приоритет. Если же задачи А и В вызвали один и тот же вход задачи С, то будет выбрана та задача, которая первой вызвала С: в этом случае приоритет не играет никакой роли. Порядок обслуживания задач с одинаковым приоритетом не определен и зависит от реализации.

Характеристики

Тип файла
DJVU-файл
Размер
4,41 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6447
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее