Я собираюсь использовать много текста из книги «Концепции операционных систем» Абрахама Силберша, Питера Баера Галвина и Грега Гагна, а также мое собственное понимание вещей.
Обработать
Любое приложение находится на компьютере в виде текста (или кода).
Мы подчеркиваем, что программа сама по себе не является процессом. Программа является пассивной сущностью, такой как файл, содержащий список инструкций, хранящихся на диске (часто называемый исполняемым файлом).
Когда мы запускаем приложение, мы создаем экземпляр выполнения. Этот экземпляр выполнения называется процессом. РЕДАКТИРОВАТЬ: (Согласно моей интерпретации, аналог класса и экземпляра класса, экземпляр класса является процессом.)
Примером процессов является Google Chrome. Когда мы запускаем Google Chrome, появляются 3 процесса:
• Процесс браузера отвечает за управление пользовательским интерфейсом, а также за дисковым и сетевым вводом-выводом. Новый процесс браузера создается при запуске Chrome. Создан только один процесс браузера.
• Renderer процессы содержат логику для рендеринга веб - страниц. Таким образом, они содержат логику для обработки HTML, Javascript, изображений и так далее. Как правило, для каждого веб-сайта, открываемого на новой вкладке, создается новый процесс визуализации, поэтому одновременно могут быть активны несколько процессов визуализации.
• Процесс плагина создается для каждого используемого типа плагина (например, Flash или QuickTime). Процессы плагина содержат код для плагина, а также дополнительный код, который позволяет плагину взаимодействовать со связанными процессами визуализации и процессом браузера.
Нить
Чтобы ответить на этот вопрос, я думаю, вы должны сначала знать, что такое процессор. Процессор - это аппаратная часть, которая фактически выполняет вычисления. РЕДАКТИРОВАТЬ: (Вычисления, такие как добавление двух чисел, сортировка массива, в основном выполнение кода, который был написан)
Теперь перейдем к определению потока.
Поток - это базовая единица загрузки процессора ; он содержит идентификатор потока, счетчик программ, набор регистров и стек.
РЕДАКТИРОВАТЬ: определение потока с веб-сайта Intel:
Поток, или поток выполнения, - это программный термин для базовой упорядоченной последовательности инструкций, которые могут передаваться или обрабатываться одним ядром ЦП.
Таким образом, если процесс Renderer из приложения Chrome сортирует массив чисел, сортировка будет выполняться в потоке / потоке выполнения. (Грамматика, относящаяся к темам, меня смущает)
Моя интерпретация вещей
Процесс - это экземпляр исполнения. Потоки - это фактические рабочие, которые выполняют вычисления через доступ к процессору. Когда для процесса запущено несколько потоков, процесс предоставляет общую память.
РЕДАКТИРОВАТЬ:
Другая информация, которую я нашел полезным, чтобы дать больше контекста
Все современные дневные компьютеры имеют более одного потока. Количество потоков в компьютере зависит от количества ядер в компьютере.
Параллельное Computing :
Из Википедии:
Параллельные вычисления - это форма вычислений, при которой несколько вычислений выполняются в параллельные периоды времени - одновременно, а не последовательно (один завершается до следующего запуска). Это свойство системы - это может быть отдельная программа, компьютер или сеть - и для каждого вычисления есть отдельная точка выполнения или «поток управления» («процесс»).
Итак, я мог бы написать программу, которая рассчитывает сумму из 4 чисел:
(1 + 3) + (4 + 5)
В программе для вычисления этой суммы (это будет один процесс, выполняющийся в потоке выполнения), я могу разветвить другой процесс, который может выполняться в другом потоке, для вычисления (4 + 5) и вернуть результат в исходный процесс, в то время как Исходный процесс вычисляет сумму (1 + 3).