Принцип действия многозадачных систем реального времени
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
ДМ 22 января 2004 г. 00:04
|
|
|
|
Кто расскажет или даст ссылку про то, как работает, к примеру, Windows. Как проивзодится передача управления от одного приложения к другому, в том смысле, что любая многозадачная система на одном процессоре – это псевдомногозадачная система, так как в течении некоторого промежутка времени процессор занят выполнением только одной задачи. К примеру, если на Delphi делаешь Delay(x), то это значит, что процессор время X не передает управление этому приложению, или это не так? Как производится сохранение контекста? Сохранить регистры дело не хитрое, а вот как дело происходит со стеком? К примеру, одно приложение вызвало процедуру, и тут же у него отобрали управление, и передали другому процессу, который собирался возвращаться из процедуры, то из стека будет извлечен чужой адрес возврата. Или стеков делают по числу процессов?
Сейчас колдую над своей операционкой для AVR. Не претендую на то, что сделаю самую лучшую, однако те, что мне попадались – совсем не то, что я хотел бы получить. Нигде не видел возможности «замораживать» или прерывать процесс. Может быть, у кого-нибудь, есть соображения на этот счет.
Спасибо!
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Ответ: — иа (22.01.2004 14:51, пустое, ссылка)
- Ответ: небольшой примерчик (как сохранять стек возвратов) — Pol-SDG (22.01.2004 14:19, 2216 байт)
- Ответ: виноват, проглядел слово "реального". В ОСРВ есть системный таймер, на который вешаются критичные задачи. Т.е. время реакции на событие предсказуемое. — vi (22.01.2004 13:42, пустое)
- Указатель стека такой-же регитстр как и любой другой (скажем, обычно) — Гы (22.01.2004 13:30, 83 байт)
- Кстати это уже обсуждалось >>>>> — DSN (22.01.2004 13:02, пустое, ссылка)
- А кто определяет какой процесс может быть заморожен, на сколько, по какому критерию? — Codavr (22.01.2004 12:38, пустое)
- многозадачность в Windows подкреплена аппаратными средствами процессоров, начиная с Интел 386. Так что твои вопросы про стеки в винде по крайней мере смешны. — bialix (22.01.2004 11:22, пустое)
- Не сочти за критику, но + — Vladimir Ljaschko (22.01.2004 11:00, 252 байт)
- WIndows это псевдо многозадачная ОС (отстой) хотя и приходится на ней работать. — DSN (22.01.2004 10:56, 823 байт)
- Хотя бы наберите в поисковике "кооперативная многозадачность" и "вытесняющая многозадачность". — Леонид Иванович (22.01.2004 01:04, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru