Цитата
И где тут вытесняющая многозадачность?
Переключатель задач по таймеру прерывает процесс. Участие в этом действии со стороны процесса - не требуется.
Это определение вытесняющей многозадачности.
Хотя процесс и имеет возможность прервать сам себя... И это не противоречит вытесняющей многозадачности.
Но вытеснив процесс, мой планировщик ничего особенного не плапнирует, а просто запускает следующий по порядку процесс. Порядок определяется исключительно расположением в списке процессов.
---
Что такое setjump узнал только сейчас. (Я Си специально не изучал никогда).
Может и можно. Но по-моему быстрее скопипастить два десятка ассемблерных строк переключателя, чем разбираться в том, что именно на самом деле делают упоминаемые функции Си.
--
В том плане, что к примеру для АРМ там надо ж сохранять контекст в режиме работы процесса...Т.е. setjump должен из режима прерывания сохранить контекст другого режима (режима задачи).
Что-то сомневаюсь, что он это делает. Ибо такая функция будучи универсальной должна как-то разбираться в конкретных режима процессора... Что все сильно усложняет...
А меня, лично, сложное всегда сильно пугает.
Сообщение отредактировал DpInRock - Nov 30 2011, 02:54