Потоки в операционной системе (ОС) Поток - Поток — это единый последовательный поток выполнения задач процесса, поэтому он также известен как поток выполнения или поток управления. Существует способ выполнения потока внутри процесса любой операционной системы. Кроме того, внутри процесса может быть более одного потока. Каждый поток одного и того же процесса использует отдельный счетчик программ и стек записей активации и управляющих блоков. Поток часто называют облегченным процессом.
Три потока одного процесса Потоки - Процесс можно разбить на множество потоков. Например , в браузере многие вкладки можно рассматривать как потоки. MS Word использует много потоков — форматирование текста из одного потока, обработка ввода из другого потока и т. д.
Потребность в потоках - Создание нового потока в существующем процессе занимает гораздо меньше времени, чем создание нового процесса.
- Потоки могут совместно использовать общие данные, им не нужно использовать меж процессное взаимодействие.
- Переключение контекста происходит быстрее при работе с потоками.
- Завершение потока занимает меньше времени, чем процесс.
Типы потоков - В операционной системе существует два типа потоков.
- Поток уровня ядра.
- Поток пользовательского уровня.
Поток уровня пользователя - Операционная система не распознает поток пользовательского уровня. Пользовательские потоки могут быть легко реализованы и реализованы пользователем. Если пользователь выполняет операцию блокировки потока на уровне пользователя, блокируется весь процесс. Поток уровня ядра ничего не знает о потоке пользовательского уровня. Поток уровня ядра управляет потоками пользовательского уровня, как если бы они были однопоточными процессами. Примеры: поток Java , потоки POSIX и т. д.
- Пользовательские потоки могут быть реализованы проще, чем поток ядра.
- Потоки уровня пользователя могут применяться к таким типам операционных систем, которые не поддерживают потоки на уровне ядра.
- Это быстрее и эффективнее.
- Время переключения контекста меньше, чем у потоков на уровне ядра.
Преимущества потоков пользовательского уровня - Не требует модификаций операционной системы.
- Представление потоков на уровне пользователя очень простое. Блоки управления регистром, ПК, стеком и мини-потоками хранятся в адресном пространстве процесса пользовательского уровня.
- Легко создавать, переключать и синхронизировать потоки без вмешательства процесса.
Недостатки потоков уровня пользователя - Потоки пользовательского уровня не имеют координации между потоком и ядром.
- Если поток вызывает ошибку страницы, весь процесс блокируется.
Поток уровня ядра - Поток ядра распознает операционную систему. В системе есть блок управления потоком и блок управления процессом для каждого потока и процесса в потоке уровня ядра. Поток уровня ядра реализуется операционной системой. Ядро знает обо всех потоках и управляет ими. Поток уровня ядра предлагает системный вызов для создания и управления потоками из пользовательского пространства. Реализация потоков ядра сложнее, чем пользовательских. Время переключения контекста больше в потоке ядра. Если поток ядра выполняет операцию блокировки, выполнение потока Banky может продолжаться.
Window Solaris Преимущества потоков уровня ядра - Поток уровня ядра полностью осведомлен обо всех потоках.
- Планировщик может решить потратить больше процессорного времени на потоки, имеющие большое числовое значение.
- Поток уровня ядра хорош для тех приложений, которые блокируют частоту.
Недостатки потоков уровня ядра - Поток ядра управляет и планирует все потоки.
- Реализация потоков ядра сложнее, чем пользовательский поток.
- Поток уровня ядра медленнее, чем поток уровня пользователя.
Компоненты потоков - Любой поток имеет следующие компоненты.
- Счетчик команд
- Набор регистров
- Стек пространство
Преимущества потоков - Повышенная пропускная способность системы: когда процесс разбит на множество потоков и каждый поток рассматривается как задание, количество заданий, выполняемых в единицу времени, увеличивается. Именно поэтому пропускная способность системы также увеличивается.
- Эффективное использование многопроцессорной системы: когда у вас более одного потока в одном процессе, вы можете запланировать более одного потока на более чем один процессор.
Преимущества потоков - Более быстрое переключение контекста: период переключения контекста между потоками меньше, чем переключение контекста процесса. Переключение контекста процесса означает дополнительные накладные расходы для ЦП.
- Отзывчивость: когда процесс разбит на несколько потоков и когда поток завершает свое выполнение, на этот процесс можно ответить как можно скорее.
Преимущества потоков - Коммуникация: многопоточная коммуникация проста, потому что потоки используют одно и то же адресное пространство, а в процессе мы применяем всего несколько эксклюзивных коммуникационных стратегий для связи между двумя процессами.
- Совместное использование ресурсов. Ресурсы могут совместно использоваться всеми потоками внутри процесса, например, код, данные и файлы. Примечание. Стек и регистр не могут совместно использоваться потоками. Для каждого потока есть стек и регистр.
Do'stlaringiz bilan baham: |