DRAKON.SU https://forum.drakon.su/ |
|
Изображение прерываний https://forum.drakon.su/viewtopic.php?f=62&t=2197 |
Страница 1 из 2 |
Автор: | and007 [ Четверг, 10 Декабрь, 2009 19:14 ] | ||
Заголовок сообщения: | Изображение прерываний | ||
Любопытно целесообразно ли ввести обозначение прерываний? Например как на рисунке. Переход по красной стрелке означает, что пока не выполнится следующий после нее оператор все другие процессы алгоритма останавливаются.
|
Автор: | Илья Ермаков [ Четверг, 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: Изображение прерываний | ||
Вот примерно такая была задумка
|
Автор: | Alexey_Donskoy [ Четверг, 10 Декабрь, 2009 21:22 ] |
Заголовок сообщения: | Re: Изображение прерываний |
Никак не пойму, это алгоритм работы процессора, что ли? Алгоритмически расписанный аппаратный полинг? Смысл? Или это какой хитрющий контроллер, где Вы всё по опросу делаете? |
Автор: | and007 [ Четверг, 10 Декабрь, 2009 21:28 ] |
Заголовок сообщения: | Re: Изображение прерываний |
Да алгоритмически расписанный аппаратный... Ну не надо так надо ![]() |
Автор: | bohdant [ Пятница, 11 Декабрь, 2009 00:21 ] |
Заголовок сообщения: | Re: Изображение прерываний |
Цитата: Вот примерно такая была задумка Честно говоря пункт "опрос вектора прерываний" не ясен с позиции русского языка ![]() Для меня остается загадкой пункт "Другое прерывание"... Скажу честно из приведенной Дракон-схемы ничего, абсолютно ничего не ясно! Еще раз подумайте, что Вы хотите описать! Вопрос №2 Зачем новый элемент для прерывания? Он будет нужен только в том случае, если вы будете делать транслятор с Дракона в машинный язык. Иначе достаточно комментария. А по большому, то что Вы привели, лучше всего описывается в логических схемах. Гляньте доки по однокристалкам или другим электронным компонентам, там все прекрасно и наглядно описано. |
Автор: | Valery Solovey [ Пятница, 11 Декабрь, 2009 11:20 ] |
Заголовок сообщения: | Re: Изображение прерываний |
and007 писал(а): Переход по красной стрелке означает, что пока не выполнится следующий после нее оператор все другие процессы алгоритма останавливаются. Так на схеме ничего параллельно выполняющегося и не показывается. То есть при переходе по красной стрелке всё и так останавливается до конца работы процедуры.
|
Автор: | and007 [ Пятница, 11 Декабрь, 2009 15:49 ] |
Заголовок сообщения: | Re: Изображение прерываний |
Ну что же,предложение снимается как не удачное, поскольку вызывает больше вопросов чем ответов ![]() |
Автор: | TAU [ Пятница, 11 Декабрь, 2009 16:10 ] |
Заголовок сообщения: | Re: Изображение прерываний |
and007 писал(а): Да алгоритмически расписанный аппаратный... Ну не надо так надо ![]() Надо, надо. Я, например, с Вами согласен. +1. |
Автор: | Alexey_Donskoy [ Пятница, 11 Декабрь, 2009 18:14 ] |
Заголовок сообщения: | Re: Изображение прерываний |
TAU писал(а): Надо, надо. Зачем?!Чем не устраивают адекватные описания процессоров? Или Вы собираетесь делать свой процессор и писать микрокод к нему на Драконе? ![]() |
Автор: | 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/ |