Операционные системы. Процессы и потоки. Илюшкин Б.И. - 48 стр.

UptoLike

Составители: 

вершен ввод/вывод, завершен период пребывания в неактивном ре-
жиме и т.д.). В течение периода своего существования поток может
неоднократно переходить из состояния исполняемый в состояние не-
исполняемый.
Пассивный - поток становится пассивным, когда он завершается.
Обычно поток становится пассивным, когда завершается его метод
run(). Кроме того, поток может стать пассивным при вызове его мето-
дов
stop() или destroy(). Пассивный поток является таковым постоян-
но, воскресить его невозможно.
Диспетчеризация или планирование (scheduling) потоков пред-
ставляет собой механизм, используемый для определения способа
выделения процессорного времени для исполняемых потоков. Для
виртуальной машины Java исполняемый поток с наивысшим приори-
тетом всегда выбирается для выполнения. Механизм реализации по-
токов Java является вытесняющим (preemptive), т.е. диспетчер приос-
танавливает поток, если появится поток с более высоким приорите-
том. Как выполняются потоки с одинаковым приоритетом, в специ-
фикации Java не определено. Порядок их выполнения определяется
операционной системой. В реализации Java на Windows
95/98/NT/2000 используется базовый диспетчер потоков с выделени-
ем квантов времени (выделяется промежуток времени для каждого
потока). В реализации Java на Solaris используется диспетчер пото-
ков без выделения квантов времени. Поэтому при реализации Java
приложений на конкретной платформе необходимо учитывать метод
организации многозадачности в операционной системе. В случае
диспетчера с выделением квантов времени, контекстное переключе-
ние будет выполняться даже при отсутствии добровольной передачи
управления с использованием метода
yield() или блокировки вво-
да-вывода. Соответственно поток с более высоким приоритетом ис-
пользует больше процессорного времени. В случае диспетчера без
48