DRAKON.SU
https://forum.drakon.su/

Изображение прерываний
https://forum.drakon.su/viewtopic.php?f=62&t=2197
Страница 1 из 2

Автор:  and007 [ Четверг, 10 Декабрь, 2009 19:14 ]
Заголовок сообщения:  Изображение прерываний

Любопытно целесообразно ли ввести обозначение прерываний?
Например как на рисунке.
Переход по красной стрелке означает, что пока не выполнится следующий после нее оператор все другие процессы алгоритма останавливаются.

Вложения:
interrupt.png
interrupt.png [ 9.85 КБ | Просмотров: 24912 ]

Автор:  Илья Ермаков [ Четверг, 10 Декабрь, 2009 19:22 ]
Заголовок сообщения:  Re: Изображение прерываний

Почему не использовать просто комментарий...

Автор:  bohdant [ Четверг, 10 Декабрь, 2009 19:29 ]
Заголовок сообщения:  Re: Изображение прерываний

Мне кажется, что приведенный пример неудачен, т.к. он немного нереален.
Прерывания реализуются аппаратно... приведен какой то особый случай?

Автор:  and007 [ Четверг, 10 Декабрь, 2009 19:41 ]
Заголовок сообщения:  Re: Изображение прерываний

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

Автор:  Alexey_Donskoy [ Четверг, 10 Декабрь, 2009 19:58 ]
Заголовок сообщения:  Re: Изображение прерываний

Блин, да сколько ж можно опять! Снова вокруг прерываний...

ЗАЧЕМ?! ВАМ?! ИХ?! РИСОВАТЬ НА ДРАКОНЕ?!

Обработчик АППАРАТНЫХ прерываний интересен постольку, поскольку он изменяет глобальные даннные (взводит флаги, кладёт принятый байт в буфер и т.п.). К основному алгоритму он не имеет никакого отношения (то есть его там как-либо изображать бессмысленно)!

Аппаратное прерывание может возникнуть после любой ПРОЦЕССОРНОЙ ИНСТРУКЦИИ, что опять-таки не имеет никакого отношения к Дракон-схеме основного алгоритма!

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

...Вторая картинка не имеет отношения к реальности...

Автор:  and007 [ Четверг, 10 Декабрь, 2009 20:31 ]
Заголовок сообщения:  Re: Изображение прерываний

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

Например, у нас есть микроконтроллер с 6 аппаратными прерываниями. 1) Переполнение таймера 2) Изменение состояния любого вывода 3) Конец измерения АЦП и т.д.
Тогда если на второй картинке изобразить условия прерываний сверху вниз на шампуре, то получим точное графическое описание действий микроконтроллера при вызове нескольких прерываний в соответствии с их приоритетом

Автор:  Alexey_Donskoy [ Четверг, 10 Декабрь, 2009 20:37 ]
Заголовок сообщения:  Re: Изображение прерываний

Ну так Ваши картинки ничего из перечисленного не показывают! :)

Что значит "изобразить условия прерываний"? Что за условия такие вообще?

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

Автор:  Илья Ермаков [ Четверг, 10 Декабрь, 2009 20:59 ]
Заголовок сообщения:  Re: Изображение прерываний

Естественно. Межпроцессные события - это ввод-вывод с точки зрения каждого алгоритма. Неких сообщений. Условно говоря, сообщений. Значки "ввод" и "вывод" удобны для отображения любого типа событий, принимаемых снаружи процессом и инициируемых им наружу.

Автор:  and007 [ Четверг, 10 Декабрь, 2009 21:09 ]
Заголовок сообщения:  Re: Изображение прерываний

Вот примерно такая была задумка

Вложения:
1.png
1.png [ 11.35 КБ | Просмотров: 24911 ]

Автор:  Alexey_Donskoy [ Четверг, 10 Декабрь, 2009 21:22 ]
Заголовок сообщения:  Re: Изображение прерываний

Никак не пойму, это алгоритм работы процессора, что ли? Алгоритмически расписанный аппаратный полинг? Смысл? Или это какой хитрющий контроллер, где Вы всё по опросу делаете?

Автор:  and007 [ Четверг, 10 Декабрь, 2009 21:28 ]
Заголовок сообщения:  Re: Изображение прерываний

Да алгоритмически расписанный аппаратный... Ну не надо так надо :)

Автор:  bohdant [ Пятница, 11 Декабрь, 2009 00:21 ]
Заголовок сообщения:  Re: Изображение прерываний

Цитата:
Вот примерно такая была задумка

Честно говоря пункт "опрос вектора прерываний" не ясен с позиции русского языка :shock: В других пунктах тоже есть вопросы именно к языковой части.
Для меня остается загадкой пункт "Другое прерывание"...
Скажу честно из приведенной Дракон-схемы ничего, абсолютно ничего не ясно!
Еще раз подумайте, что Вы хотите описать!

Вопрос №2 Зачем новый элемент для прерывания? Он будет нужен только в том случае, если вы будете делать транслятор с Дракона в машинный язык. Иначе достаточно комментария.

А по большому, то что Вы привели, лучше всего описывается в логических схемах. Гляньте доки по однокристалкам или другим электронным компонентам, там все прекрасно и наглядно описано.

Автор:  Valery Solovey [ Пятница, 11 Декабрь, 2009 11:20 ]
Заголовок сообщения:  Re: Изображение прерываний

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

Автор:  and007 [ Пятница, 11 Декабрь, 2009 15:49 ]
Заголовок сообщения:  Re: Изображение прерываний

Ну что же,предложение снимается как не удачное, поскольку вызывает больше вопросов чем ответов :D

Автор:  TAU [ Пятница, 11 Декабрь, 2009 16:10 ]
Заголовок сообщения:  Re: Изображение прерываний

and007 писал(а):
Да алгоритмически расписанный аппаратный... Ну не надо так надо :)

Надо, надо. Я, например, с Вами согласен.
+1.

Автор:  Alexey_Donskoy [ Пятница, 11 Декабрь, 2009 18:14 ]
Заголовок сообщения:  Re: Изображение прерываний

TAU писал(а):
Надо, надо.
Зачем?!

Чем не устраивают адекватные описания процессоров?

Или Вы собираетесь делать свой процессор и писать микрокод к нему на Драконе? :D

Автор:  Geratewart [ Пятница, 18 Июнь, 2010 15:54 ]
Заголовок сообщения:  Re: Изображение прерываний

на защите диссертации как раз критиковали одного парня за то что на блок-схеме не изображены прерывания, а прога у него для микроконтроллера :)

Ну блин. профессура требует - надо выполнять. Но к сожалению еще и вдобавок не на драконе а на убогих гостовских блок-схемах, для рисования которых нет нормального софта, и приходится использовать MS Visio или autocad и т.п.

Автор:  Wlad [ Пятница, 18 Июнь, 2010 19:54 ]
Заголовок сообщения:  Re: Изображение прерываний

and007 писал(а):
Любопытно целесообразно ли ввести обозначение прерываний?
Например как на рисунке.

Крайне неудачный пример. Прерывания возникают в произвольный момент времени. Как это отображается на рисунке?
Предложения со смыслом проверки на наличие прерывания - бред. В каком месте проверка происходит? На каком уровне представления алгоритм(а,ов)?

Почитайте книжки по организации ядер ОС-ей. Практически во всех из них, контексты обслуживания прерываний ОТДЕЛЕНЫ от контекстов ядра и пользовательских процессов. Это ж - неспроста! :)
Практически прерывание (по смыслу) - зацикленный отдельный процесс, очередная итерация выполнения которого активизируется с некоторой фиксированной точки внешним событием.
Это как-то имеет отражение в Драконе? И Вообще - многозадачность? многопотоковость?

ЗЫ Практически и в микроконтроллерах - тот же подход. Хотя, там и нет явной "зацикленности" непосредственных обработчиков прерываний.
Очень интересно были сделаны обработчики прерываний в Модуле-2.

Автор:  Рэйлвэй Каген [ Суббота, 19 Июнь, 2010 08:19 ]
Заголовок сообщения:  Re: Изображение прерываний

Wlad2 писал(а):
..Это как-то имеет отражение в Драконе? И Вообще - многозадачность? многопотоковость?
Ну, вариантов не очень много:

Автор:  Alexey_Donskoy [ Суббота, 19 Июнь, 2010 09:59 ]
Заголовок сообщения:  Re: Изображение прерываний

Wlad2 писал(а):
Практически прерывание (по смыслу) - зацикленный отдельный процесс, очередная итерация выполнения которого активизируется с некоторой фиксированной точки внешним событием.
Чего это он вдруг зацикленный?
Вообще-то, по определению он разовый, имеет начало и конец.

Некоторые микроконтроллеры позволяют сохранять контекст, тогда да, процесс МОЖНО представлять как зацикленный. Но не факт, что это целесообразно.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/