Запарился с включением многозадачности. Если кто разбирается в ней, реализуйте пойжалусто ее в моем исходнике (Желательно с 3-мя процессами и если возможно то в аппаратной и программной реализации). Свою ОС не пишу.) Разбираюсь в архитектуре процессора.
Не знаю, как для других, но для меня твоя просьба кажется не вполне нормальной. Во-первых, ты вроде бы сказал, что пытаешься разобраться в архитектуре процессора. Мы-то уже давно разобрались. Во-вторых, понятие многозадачность весьма объемное. Как я понял, тебя прежде всего интересует переключение задач. Так вот с точки зрения процессора это одна единственная инструкция far jmp (far call) на TSS или шлюз TSS/int на шлюз TSS/iret (выход из вложенной задачи). Про "программную многозадачность" процессор ничего не знает. Все остальное, включая подготовку корректных структур для процессора, - это интеллектуальный труд человека. И наконец, для большинства будет проще представить свои исходники, чем реализовывать что-то в рамках чужих исходников.
Грац, Вас, что разобрались! Во-первых, Я не прошу реализовывать мультизадачность с переключением задач по таймеру, с планировщиком задач и т.д. Мне нужен небольшой пример, в котором определяется 2-3 задачи и допустим "Задача 1" производит переключение на оставшиеся задачи, а они в свою очередь возвращают управление первой. Если проще предоставить исходники, то можете предоставить.
Задача 1 Код (Text): next: jmp TSS2:"ZZZZ" jmp TSS3:"ZZZZ" jmp next Задача 2 равно как и 3 Код (Text): next: jmp TSS1:"ZZZZ" jmp next
Если первичной является Задача 1, то всю инициализацию следует выполнять в ее контексте перед меткой next, включая mov eax,TSS1 / ltr ax. Прерывания, естественно, во всех трех задачах должны быть запрещены, причем в первичной явно (cli).