Процесс

<aside> 🧐 Процесс - некая абстракция, которая инкапсулирует в себе все ресурсы исполняемой программы (открытые файлы, файлы отображенные в память, их дескрипторы, потоки и т.д.)

Простыми словами

Каждый процесс имеет:

P.S. Процесс владеет ресурсами, которые использует с помощью ОС.

</aside>

<aside> 😯 ОС запускает, останавливает и завершает процессы. А еще старается изолировать / защитить ресурсы одного процесса от другого.

Процесс содержит в себе (обычно):

P.S. Процесс может запускать другие процессы, следующими способами:

Обычно существует первый главный процесс, который запускает все остальные (условный init).


Нити (потоки)


<aside> 🧐 Поток/нить (thread) -

Общее назначение потоков — параллельное выполнение на процессоре двух или более различных задач. Как можно догадаться, потоки были первым шагом на пути к многозадачным ОС. Планировщик ОС, руководствуясь приоритетом потока, распределяет кванты времени между разными потоками и ставит потоки на выполнение.

</aside>

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

<aside> 😯 Межпроцессное взаимодействие (Inter-process communication, IPC) — обмен данными между потоками одного или разных процессов.

Реализуется посредством механизмов, предоставляемых ядром ОС или процессом, использующим механизмы ОС и реализующим новые возможности IPC.

Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети.

</aside>