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