From ab9484b343abd995cba915bb0ba4be8907dfa6ec Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Fri, 13 Nov 2015 23:45:26 +0000 Subject: Shorter lecture names --- ws2015/betriebssysteme/blaetter/04/abgabe.md | 38 ---------------------------- 1 file changed, 38 deletions(-) delete mode 100644 ws2015/betriebssysteme/blaetter/04/abgabe.md (limited to 'ws2015/betriebssysteme/blaetter/04') diff --git a/ws2015/betriebssysteme/blaetter/04/abgabe.md b/ws2015/betriebssysteme/blaetter/04/abgabe.md deleted file mode 100644 index 94578c5..0000000 --- a/ws2015/betriebssysteme/blaetter/04/abgabe.md +++ /dev/null @@ -1,38 +0,0 @@ -# 5-Zustands-Prozessmodell - -a) - i) Übergang von *blocked* zu *running* wird nur via *ready* realisiert, da der Scheduler bereits periodisch Prozesse aus *ready* aufweckt. - Zusätzlich auch noch den jeweiligen Prozess aufzuwecken wäre schlicht unnötig. - ii) Fordert ein Prozess E/A-Resourcen an, so wird er nach *blocked* verschoben bis die jeweilige E/A-Operation per Unterbrechung bekannt macht, dass der Vorgang abgeschlossen ist. - iii) Ein Prozess, der nicht läuft, kann keine E/A-Resource anfordern. -b) - (i) *new* → *ready* - ~ Ein Nutzer hat seine Shell angewiesen `Hello World!` auszugeben, diese forkt um später `/bin/echo` aufzurufen. - - *ready* → *running* - ~ Der Shell-Prozess ruft `wait` auf den soeben gespawnten Prozess auf und wird daher *blocked*. - Der Scheduler entscheidet nun zum Kindprozess zu wechseln. - - *running* → *ready* - ~ `/bin/echo` hat nicht innerhalb der switching-Frequenz des Schedulers terminiert. - Der Scheduler verschiebt `/bin/echo` in *ready* und wechselt zu einem anderen Prozess. - - *running* → *blocked* - ~ `/bin/echo` ist dynamisch gelinkt und möchte eine library von der Festplatte lesen. - Es setzt einen Syscall ab und wartet auf das Ergebnis. - - *blocked* → *ready* - ~ Die Festplatte fängt an einen Stream von bytes zu schicken. - Der Scheduler fängt die Unterbrechung ab und verschiebt `/bin/echo` nach *ready* - - *running* → *exit* - ~ `/bin/echo` terminiert. - (ii) *new*. Prozesse werden im reinen batch-betrieb nicht dynamisch erzeugt. - -# Prozesse - -a) Kontext -b) Uniprogramming -c) 13.3 min -d) `fork` -e) Scheduler -- cgit v1.2.3