> For the complete documentation index, see [llms.txt](https://dimitar-minchev.gitbook.io/linux-system-programming/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dimitar-minchev.gitbook.io/linux-system-programming/01_linux_basics/07_processes.md).

# Процеси в Линукс

Основната задача на операционните системи е да изпълняват компютърни програми. При стартирането на всяка програма се създават един или повече **процеси** (*Термин на Английски език: Processes*), които на практика представляват програмен код в изпълнение. Но освен статичен код, те също така се състоят от данни, ресурси, състояние и виртуализиран компютър.

В Линукс всеки процес се представя с уникален идентификатор, наречен **pid**. Когато няма активни процеси, операционната система фиктивно изпълнява специален **бездействащ процес** (*Термин на Английски език: Idle Process*), който има уникален идентификатор **pid = 0**.

Процесите могат да създават други процеси, като оригиналният процес се нарича **родител** (*Термин на Английски език: Parent*), а новосъздадения се нарича **дете** (*Термин на Английски език: Child*). По този начин се създават йерархични групи от процеси, които могат да комуникират и споделят ресурси помежду си.

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