|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.02.2015, 14:28 | #41 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
13.02.2015, 15:22 | #42 | |
Пользователь
Регистрация: 09.02.2015
Сообщений: 31
|
Цитата:
С сообщениями всё гораздо проще - посылаете сообщение о том, какие сообщениея желаете слушать, и слушаете (и отвечате на) сообщения. Желаете расширить понятие сообщения? Только через разработку протокола. Но я опасаюсь что полная и дословная реализация спецификации L4X2 полностью бы покрыла все необходимые варианты расширений. А для некоторых задач такая реализация оказалась бы избыточной. Т.е. если хотите что-нибудь расширить, то разрабатываете протокол и описываете в этом протоколе формат взаимодействия двух субъектов - клиента и сервера. Таким способом можно описать любое взаимодействие. Наша команда готовит инструменты, позволяющие реализовать всё вышесказанное. |
|
19.02.2015, 10:25 | #43 |
Участник клуба
Регистрация: 29.09.2008
Сообщений: 1,234
|
Я думаю она больше подходит для статьи Хабра, там много образованных и повернутых на таких вопросах. Найдете много решении в коментах
|
19.02.2015, 11:55 | #44 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Все микросхемы, черти делают, а программы - гномики пишут. Это я к тому, что и моя жена так думает.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 19.02.2015 в 11:59. |
|
19.02.2015, 14:57 | #45 | ||||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
P.S. Поясните момент: Цитата:
Последний раз редактировалось p51x; 19.02.2015 в 15:02. |
||||||
19.02.2015, 15:48 | #46 | |||
Пользователь
Регистрация: 09.02.2015
Сообщений: 31
|
Цитата:
Со временем входа в обработчик несколько сложнее. Минимальное время входа в обработчик возможно только при двух условиях - если обработчик готов его обработать (ожидает сообщение с помощью инструкции RECV) и если в момент прихода прерывания не выполняется задач с более высоким приоритетом. При выполнении этих условий вход в обработчик произойдёт практически мгновенно - я надеюсь уложиться в несколько тактов. Цитата:
Цитата:
/* превысил размер сообщения. продолжение в следующем сообщении */ Последний раз редактировалось almandrykin; 19.02.2015 в 15:51. |
|||
19.02.2015, 15:48 | #47 | |
Пользователь
Регистрация: 09.02.2015
Сообщений: 31
|
Цитата:
Что касается алгоритма планирования, то он весьма универсален - приоритеты задач описываются древовидной структурой. В корне дерева помещен планировщик, владеющий 100% процентами процессорного времени. Своё время он делит между дочерними подзадачми, отдавая каждой запрошенный квант времени. Если задача находится в состоянии ожидания, то по образу и подобию планировщика она отдёт своё время своим подзадачам (поддеревьям в дереве планировния). Если у задача ожидает и все её подзадачи тоже ожидают, то время задачи отдаётся родительской подзадаче, вплоть до планировщика. Если все задачи находятся в состоянии ожиданния, то процессор переходит в состояние "сна" (режима низкого энергопотребления) из которого его могут вывести внутренний таймер планировщика или внешнее прерывание. Хочу отметить, что из дерева планирования можно построить разные алгоритмы планирования - в граничных условиях дерево может вырождаться в список задач с равными приоритетами или иерархический список. Ещё хочу подчеркнуть что дерево приоритетов обязано быть независимо от порядка старта задач - приоритет задачи (прежде всего позиция задачи в дереве планировния) должен выбираться исходя из класса задачи и запрошенного приоритета - например, драйвер, которому нужна realtime реакция на прерывния, должен быть иметь парентом планировщик, а какая-нибудь фоновая задача, работающая во время простоя, должна быть где-то внизу дерева планирования. Ух, я не уверен что смог максимально понятно выразить свои мысли. Скажу лишь что вижу реализацию вышесказанного через сообщение планировщику - в момент инициализации задача посылает сообщение планировщику, планировщик на основе запрашиваемого приоритета принимает решение о позиции в дереве планировния и кванте времени, а затем ответным сообщение передаёт управление обратно задаче. Вот как-то так. |
|
19.02.2015, 16:12 | #48 | |||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
|||||
19.02.2015, 18:33 | #49 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Уже пятая страница, а новой архитектуры так и не твидно. Может её и вовсе нет, а ТС нас за-нос водит?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
19.02.2015, 21:12 | #50 | |||||
Пользователь
Регистрация: 09.02.2015
Сообщений: 31
|
Цитата:
Говоря, что можно обойтись без таймеров, я имел в виду программные таймеры с вызовом через callback. Такие таймеры красиво заменяются таймаутом сообщений. Цитата:
Цитата:
Что касается контекста, то тут не всё так просто. Если залача переключается на другую в том же самом адресном пространстве, то контекст состоит из регистров общего назначения, флагов и счётчика команд. Если под переключением контекста понимается переключение на задачу, находящуюся в другом адресном пространстве, то дополнительно надо обновить таблицу виртуальных страниц. Если говорить о предлагаемом микропроцессоре, то в настоящий момент он не поддерживает страничную виртуальную память, поэтому для переключение контекста достаточно обновить РОНы, флаги и счётчик команд. О мгновенном переключении задач. Для микроконтроллера с ограниченным количеством задач переключение будет действительно мгновенным - нас следующем такте после записи значения во внутренний спецрегистр. Для процессора общего назначения придётся вводить средства для вытеснения состояния задач во внешнюю оперативную память. В этом случае "мгновенное" переключение задач будет возможно только для "закешировнных" задач и потребуется некоторое время для сохранения и загрузки контекста во внешнюю память. Цитата:
Цитата:
|
|||||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разработка программного обеспечения, с кем обсудить? | BioWat | Общие вопросы по программированию, компьютерный форум | 6 | 06.09.2013 01:05 |
Как узнать архитектуру процессора на неттопе? | qewertyns | Компьютерное железо | 8 | 16.04.2013 23:22 |
Желающим обсудить идею создания он-лайн игры | ringu2 | Фриланс | 0 | 03.01.2011 17:06 |
Какую архитектуру выбрать? | k376 | Помощь студентам | 2 | 23.04.2008 23:57 |