Ответ
Процесс в Unix — это экземпляр выполняющейся программы, который включает в себя:
- Код программы (текстовый сегмент)
- Данные (стек, куча, статические переменные)
- Ресурсы (открытые файлы, сокеты, PID)
- Контекст выполнения (регистры, состояние процессора)
Каждый процесс имеет уникальный PID (Process ID) и работает в изолированном адресном пространстве.
Пример создания процесса в Go:
package main
import (
"os/exec"
"fmt"
)
func main() {
cmd := exec.Command("sleep", "5") // новый процесс
err := cmd.Start()
if err != nil {
fmt.Println("Error:", err)
}
fmt.Printf("Process PID: %dn", cmd.Process.Pid)
}
Процессы могут создавать дочерние процессы через fork() (в Go — через exec.Command). Управляются через сигналы (SIGTERM, SIGKILL).