зайдите на lab29a... возьмите лучший образец и "думайте"
это я все просматрела. На счет доса и много задачности.
Я в замешательстве. Есть разница между графическим и текстовым режимом?
а то вот тут я наблюдаю много задачность Manuet OS v0.78.

под Fat 12 так е на флопике. Имеет возможность запускать файлы и работать с ними не зависимо от адресного пространства. И там и у меня система 32-х битная.
Со всей симпатией за помощь в развитии моих знаний Delimiter но как это понимать?
А Dos и есть и был однозадачный. Там и ядра то не было.... и у тебя не будет!
Как раз таки через прерывание эти действия и производяться, вот только я пока не могу понять как.
PS: DOS -дисковая операционная система, не все они однозадачные:-)
Многозадачная, многопользовательская операционная система DOS-Line
В реальном режиме мы имеем 640Kb памяти - 10 сегментов по 64Kb. В первый сегмент лучше не соваться - эта область BIOS. Для простоты предположим, что каждая задача нашей ОС - это COM файл MS-DOS.
COM-программы содержат единственный сегмент (или, во всяком случае, не содержат явных ссылок на другие сегменты). Образ COM-файла считывается с диска и помещается в память, начиная с PSP:0100. Притом COM-программа может использовать множественные сегменты, но она должна сама вычислять сегментные адреса, используя PSP как базу.
В MS-DOS после загрузки двоичного образа:
CS, DS, ES и SS указывают на PSP
SP указывает на конец сегмента PSP (обычно 0fffeH, но может быть и меньше, если полный 64K сегмент недоступен). Слово по смещению 06H в PSP указывает, какая часть программного сегмента доступна.
Вся память системы за программным сегментом распределена программе.
Слово 00H помещено (PUSH) в стек.
IP содержит 100H (первый байт модуля) в результате команды JMP PSP:100
задача при загрузке файла проделать те-же самые действия, что-бы программы ни коим образом не догадывалась об отстутствии ее родной ОС.
Предположим, что каждая COM-программа занимает в памяти один сегмент.
18.2 раза в секунду приходит аппаратное прерывание, и процессор отвлекается на выполнение некоторой процедуры - восьмого прерывания (int 08h). При этом он сохраняет в стеке регистр флагов (PUSHF), и регистры указывающие на текущую команду (CS:IP) (PUSH CS, PUSH IP). Всего 6 байт. После окончания аппаратного прерывания эти регистры восстанавливаются и основная программа продолжает свое выполнение.
Задача, состоит в том, чтобы во время выполнения прервания подменять стек таким образом, что-бы после восстановления регистров выполнялась другая программа, находящаяяся в памяти.
При наилучшем раскладе возможна загрузка восьми задач - 640Kb/64Kb=10, то есть всего имеем десять сегментов - один под переменные DOS, и один под ядро, вот и остается только восемь.