Реализация потоков в ядре, в пространстве пользователя, смешанная реализация. Преимущества и недостатки разных способов реализации потоков

Способы реализации пакета потоков:

· в пространстве пользователя (user - level threads – ULT);

· в ядре (kernel – level threads – KLT).

ДОСТОИНСТВА:

· можно реализовать в ОС, не поддерживающей потоки без каких-либо изменений в ОС;

· высокая производительность, поскольку процессу не нужно переключаться в режим ядра и обратно;

· ядро о потоках ничего не знает и управляет однопоточными процессами;

· имеется возможность использования любых алгоритмов планирования потоков с учетом их специфики;

· управление потоками возлагается на программу пользователя.

НЕДОСТАТКИ:

· системный вызов блокирует не только работающий поток, но и все потоки того процесса, к которому он относится;

· приложение не может работать в многопроцессорном режиме, так как ядро закрепляет за каждым процессом только один процессор;

· при запуске одного потока ни один другой поток а рамках одного процесса не будет запущен пока первый добровольно не отдаст процессор;

· внутри одного потока нет прерываний по таймеру, в результате чего невозможно создать планировщик по таймеру для поочередного выполнения потоков.

ДОСТОИНСТВА:

· возможно планирование работы нескольких потоков одного и того же процесса на нескольких процессорах;

· реализуется мультипрограммирование в рамках всех процессов (в том числе одного);

· при блокировании одного из потоков процесса ядро может выбрать другой поток этого же (или другого процесса);

· процедуры ядра могут быть многопоточными.

НЕДОСТАТКИ:

Необходимость двукратного переключения режима пользователь – ядро, ядро – пользователь для передачи управления от одного потока к другому в рамках одного и того же процесса.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: