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... * * *
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября