Разница между процессом и потоком
Оглавление:
- Что такое процесс?
- Что такое поток
- Связь между процессом и потоком
- Разница между процессом и потоком
Основное различие между процессом и потоком состоит в том, что процесс - это выполняемая программа, в то время как поток - это небольшая исполнительная единица в процессе.
Программа - это набор инструкций для выполнения определенной задачи. Процесс - это выполняемая программа. Это не программа, но это нечто большее. Другими словами, программа - это пассивная сущность, тогда как процесс - активная сущность. Когда программа выполняется, она становится процессом. С другой стороны, поток - это небольшая исполнительная единица, принадлежащая процессу. Процессы тяжелые, но потоки легкие. Таким образом, для повышения эффективности один процесс делится на несколько потоков.
Процесс, поток, операционная система
Что такое процесс?
Процесс - это выполняемая программа. Когда программист пишет программу и выполняет ее, эта программа становится процессом. Выполняет задания согласно инструкциям программы.
Когда процесс загружается в память, он делится на четыре сегмента. Это стек, куча, текст и данные. В стеках хранятся временные данные, такие как параметры функций и локальные переменные. Куча динамически выделяет память процессу во время выполнения. Текстовый раздел содержит содержимое регистров процессора и значение программного счетчика. Раздел данных содержит статические и глобальные переменные.
Процесс проходит несколько состояний. Они следующие.
Рисунок 2: Состояния процесса
Новый - Процесс создается в новом состоянии
Готовый - В состоянии готовности процесс ожидает назначения процессору для его запуска. Процесс может перейти в это состояние после состояния запуска. Кроме того, когда планировщик назначает ЦП процессу, в то время как другой процесс уже выполняется, то этот уже выполняющийся процесс переходит в состояние готовности.
Бег - В рабочем состоянии процесс назначается процессору, и он выполняет инструкции.
Ожидающий - Состояние ожидания отражает, что процесс ожидает наступления некоторого события; например, ожидание, пока файл станет доступным, или ожидание завершения ввода-вывода.
Прекращение - Состояние завершения указывает, что процесс завершил выполнение. Теперь его можно удалить из основной памяти.
Что такое поток
Поток - это исполнительная единица, содержащая счетчик программ, стек и набор регистров. Это легкий процесс. Поток не может существовать вне процесса, и каждый поток принадлежит процессу. Есть два типа потоков: пользовательские потоки и потоки ядра. Пользовательские потоки - это потоки, управляемые пользователем, в то время как потоки ядра поддерживаются и управляются ядром.
Рисунок 2: Поток и процесс
В компьютерной системе неэффективно создавать процессы для каждой задачи, потому что для этого требуется больше ресурсов. Следовательно, процесс делится на несколько подпроцессов, и каждый подпроцесс выполняет подзадачу. Этот подпроцесс представляет собой отдельную единицу в процессе и называется потоком. Разделение процесса на несколько потоков, и эти потоки выполняются параллельно, называется многопоточностью. Следовательно, потоки улучшают производительность приложения за счет параллелизма.
В основном потоки обеспечивают параллелизм внутри процесса. Кроме того, потоки улучшают использование в многопроцессорных архитектурах для повышения эффективности.
Связь между процессом и потоком
Разница между процессом и потоком
Определение
Процесс - это экземпляр выполняемой компьютерной программы. Поток - это компонент процесса, который является самой маленькой исполнительной единицей.
Тип
Процесс тяжелый, а поток легкий.
Переключение
Переключение процесса требует взаимодействия с операционной системой. Напротив, переключение потоков теперь требует взаимодействия с операционной системой.
Пространство памяти
Каждый процесс имеет собственное пространство памяти. Процесс не разделяет память с другими процессами. Потоки используют память процесса, которому они принадлежат. Таким образом, потоки разделяют память с другими потоками того же процесса.
Требования к ресурсам
Процесс требует больше ресурсов. Поток требует минимум ресурсов.
Творчество
Процесс создать сложно. Проще создать нить.
Коммуникация
Межпроцессное взаимодействие происходит медленно, потому что каждый процесс имеет свой адрес в памяти. Напротив, взаимодействие между потоками происходит быстро, потому что потоки используют один и тот же адрес памяти процесса, которому они принадлежат.
Зависимость
В среде с несколькими процессорами каждый процесс выполняется независимо. Но поток может читать, записывать или изменять данные другого потока.
Заключение
Разница между процессом и потоком заключается в том, что процесс - это выполняемая программа, а поток - это небольшая исполнительная единица в процессе. Создание процесса сложно, но создание потоков экономично. Кроме того, процессы требуют значительных ресурсов, в то время как потоки требуют минимальных ресурсов.
Ссылка:
1. «Что такое процесс?» Реляционные и логические операторы Python | Studytonight, доступно здесь 2. «Что такое нити?» Реляционные и логические операторы Python | Studytonight, доступно здесь.
Изображение предоставлено:
1. «Многопоточный процесс» Автор: Я, Cburnett (CC BY-SA 3.0) через Commons Wikimedia.