Операционные системы. Замятин А.В - 55 стр.

UptoLike

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

55
Таблица 3.1
Преимущества и недостатки использования потоков
Преимущества Недостатки
Потоки удобно использовать при не-
обходимости выполнения в процессе
нескольких действий сразу (пример:
одновременная обработка на сервере
запросов нескольких пользователей)
Создание многопоточного при-
ложения может потребовать
значительных усилий на этапе
проектирования из-за необхо-
димости синхронизации пото-
ков
Ускорение работы приложений, ис-
пользующих ввод, обработку и вы-
вод данных за счет возможности
распределения этих операций по от-
дельным потокам. Это дает возмож-
ность не прекращать выполнение
программы во время возможных
простоев из-за ожидания при чте-
нии/записи данных
Отладка многопоточной про-
граммы значительно сложнее,
чем отладка однопоточной из-
за сложности контроля испол-
нения различных потоков
Как правило, переключение между
потоками происходит быстрее и тре-
бует меньших затрат системных ре-
сурсов, по сравнению с переключе-
нием между процессами
Параллельные вычисления,
реализованные в виде многопо-
точного приложения, на ком-
пьютере с одним процессором
не обязательно будут выпол-
няться быстрее, чем аналогич-
ная по функциональности од-
нопоточная программа
3.1.3. Программирование потоков
В Linux каждый поток на самом деле является процессом, и для то-
го, чтобы создать новый поток, нужно создать новый процесс. Однако
для создания дополнительных потоков используются процессы особого
типа. Эти процессы представляют собой обычные дочерние процессы
главного процесса, но они разделяют с главным процессом адресное
пространство, файловые дескрипторы и обработчики сигналов. Для обо-
значения процессов этого типа применяется специальный термин лег-
кие процессы (lightweight processes). Поскольку для потоков не требует-
ся создавать собственную копию адресного пространства (и других ре-
сурсов) своего процесса-родителя, создание нового легкого процесса
требует значительно меньших затрат, чем создание полновесного до-
чернего процесса.