OSDev
http://osdev.su/

Алгоритм работы планировщика
http://osdev.su/viewtopic.php?f=5&t=160
Страница 1 из 1

Автор:  leonidpr [ 20 окт 2007, 09:16 ]
Заголовок сообщения:  Алгоритм работы планировщика

Передо мной встала задача разобраться с алгоритмами планировки. Пока ни в одной достуной литературе не нашел толкового описания алгоритма планировки с динамическими приоритетами. Так же стоит вопрос об организации очередей процессов (критерии выбора их количества и назначение каждой очереди). У Таненбаума (Операционные системы: разработка и реализация) все довольно обзорно. Конечно можно смотреть исходники существующих ОС, но хотелось бы теоретическое описание. Если кто знает неплохие книги или ссылки, буду очень благодарен. Я не проттив сухого математического описания, типа сетей Петри или т. п.

Автор:  phantom-84 [ 20 окт 2007, 13:27 ]
Заголовок сообщения:  Re: Алгоритм работы планировщика

Все просто. Количество времени, предоставляемое процессу (потоку), зависит от величины его приоритета, который может меняться по ходу выполнения процесса (потока). Например, система может увеличивать приоритет, когда процесс становится переднеплановым, и уменьшать, когда он переходит на задний план. Количество очередей зависит от реализации. Однако практически всегда для ждущих процессов заводится отдельная очередь в добавок к очереди готовых процессов. Можно заводить очереди отдельно для каждого процессора, для ожидания доступа к отдельно взятому ресурсу, по величине приоритета и т.п. Я, например, очередь готовых процессов разделил на очередь процессов реального времени и обычную очередь.

Автор:  phantom-84 [ 20 окт 2007, 14:01 ]
Заголовок сообщения:  Re: Алгоритм работы планировщика

Удалено.

Автор:  phantom-84 [ 20 окт 2007, 14:02 ]
Заголовок сообщения:  Re: Алгоритм работы планировщика

Что касается алгоритма планирования, то он заключается в следующем. В обработчике по таймеру или в какой-либо системной функции выполняется переключение между готовыми к выполнению процессами. В состояние ожидания процесс переходит по собственной инициативе, обращаясь к соответствующим функциям ядра (wait, waitevent и т.п.), а выходит из него при наступлении некоторого события или событий, когда обработчик этого события также обращается к определенным функциям ядра (signal, setevent и т.п.), сообщая либо тип события, либо идентификатор процесса, ожидающего событие, либо и то и другое сразу.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/