Successfully reported this slideshow.
Your SlideShare is downloading. ×

Unixkurs 07 - Prozess- und Speicherverwaltung

Ad

Unixkurs
Prozess- und Speicherverwaltung

Ad

Multi-tasking
• Unix-system sind multi-user und multi-
tasking-fähig
• mehrere Prozesse laufen "gleichzeitig" mit
untersch...

Ad

Scheduler
CPU
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
Instruction
Pointer
Prozess
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
call
stack
heap
UID
...

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Loading in …3
×

Check these out next

1 of 25 Ad
1 of 25 Ad

Unixkurs 07 - Prozess- und Speicherverwaltung

Download to read offline

Folien aus einem Unixkurs, den ich gehalten habe.

Im Kurs ging es um

Allgemeines zu Unix
Text editieren mit VIM Standard-Unix-Befehle Dateisysteme
Useraccounts und Rechte Prozess- und Speicherverwaltung Shellscripting

Folien aus einem Unixkurs, den ich gehalten habe.

Im Kurs ging es um

Allgemeines zu Unix
Text editieren mit VIM Standard-Unix-Befehle Dateisysteme
Useraccounts und Rechte Prozess- und Speicherverwaltung Shellscripting

Unixkurs 07 - Prozess- und Speicherverwaltung

  1. 1. Unixkurs Prozess- und Speicherverwaltung
  2. 2. Multi-tasking • Unix-system sind multi-user und multi- tasking-fähig • mehrere Prozesse laufen "gleichzeitig" mit unterschiedlichen Rechten
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. Was ist ein Prozess? • Ein Prozess ist ein Programm in Ausführung • Eigenschaften • Speicherbereich • CPU-Status • Prozesspriorität (Nicewert) • benutzte Rechenzeit • Prozesszustand
  7. 7. Prozesszustände beim Multitasking running ready blocked warten auf I/O Zugriff auf CPU warten auf Zuteilung von Rechenzeit
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. Prozessbaum init
  12. 12. Prozessbaum init
  13. 13. Daemonen • wichtige Hintergrundprozesse • cron, htttpd, lpd, .. • parent-Prozess ist immer init • bleibt nach dem Ausloggen am Leben
  14. 14. Daemonen init lp httpd cron sh
  15. 15. 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;
  16. 16. 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
  17. 17. ready running blocked stopped swapped & blocked CONT! uninterruptable interruptable Prozesszustände
  18. 18. Tricks in der Shell • Programm im Hintergrund starten • <Befehl> & • Vordergrundprogramm in den Hintergrund • Ctr-z • bg • Hintergrundprogramm in derVordergrund • fg %jobnummer
  19. 19. 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"
  20. 20. uptime • Zeigt an • Wie lange läuft das System schon? • durchschnittliche Last in • der letzen Minute • der 5 Minuten • der letzten 15 Minuten
  21. 21. top • sich selbst aktualisierende Prozess-Liste mit Angaben zu Speicherverbrauch, Anteil an der CPU-Last, Systemlast • schön zum Monitoring
  22. 22. 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)
  23. 23. nice • startet Programm mit bestimmter Nicewert- Differenz • nice -n <Differenz zum Standardwert> <befehl>
  24. 24. renice • ändert Nicewert eines laufenden Prozesses • renice <Nicewert> -p <PID>
  25. 25. kill • sendet Signal an Prozess • kill -2 434903 • kill -9 457734 (Vorsicht!) • kill -18 4357 (Stoppen) • kill -19 4357 (Wiederbeleben)

×