Составители:
активизации данного потока, он переходит в состояние выполнения и
находится в нем до тех пор, пока либо он сам освободит процессор (перейдя
в состояние ожидания какого-нибудь события), либо будет принудительно
«вытеснен» из процессора (например, вследствие исчерпания отведенного
данному потоку кванта процессорного времени). В последнем случае поток
возвращается в состояние готовности. В это же состояние поток переходит из
состояния ожидания, после того как ожидаемое событие произойдет.
2.3 Алгоритмы планирования процессов
2.3.1 Вытесняющие и невытесняющие алгоритмы планирования
С самых общих позиций множество алгоритмов планирования можно
разделить на два класса:
1.
Вытесняющие (preemptive) алгоритмы — это такие способы
планирования потоков, в которых решение о переключении
процессора с выполнения одного потока на выполнение другого
потока принимается операционной системой, а не активной
задачей. При вытесняющем мультипрограммировании функции
планирования потоков целиком сосредоточены в операционной
системе и программист пишет свое приложение, не заботясь о том,
что оно будет выполняться одновременно с другими задачами. При
этом операционная система выполняет следующие функции:
определяет момент снятия с выполнения активного потока,
запоминает его контекст, выбирает из очереди готовых потоков
следующий, запускает новый поток на выполнение, загружая его
контекст.
2.
Невытесняющие (non-preemptive) алгоритмы основаны на том,
что активному потоку позволяется выполняться, пока он сам, по
собственной инициативе, не отдаст управление операционной
системе для того, чтобы та выбрала из очереди другой готовый к
выполнению поток. При невытесняющем мультипрограммировании
механизм планирования распределен между операционной системой
и прикладными программами. Прикладная программа, получив
управление от операционной системы, сама определяет момент
завершения очередного цикла своего выполнения и только затем
передает управление ОС с помощью какого-либо системного
вызова. ОС формирует очереди потоков и выбирает в соответствии с
некоторым правилом (например, с учетом приоритетов) следующий
поток на выполнение. Такой механизм создает проблемы как для
пользователей, так и для разработчиков приложений.
35
активизации данного потока, он переходит в состояние выполнения и
находится в нем до тех пор, пока либо он сам освободит процессор (перейдя
в состояние ожидания какого-нибудь события), либо будет принудительно
«вытеснен» из процессора (например, вследствие исчерпания отведенного
данному потоку кванта процессорного времени). В последнем случае поток
возвращается в состояние готовности. В это же состояние поток переходит из
состояния ожидания, после того как ожидаемое событие произойдет.
2.3 Алгоритмы планирования процессов
2.3.1 Вытесняющие и невытесняющие алгоритмы планирования
С самых общих позиций множество алгоритмов планирования можно
разделить на два класса:
1. Вытесняющие (preemptive) алгоритмы — это такие способы
планирования потоков, в которых решение о переключении
процессора с выполнения одного потока на выполнение другого
потока принимается операционной системой, а не активной
задачей. При вытесняющем мультипрограммировании функции
планирования потоков целиком сосредоточены в операционной
системе и программист пишет свое приложение, не заботясь о том,
что оно будет выполняться одновременно с другими задачами. При
этом операционная система выполняет следующие функции:
определяет момент снятия с выполнения активного потока,
запоминает его контекст, выбирает из очереди готовых потоков
следующий, запускает новый поток на выполнение, загружая его
контекст.
2. Невытесняющие (non-preemptive) алгоритмы основаны на том,
что активному потоку позволяется выполняться, пока он сам, по
собственной инициативе, не отдаст управление операционной
системе для того, чтобы та выбрала из очереди другой готовый к
выполнению поток. При невытесняющем мультипрограммировании
механизм планирования распределен между операционной системой
и прикладными программами. Прикладная программа, получив
управление от операционной системы, сама определяет момент
завершения очередного цикла своего выполнения и только затем
передает управление ОС с помощью какого-либо системного
вызова. ОС формирует очереди потоков и выбирает в соответствии с
некоторым правилом (например, с учетом приоритетов) следующий
поток на выполнение. Такой механизм создает проблемы как для
пользователей, так и для разработчиков приложений.
35
Страницы
- « первая
- ‹ предыдущая
- …
- 33
- 34
- 35
- 36
- 37
- …
- следующая ›
- последняя »
