SlideShare ist ein Scribd-Unternehmen logo
Unixkurs
Prozess- und Speicherverwaltung
Multi-tasking
• Unix-system sind multi-user und multi-
tasking-fähig
• mehrere Prozesse laufen "gleichzeitig" mit
unterschiedlichen Rechten
Scheduler
CPU
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
Instruction
Pointer
Prozess
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
call
stack
heap
UID
EUID
PID
Nicewert
Accounting
lsof
Prozess "sh"
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
call
stack
heap
UID
EUID
PID
Nicewert
Accounting
lsof
Prozess "grep"
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
call
stack
heap
UID
EUID
PID
Nicewert
Accounting
lsof
Prozesspriorität
• Scheduler verteilt Rechenzeit nach
bestimmten Regeln
• round-robin-Verfahren in etwa:
• je weniger Punkte ein Prozess,
desto größer sind die
Zeitschlitze
Punkte = verbrauchte Zeit + Nice-Wert
Nicewert
• gibt die "Freundlichkeit" eines Prozesses
• Je höher der Wert, desto weniger
ressourcengierig ist der Prozess in
Konkurrenz zu anderen Prozessen
• Wertebereich
• Linux: -20 ... +20
• HP-UX: 0 ... +39
Was ist ein Prozess?
• Ein Prozess ist ein Programm in Ausführung
• Eigenschaften
• Speicherbereich
• CPU-Status
• Prozesspriorität (Nicewert)
• benutzte Rechenzeit
• Prozesszustand
Prozesszustände
beim Multitasking
running
ready
blocked
warten
auf I/O
Zugriff auf
CPU
warten auf Zuteilung von Rechenzeit
UID EUID
• es wird unterschieden zwischen
• wer hat das Programm gestartet: UID
• mit den Rechten welches Users wird das
Programm ausgeführt: EUID
• Setuid-Bit
GID EGID
• es wird unterschieden zwischen
• welche Gruppe hat das Programm gestartet: GID
• mit den Rechten welcher Gruppe wird das
Programm ausgeführt: EGID
• Setgid-Bit
PID
Prozess "sh"
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
call
stack
heap
UID
EUID
2342
Nicewert
Accounting
lsof
fork()
Prozess "sh"
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
call
stack
heap
UID
EUID
2342
Nicewert
Accounting
lsof
exec()
Prozess "ping"
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
call
stack
heap
UID
EUID
3244
Nicewert
Accounting
lsof
testuser@malthus:~$ ping
parent child
Prozessbaum
init
Prozessbaum
init
Daemonen
• wichtige Hintergrundprozesse
• cron, htttpd, lpd, ..
• parent-Prozess ist immer init
• bleibt nach dem Ausloggen am Leben
Daemonen
init
lp httpd cron
sh
Signale
• Prozesse können sich untereinander über
Signale unterhalten
Prozess
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
call
stack
heap
UID
EUID
2342
Nicewert
Accounting
lsof
Prozess
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
call
stack
heap
UID
EUID
3244
Nicewert
Accounting
lsof
QUIT!
if (signal=QUIT) then exit;
Signale
Nummer Name Beschreibung
1 HUP Daemon neuinitialisieren
2 INT Ctrl-c (bitte beenden)
3 QUIT beenden und core dump
9 KILL durch den Kernel beenden
18 STOP anhalten (Ctrl-z)
19 CONT weitermachen
ready
running
blocked
stopped
swapped
& blocked
CONT!
uninterruptable
interruptable
Prozesszustände
Tricks in der Shell
• Programm im Hintergrund starten
• <Befehl> &
• Vordergrundprogramm in den Hintergrund
• Ctr-z
• bg
• Hintergrundprogramm in derVordergrund
• fg %jobnummer
Systemlast
• Belastung des Systems über eine bestimmte
Zeitraum
• "simplistic, poorly defined, but far from useless."
• Anzahl der gleichzeitig "aktiven" Prozesse
• Untergrenze: 0
• Obergrenze: "systemabhängig, aber < 3 ist gut"
uptime
• Zeigt an
• Wie lange läuft das System schon?
• durchschnittliche Last in
• der letzen Minute
• der 5 Minuten
• der letzten 15 Minuten
top
• sich selbst aktualisierende Prozess-Liste mit
Angaben zu Speicherverbrauch, Anteil an
der CPU-Last, Systemlast
• schön zum Monitoring
ps
• druckt Liste von Prozessen auf Terminal
• filtert Prozess durch angeben von Optionen
z.B.
• ps -u testuser
• ps -m (sortiert nach Speicherverbrauch)
• ps -ef (alle Prozesse)
nice
• startet Programm mit bestimmter Nicewert-
Differenz
• nice -n <Differenz zum Standardwert> <befehl>
renice
• ändert Nicewert eines laufenden Prozesses
• renice <Nicewert> -p <PID>
kill
• sendet Signal an Prozess
• kill -2 434903
• kill -9 457734 (Vorsicht!)
• kill -18 4357 (Stoppen)
• kill -19 4357 (Wiederbeleben)

Weitere ähnliche Inhalte

Mehr von Hannes Planatscher

Unixkurs 04 - Rechteverwaltung
Unixkurs 04 - RechteverwaltungUnixkurs 04 - Rechteverwaltung
Unixkurs 04 - Rechteverwaltung
Hannes Planatscher
 
Unixkurs 03 - Pipes
Unixkurs 03 - PipesUnixkurs 03 - Pipes
Unixkurs 03 - Pipes
Hannes Planatscher
 
Unixkurs 06 - Shellskripte
Unixkurs 06 - ShellskripteUnixkurs 06 - Shellskripte
Unixkurs 06 - Shellskripte
Hannes Planatscher
 
Unixkurs 04 - Dateien
Unixkurs 04 - DateienUnixkurs 04 - Dateien
Unixkurs 04 - Dateien
Hannes Planatscher
 
Unixkurs 02 - VIM
Unixkurs 02 - VIMUnixkurs 02 - VIM
Unixkurs 02 - VIM
Hannes Planatscher
 
Unixkurs 01 - Allgemeines zu Unix
Unixkurs 01 - Allgemeines zu UnixUnixkurs 01 - Allgemeines zu Unix
Unixkurs 01 - Allgemeines zu Unix
Hannes Planatscher
 
Kombinatorische Optimierung für Immunoaffinitätsproteomik
Kombinatorische Optimierung für ImmunoaffinitätsproteomikKombinatorische Optimierung für Immunoaffinitätsproteomik
Kombinatorische Optimierung für Immunoaffinitätsproteomik
Hannes Planatscher
 
SCPSolver
SCPSolverSCPSolver

Mehr von Hannes Planatscher (8)

Unixkurs 04 - Rechteverwaltung
Unixkurs 04 - RechteverwaltungUnixkurs 04 - Rechteverwaltung
Unixkurs 04 - Rechteverwaltung
 
Unixkurs 03 - Pipes
Unixkurs 03 - PipesUnixkurs 03 - Pipes
Unixkurs 03 - Pipes
 
Unixkurs 06 - Shellskripte
Unixkurs 06 - ShellskripteUnixkurs 06 - Shellskripte
Unixkurs 06 - Shellskripte
 
Unixkurs 04 - Dateien
Unixkurs 04 - DateienUnixkurs 04 - Dateien
Unixkurs 04 - Dateien
 
Unixkurs 02 - VIM
Unixkurs 02 - VIMUnixkurs 02 - VIM
Unixkurs 02 - VIM
 
Unixkurs 01 - Allgemeines zu Unix
Unixkurs 01 - Allgemeines zu UnixUnixkurs 01 - Allgemeines zu Unix
Unixkurs 01 - Allgemeines zu Unix
 
Kombinatorische Optimierung für Immunoaffinitätsproteomik
Kombinatorische Optimierung für ImmunoaffinitätsproteomikKombinatorische Optimierung für Immunoaffinitätsproteomik
Kombinatorische Optimierung für Immunoaffinitätsproteomik
 
SCPSolver
SCPSolverSCPSolver
SCPSolver
 

Unixkurs 07 - Prozess- und Speicherverwaltung