[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Не могу сказать, что первый блин комом, но и удачным моё решение тоже не назовешь. Я теори не знаю (впрочем, этим хвалится не стоит), писал как понимал. Вытеснения задач нет, просто диспетчер с раздачей процессорного времени согласно приоритету и статусу задачи ну и всякие флажки и "зашаренные" области памяти, чтобы задачи могли друг другу данные пересылать и чтобы диспетчер мог их контролировать.
В зависимости от приоритета задачи устанавливался временной бюджет для её выполнения. Диспетчер сидел на 8-м прерывании (это тоже плохо, по хорошему надо бы NMI для этого использовать, иначе любой cli вешает всё). Порты - общие ресурсы, т.е задача не могла (точнее не имела права) напрямую получить управление портом, только через запрос к диспетчеру. Сильно не хватало механизма защиты памяти :( Любая задача может сделать крэш операционке. С чтением/записью файлов не пытался играть (если я правильно помню вы интересовались этим вопросом).
Когда-то давно видел такую заплатку к ДОСу. Правда за деньги.
Демострушка писала на диск, форматировала флопик, печатала на принтер , часики рисовала ну и считала что-то одновременно. Если надо, могу попытаться найти концы этого дела.
PS. Своё мыло отправил.
E-mail: info@telesys.ru