Разница между процессом и потоком

Оглавление:

Anonim

Основное различие между процессом и потоком состоит в том, что процесс - это выполняемая программа, в то время как поток - это небольшая исполнительная единица в процессе.

Программа - это набор инструкций для выполнения определенной задачи. Процесс - это выполняемая программа. Это не программа, но это нечто большее. Другими словами, программа - это пассивная сущность, тогда как процесс - активная сущность. Когда программа выполняется, она становится процессом. С другой стороны, поток - это небольшая исполнительная единица, принадлежащая процессу. Процессы тяжелые, но потоки легкие. Таким образом, для повышения эффективности один процесс делится на несколько потоков.

Процесс, поток, операционная система

Что такое процесс?

Процесс - это выполняемая программа. Когда программист пишет программу и выполняет ее, эта программа становится процессом. Выполняет задания согласно инструкциям программы.

Когда процесс загружается в память, он делится на четыре сегмента. Это стек, куча, текст и данные. В стеках хранятся временные данные, такие как параметры функций и локальные переменные. Куча динамически выделяет память процессу во время выполнения. Текстовый раздел содержит содержимое регистров процессора и значение программного счетчика. Раздел данных содержит статические и глобальные переменные.

Процесс проходит несколько состояний. Они следующие.

Рисунок 2: Состояния процесса

Новый - Процесс создается в новом состоянии

Готовый - В состоянии готовности процесс ожидает назначения процессору для его запуска. Процесс может перейти в это состояние после состояния запуска. Кроме того, когда планировщик назначает ЦП процессу, в то время как другой процесс уже выполняется, то этот уже выполняющийся процесс переходит в состояние готовности.

Бег - В рабочем состоянии процесс назначается процессору, и он выполняет инструкции.

Ожидающий - Состояние ожидания отражает, что процесс ожидает наступления некоторого события; например, ожидание, пока файл станет доступным, или ожидание завершения ввода-вывода.

Прекращение - Состояние завершения указывает, что процесс завершил выполнение. Теперь его можно удалить из основной памяти.

Что такое поток

Поток - это исполнительная единица, содержащая счетчик программ, стек и набор регистров. Это легкий процесс. Поток не может существовать вне процесса, и каждый поток принадлежит процессу. Есть два типа потоков: пользовательские потоки и потоки ядра. Пользовательские потоки - это потоки, управляемые пользователем, в то время как потоки ядра поддерживаются и управляются ядром.

Рисунок 2: Поток и процесс

В компьютерной системе неэффективно создавать процессы для каждой задачи, потому что для этого требуется больше ресурсов. Следовательно, процесс делится на несколько подпроцессов, и каждый подпроцесс выполняет подзадачу. Этот подпроцесс представляет собой отдельную единицу в процессе и называется потоком. Разделение процесса на несколько потоков, и эти потоки выполняются параллельно, называется многопоточностью. Следовательно, потоки улучшают производительность приложения за счет параллелизма.

В основном потоки обеспечивают параллелизм внутри процесса. Кроме того, потоки улучшают использование в многопроцессорных архитектурах для повышения эффективности.

Связь между процессом и потоком

Разница между процессом и потоком

Определение

Процесс - это экземпляр выполняемой компьютерной программы. Поток - это компонент процесса, который является самой маленькой исполнительной единицей.

Тип

Процесс тяжелый, а поток легкий.

Переключение

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

Пространство памяти

Каждый процесс имеет собственное пространство памяти. Процесс не разделяет память с другими процессами. Потоки используют память процесса, которому они принадлежат. Таким образом, потоки разделяют память с другими потоками того же процесса.

Требования к ресурсам

Процесс требует больше ресурсов. Поток требует минимум ресурсов.

Творчество

Процесс создать сложно. Проще создать нить.

Коммуникация

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

Зависимость

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

Заключение

Разница между процессом и потоком заключается в том, что процесс - это выполняемая программа, а поток - это небольшая исполнительная единица в процессе. Создание процесса сложно, но создание потоков экономично. Кроме того, процессы требуют значительных ресурсов, в то время как потоки требуют минимальных ресурсов.

Ссылка:

1. «Что такое процесс?» Реляционные и логические операторы Python | Studytonight, доступно здесь 2. «Что такое нити?» Реляционные и логические операторы Python | Studytonight, доступно здесь.

Изображение предоставлено:

1. «Многопоточный процесс» Автор: Я, Cburnett (CC BY-SA 3.0) через Commons Wikimedia.

Разница между процессом и потоком