Операционные системы. Часть 1. Основы управления ресурсами. Рощин А.В. - 93 стр.

UptoLike

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

93
Delay – функция аналогична предыдущей, но задержка дается в
миллисекундах;
ThreadSwitchLowPriority – функция отдачи управления, отличается от
ThreadSwitch тем, что поток просит поместить его в очередь готовых
к выполнению, но низкоприоритетных потоков.
Планировщик NetWare использует несколько очередей готовых потоков
(рисунок 3.3). Только что созданный поток попадает в конец очереди RunList,
которая содержит готовые к выполнению потоки. После отказа от процессора
поток попадает в ту или иную очередь в зависимости от того, какой из
системных вызовов был использован при передаче управления. Поток
поступает в конец очереди RunList при вызове ThreadSwitch, в конец очереди
DelayedWorkToDoList при вызовах ThreadSwitchWithDelay или Delay или же в
конец очереди LowPriorityRunList при вызове ThreadSwitchLowPriority.
После того как выполнявшийся процессором поток завершит свой
очередной цикл выполнения, отдав управление с помощью одного из вызовов
передачи управления (или вызова ожидания на семафоре), планировщик
выбирает для выполнения стоящий первым в очереди RunList поток и
запускает его.
Потоки, находящиеся в очереди DelayedWorkToDoList, после завершения
условия ожидания перемещаются в конец очереди RunList.
Потоки, находящиеся в очереди LowPriorityRunList, запускаются на
выполнение только в том случае, если очередь RunList пуста. Обычно в эту
очередь назначаются потоки, выполняющие несрочную фоновую работу.
Очередь WorkToDoList является в системе самой приоритетной. В эту
очередь попадают так называемые рабочие потоки. В NetWare, как и в
некоторых других ОС, вместо создания нового потока для выполнения
определенной работы может быть использован уже существующий
системный поток. Пул рабочих потоков создается при старте системы для
                                     93



      − Delay – функция аналогична предыдущей, но задержка дается в
         миллисекундах;
      − ThreadSwitchLowPriority – функция отдачи управления, отличается от
         ThreadSwitch тем, что поток просит поместить его в очередь готовых
         к выполнению, но низкоприоритетных потоков.
      Планировщик NetWare использует несколько очередей готовых потоков
(рисунок 3.3). Только что созданный поток попадает в конец очереди RunList,
которая содержит готовые к выполнению потоки. После отказа от процессора
поток попадает в ту или иную очередь в зависимости от того, какой из
системных вызовов был использован при передаче управления. Поток
поступает в конец очереди RunList при вызове ThreadSwitch, в конец очереди
DelayedWorkToDoList при вызовах ThreadSwitchWithDelay или Delay или же в
конец очереди LowPriorityRunList при вызове ThreadSwitchLowPriority.
      После того как выполнявшийся процессором поток завершит свой
очередной цикл выполнения, отдав управление с помощью одного из вызовов
передачи управления (или вызова ожидания на семафоре), планировщик
выбирает для выполнения стоящий первым в очереди RunList поток и
запускает его.
      Потоки, находящиеся в очереди DelayedWorkToDoList, после завершения
условия ожидания перемещаются в конец очереди RunList.
      Потоки, находящиеся в очереди LowPriorityRunList, запускаются на
выполнение только в том случае, если очередь RunList пуста. Обычно в эту
очередь назначаются потоки, выполняющие несрочную фоновую работу.
      Очередь WorkToDoList является в системе самой приоритетной. В эту
очередь попадают так называемые рабочие потоки. В NetWare, как и в
некоторых других ОС, вместо создания нового потока для выполнения
определенной работы может быть использован уже существующий
системный поток. Пул рабочих потоков создается при старте системы для