|
ZX Time
#04
17 ноября 2001 |
|
Дискуссия - "Multitask. Реалии и мифы..."

Дискуссия. Multitask. Реалии и мифы...
────────────────────────────────────────
KilleRam
- - -
От редактора: Знаю какую бурю негодо-
вания вызовет нижеследующий материал.
Однако, мы тем самым соблюдаем один из
принципов нашей газеты - то бишь, рас-
сматриваем и публикуем любые, даже абсо-
лютно полярные, а иногда где-то противо-
речивые и в какой-то мере неверные мне-
ния... Для поддержания равновесия... И
это совсем не значит, что я или кто-либо
другой согласен с автором материала...
- - -
Fuck сижу я сейчас за своей глюкавой
клавой и вот уже в какой раз пытаюсь на-
писать статью о Многозадачности в ответ
на статьи DWT.
Сука, какой-то ё!#$$й вирус захавал
мою дискету, статью и исходники (хорошо,
что я их вытащил RDM'ом, а то
ALASM'овский (ALASM Rulezz forever)
find'ер не очень их ищет).
Итак многозадачность. Многие думают,
что данный девайс не может быть реализо-
ван на SPECCY в силу того, что его ре-
сурсы и скорость проца не достаточно
развиты. Суки, п!@#$!$е на свой ПыЦы и
д@#$%&е на многозадачность LINUX'A.
Короче, хватит маты гнуть, к делу. Хо-
чу сказать, что алгоритм многозадачности
полностью реализован на ALASM'e, но не
оптимизирован. Однако, при этом показы-
вает достаточно высокие показатели ско-
рости выполнения прог, прицепленных к
нему (3 задачи). При этом коэффициент
торможеня в среднем составляет где-то
1.1-1.17, но я знаю как его уменьшить.
Ну всё, перейдем к описанию алгорима
многозадачности. Суть его заключается во
"влаживании" прерываний друг в друга.
Примерно так:
1. Идёт выполнение основной проги на
EI (с этим проблемы, но о них позже);
2. Пришли прерывания - лезем на прогу
обработки; та сохраняет полностью си-
туацию до прерывания, меняет вектор - и
на другую задачу.
3. Исполняем вторую задачу.
4. Пришли прерывания и всё аналогично
пункту 2. Так до последней задачи после
которой - на основной обработчик, а из
него в основную прогу.
Ограничения на использование этого ал-
горитма следующие:
1. Память не ниже 512Кб (а где же еще
держать задачи);
2. Стабильная шина, а то получится,
что таблицы векторов будут занимать
больше, чем задачи.
3. Стиль программирования тоже будет
особый. В частности, проги должны будут
исполняться с любого адреса;
А вот то, что я хочу реализовать - так
это диспетчер задач, который будет
распределять задачи по приоритетам
(очень хитро: по длине и времени испол-
нения за INT), разбивать память на блоки
(скорее всего по 2Кб) и следить за гра-
ницами задач и за процессом обмена ин-
формацией между задачами и многое другое
до мелочей. Скорее всего именно он и бу-
дет основной задачей. Вот и всё, что я
хочу сказать о многозадачности и её ре-
лизации на SPECCY...
* * *
Другие статьи номера:
Похожие статьи:
В этот день... 29 октября