Важная информация

User Tag List

Показано с 1 по 10 из 30

Тема: Вытесняющая многозадачность (диспетчер mzkernel)

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    220
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    Cool Вытесняющая многозадачность (диспетчер mzkernel)

    Здравствуйте, друзья.

    Предлагаю вашему вниманию диспетчер для организации на ZX Spectrum вытесняющей многозадачной среды.

    Описание его архитектуры и работы - на Хабре.

    Текущая версия исходника - на GitHub

    На данный момент реализация минимальная. Фиксированное количество потоков (threads), фиксированный приоритет потоков, из объектов ожидания присутствует только два типа Events. Этого уже достаточно для того, чтобы можно было говорить о многозадачности, но мало для настоящей ОС. Можно использовать только в рамках отдельной прикладной программы, где заранее известно, сколько надо потоков.

    Я старался оптимизировать код; если был выбор между размером кода и быстродействием - выбирал быстродействие. Одна важная возможность оптимизации пока не использована. В диспетчере широко применяется индексная адресация, а она у Z80 жутко тормозная. В перспективе можно будет от нее отказаться, но для этого надо, чтобы устоялись структуры данных. Иначе любое изменение в них приведет к необходимости изменений большого количества кода.

    Приглашаю к обсуждению и внесению предложений по усовершенствованию, оптимизации. Сам планирую на досуге вносить усовершенствования, в первую очередь, следующего плана:
    1) динамический приоритет потоков
    2) объекты ожидания типа Mutex
    3) пуск новых и завершение старых потоков реализовано 21.07.2014

    Все это не должно привести к сильному усложнению и замедлению работы. В дальнейшем, в зависимости от их нужности и затратности, можно будет добавлять и другие возможности современных многозадачных диспетчеров.

    Обновления:
    21.07.2014 - небольшие оптимизации, добавлена возможность пуска новых и завершения старых потоков
    Последний раз редактировалось Barmaley_m; 22.07.2014 в 04:43. Причина: обновление версии от 21.07.2014

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Диспетчер памяти в KAY-1024...
    от SoftFelix в разделе KAY
    Ответов: 16
    Последнее: 30.08.2010, 12:07
  2. диспетчер ROM памяти
    от p@lex в разделе Память
    Ответов: 5
    Последнее: 29.03.2010, 22:58
  3. Многозадачность
    от captain cobalt в разделе Оси
    Ответов: 23
    Последнее: 23.04.2005, 19:04

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •