Операционные системы: архитектура и управление процессами. Макаров П.С. - 76 стр.

UptoLike

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

76
го и того же процесса приходится переключаться в режим ядра. Результаты ис-
следований, проведенных на однопроцессорной машине VAX под управлением
UNIX-подобной операционной системы, представленные в табл. 4.1, иллю-
стрируют различие между этими двумя подходами. Сравнивалось время вы-
полнения таких двух задач, как (1) нулевое ветвление (Null время, затрачен-
ное на создание, планирование и выполнение процесса/потока, состоящего
только из нулевой процедуры измеряются только накладные расходы, связан-
ные с ветвлением процесса/потока), и (2) ожидание сигнала (Signal-Wait) —
время, затраченное на передачу сигнала от одного процесса/потока другому
процессу/потоку, находящемуся в состоянии ожидания (накладные расходы на
синхронизацию двух процессов/потоков). Чтобы было легче сравнивать полу-
ченные значения, заметим, что вызов процедуры на машине VAX, используе-
мой в этом исследовании, длится 7 µs, а системное прерывание 17 µs. Мы
видим, что различие во времени выполнения потоков на уровне ядра и потоков
на пользовательском уровне более чем на порядок превосходит по величине
различие во времени выполнения потоков на уровне ядра и процессов.
Таким образом, создается впечатление, что как применение многопоточ-
ности на уровне ядра дает выигрыш по сравнению с процессами, так и много-
поточность на пользовательском уровне дает выигрыш по сравнению с много-
поточностью на пользовательском уровне. Однако на деле возможность этого
дополнительного выигрыша зависит от характера приложений. Если для боль-
шинства переключений потоков приложения необходим доступ к ядру, то схе-
ма с потоками на пользовательском уровне может работать не намного лучше,
чем схема с потоками на уровне ядра.