Processer i Linux – hur program faktiskt körs

Processer i Linux – hur program faktiskt körs

Varje gång du startar ett program i Linux skapas en process. Processer är grunden för hur operativsystemet fungerar och hur resurser fördelas mellan olika program.



Vad är en process?

En process är ett program i exekvering. Den består av:

  • En egen minnesrymd
  • Ett unikt process-ID (PID)
  • Registerdata
  • Öppna filer
  • Ett aktuellt tillstånd

Linux isolerar processer från varandra. Det betyder att en krasch i ett program normalt inte påverkar andra program.

Processens tillstånd

En Linux-process kan befinna sig i olika tillstånd:

  • Running – körs på CPU
  • Sleeping – väntar på I/O
  • Stopped – pausad
  • Zombie – avslutad men ej uppstädad

Hur fungerar processer i Linux

Vill du förstå hur CPU-tid delas mellan processer?
Schemaläggning i Linux

Förälder och barn

Processer i Linux bildar ett träd. Varje process har en förälder (PPID). När en process skapar en ny process kallas det fork.

Detta är centralt i hur Linux bygger upp systemtjänster.

Zombieprocesser

En zombieprocess uppstår när en process avslutas men dess förälder ännu inte läst dess exit-status.

Den tar inte CPU-tid men finns kvar i processtabellen tills den städas bort.



Processer och Python

När du kör ett Python-script skapas en vanlig Linux-process. Den konkurrerar om CPU och minne precis som alla andra program.

Läs mer här:
Python som Linux-process

Sammanfattning

  • Alla program i Linux är processer
  • De är isolerade från varandra
  • De schemaläggs av Linux-kärnan
  • De är grunden för servrar och automation