Те диспетчеры, которые bank16, bankfixed - они занимаются только выделением свободной страницы создаваемому процессу. И даже не самой страницы, а её номера. Тупо отслеживают, что занято, а что нет, больше ничего не делают.
А код, переключающий задачи (=переключающий страницы) платформно-специфичен и вынесены в ассемблерные файлы.
Это, по-сути, пять функций:
switchout - выполняется после того, как у процесса отбирается процессорное время.
swithin - выполняется перед тем как процессу выдается процессорное время
map_kernel - вернуть маппинг ядра
map_process - подключить страницы, занятые указанным процессом
do_fork - создать копию текущего процесса
От их реализации и зависит всё поведение системы.
---------- Post added at 17:02 ---------- Previous post was at 16:59 ----------
Ну тогда дело за малым.





Ответить с цитированием