Реализация многозадачности на однопроцессорных компьютерах
Кооперативная многозадачность
В предыдущей главе мы упоминали о возможности реализовать параллельное (или, точнее, псевдопараллельное) исполнение нескольких потоков управления на одном процессоре. Понятно, что такая возможность дает значительные преимущества.Вытесняющая многозадачность
Все вышесказанное подводит нас к идее вызывать ThreadSwitch не из пользовательской программы, а каким-то иным способом. Например, поручить вызов такой функции прерыванию от системного таймера. Тогда мы получим следующую схему. | Каждой нити выделяется квант времени.Планировщики с приоритетами
В многозадачных системах часто возникает вопрос: в каком порядке исполнять готовые процессы? Как правило, бывает очевидно, что одни из процессов важнее других. Например, в системе может существовать три процесса, имеющих готовые к исполнению нити: процесс – сетевой файловый сервер, интерактивный процесс – текстовый редактор и процесс, занимающийся плановым резервным копированием с диска на ленту.Монолитные системы и системы с микроядром
Не бывает монолитных программ, бывают плохо структурированные. | Реплика с семинара по ООП | Ходовая часть танка работает в экстремальных условиях и с трудом поддается модернизации. | Реплика в эхоконференции RU.WEAPON сети ФИДО | Исполняя системный вызов, пользовательская программа передает управление ядру.