Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
sp-quiz
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Monitor
Service Desk
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Philip Kaluđerčić
sp-quiz
Commits
d7ab8211
Commit
d7ab8211
authored
1 year ago
by
Philip Kaluđerčić
Browse files
Options
Downloads
Patches
Plain Diff
Fix minor issues to the answers in ws16.q
parent
40e43c1c
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
ws16.q
+32
-31
32 additions, 31 deletions
ws16.q
with
32 additions
and
31 deletions
ws16.q
+
32
−
31
View file @
d7ab8211
#
https
://
sys.cs.fau.de
/
extern
/
lehre
/
ws23
/
sp2
/
pruefung
/
klausuren
/
2016
w
-
SP
-
Klausur
-
www.pdf
0
Welche
Aussage
zu
Semaphoren
ist
richtig
?
(
2017
-
02
)
-
Die
*
P
*-
Operation
eines
Semaphors
erh
ö
ht
den
Wert
des
Semaphors
um
1
und
deblockiert
gegebenenfalls
wartende
Prozesse.
Nein
,
die
*
P
*-
Operation
([
vom
Niederl
ä
ndischen
*
probeer
te
verlagen
*
-
versuche
,
zu
verringern
](
https
://
en.wikipedia.org
/
wiki
/
Semaphore_
(
programming
)
#
Operation_names
))
verringert
den
Wert
der
Semaphore
um
1
und
blockiert
,
wenn
dies
den
Wert
unter
0
bringen
w
ü
rde
,
bis
eine
V
-
Operation
aufgerufen
wird.
Nein
,
die
*
P
*-
Operation
([
vom
Niederl
ä
ndischen
*
probeer
te
verlagen
*
-
versuche
,
zu
verringern
](
https
://
en.wikipedia.org
/
wiki
/
Semaphore_
(
programming
)
#
Operation_names
))
verringert
den
Wert
der
Semaphore
um
1
und
blockiert
,
wenn
dies
den
Wert
unter
0
bringen
w
ü
rde
,
bis
eine
V
-
Operation
aufgerufen
wird.
Daher
"verwechselt"
diese
Frage
*
P
*
und
*
V
*.
+
Die
V
-
Operation
eines
Semaphors
erh
ö
ht
den
Wert
des
Semaphors
um
1
und
deblockiert
gegebenenfalls
wartende
Prozesse.
Ja
,
die
*
V
*-
Operation
(
urspr
ü
nglich
vom
Niederl
ä
ndischen
*
vrijgave
*
-
freigeben
)
erh
ö
ht
den
Wert
der
Semaphore
um
1.
Dabei
wird
eventuell
eine
wartende
*
P
*-
Operation
entblockiert.
Ja
,
die
*
V
*-
Operation
(
urspr
ü
nglich
vom
Niederl
ä
ndischen
*
vrijgave
*
-
freigeben
)
erh
ö
ht
den
Wert
der
Semaphore
um
1.
Dabei
wird
eventuell
eine
wartende
*
P
*-
Operation
entblockiert.
-
Ein
Semaphor
kann
nur
zur
Signalisierung
von
Ereignissen
,
nicht
jedoch
zum
Erreichen
gegenseitigen
Ausschlusses
verwendet
werden.
Nein
,
eine
bin
ä
re
Semaphore
(
Semaphore
mit
Startwert
1
)
,
bei
der
P
und
V
immer
paarweise
nacheinander
aufgerufen
werden
,
implementiert
gegenseitigen
Ausschluss.
-
Die
V
-
Operation
eines
Semaphors
kann
ausschlie
ß
lich
von
einem
Thread
aufgerufen
werden
,
der
zuvor
mindestens
eine
P
-
Operation
auf
dem
selben
Semaphor
aufgerufen
hat.
Nein
,
eine
Semaphore
erlaubt
dies
im
Gegensatz
zu
einem
*
mutex
*.
Nein
,
eine
Semaphore
erlaubt
dies
im
Gegensatz
zu
einem
*
mutex
*
,
wo
das
nicht
-
einhalten
dieser
Vorschrift
als
Programmierfehler
angesehen
wird
.
.
0
Welche
Seitennummer
und
welcher
Offset
geh
ö
ren
bei
einstufiger
Seitennummerierung
und
einer
Seitengr
öß
e
von
1024
Bytes
zu
folgender
logischer
Adresse
:
`0xc01a`
?
(
2017
-
02
)
-
Seitennummer
0xc
,
Offset
0x1a
+
Seitennummer
`0x30`
,
Offset
`0x1a`
1024
=
2
¹⁰
Byte
pro
Seite
,
d.
h.
6
Bit
Seitennummer
,
10
Bit
Offset.
`0xc01a
=
0b
1100
00
|
00
0001
1010
`
also
ist
der
*
o
ffset
*
`0b00
0001
1010
=
0x1a
`
und
die
Seitennummer
`0b0011
0000
=
0x30
`.
1024
=
2
<
sup
>
10
</
sup
>
Byte
pro
Seite
,
d.
h.
6
Bit
Seitennummer
,
10
Bit
Offset.
`0xc01a
=
0b
1100
00
|
00
0001
1010
`
also
ist
der
*
O
ffset
*
`0b00
0001
1010
=
0x1a
`
und
die
Seitennummer
`0b0011
0000
=
0x30
`.
-
Seitennummer
`0xc0`
,
Offset
`0x1a`
Nein.
Da
hier
der
Offset
10
Bit
und
damit
kein
Vielfaches
von
4
Bit
hat
,
darf
man
nicht
einfach
die
Hexadezimaldarstellung
an
der
Grenze
eines
[
*
nibbles
*
](
https
://
de.wikipedia.org
/
wiki
/
Nibble
)
(
=
Halbbyte
,
4
Bit
,
ein
Zeichen
in
Hexadezimaldarsetllung
)
zerlegen.
Deswegen
ist
hier
die
Seitennummer
falsch.
Nein.
Da
hier
der
Offset
10
Bit
und
damit
kein
Vielfaches
von
4
Bit
hat
,
darf
man
nicht
einfach
die
Hexadezimaldarstellung
an
der
Grenze
eines
[
*
nibbles
*
](
https
://
de.wikipedia.org
/
wiki
/
Nibble
)
(
=
Halbbyte
,
4
Bit
,
ein
Zeichen
in
Hexadezimaldarsetllung
)
zerlegen.
Deswegen
ist
hier
die
Seitennummer
falsch.
-
Seitennummer
`0xc01`
,
Offset
`0xa`
.
0
Welche
Aussage
ü
ber
Variablen
in
C
-
Programmen
ist
richtig
?
(
2017
-
02
)
-
Lokale
automatic
-
Variablen
,
die
auf
dem
Stack
angelegt
werden
,
werden
immer
mit
dem
Wert
0
initialisiert.
Lokale
Variablen
sind
uninitialisiert
,
bis
sie
(
eventuell
zusammen
mit
der
Deklaration
)
initialisiert
werden.
Lesender
Zugriff
auf
uninitialisierte
Werte
l
ö
st
undefiniertes
Verhalten
aus
.
Globale
Variablen
sind
hingegen
standardm
äß
ig
auf
0
initialisiert.
-
Wird
dem
Parameter
einer
Funktion
innerhalb
der
Funktion
ein
neuer
Wert
zugewiesen
,
so
ä
ndert
sich
auch
der
Wert
der
Variablen
,
welche
in
der
aufrufenden
Funktion
als
Parameter
angegeben
wurde
Nein.
C
ist
*
call
-
by
-
value
*,
ü
bergeben
wird
also
tats
ä
chlich
der
Wert
der
Variable
,
nicht
etwa
eine
Referenz
darauf
ü
bergeben.
Dass
hier
beschriebene
*
call
-
by
-
reference
*-
Verhalten
kann
z.
B.
in
C
++
durch
die
Verwendung
von
`
&
`
erzeugt
oder
in
C
durch
*
Zeiger
*
nachgebildet
werden.
Lokale
Variablen
sind
uninitialisiert
,
bis
sie
(
eventuell
zusammen
mit
der
Deklaration
)
initialisiert
werden.
Lesender
Zugriff
auf
uninitialisierte
Werte
i
st
undefiniertes
Verhalten.
Globale
_
modul
-
interne_
Variablen
(
`static`
)
sind
hingegen
standardm
äß
ig
auf
0
initialisiert.
-
Wird
dem
Parameter
einer
Funktion
innerhalb
der
Funktion
ein
neuer
Wert
zugewiesen
,
so
ä
ndert
sich
auch
der
Wert
der
Variablen
,
welche
in
der
aufrufenden
Funktion
als
Parameter
angegeben
wurde
.
Nein.
C
ist
*
call
-
by
-
value
*,
ü
bergeben
wird
also
tats
ä
chlich
der
Wert
der
Variable
,
nicht
etwa
eine
Referenz
darauf
ü
bergeben.
Dass
hier
beschriebene
*
call
-
by
-
reference
*-
Verhalten
kann
z.
B.
in
C
++
durch
die
Verwendung
von
`
&
`
([
References
](
https
://
en.cppreference.com
/
w
/
cpp
/
language
/
reference
))
oder
in
Ada
mit
[
IN
OUT
](
http
://
www.ada
-
auth.org
/
standards
/
22
rm
/
html
/
RM
-
6
-
2.
html
)
Parameter
erzeugt
oder
in
C
durch
*
Zeiger
*
nachgebildet
werden.
+
Eine
Funktion
,
die
mit
dem
Schl
ü
sselwort
static
definiert
wird
,
kann
nur
innerhalb
des
Moduls
aufgerufen
werden
,
in
dem
sie
definiert
wurde
,
nicht
jedoch
aus
einem
anderen
Modul
heraus.
Ja.
`static`
bei
Funktionen
und
globalen
Variablen
ver
ä
ndert
die
Sichtbarkeit
wie
hier
beschrieben.
(
`static`
bei
lokalen
Variablen
in
Funktionen
sorgt
daf
ü
r
,
dass
der
Wert
der
Variablen
Funktionsaufrufe
hinweg
erhalten
bleibt.
)
Ja.
`static`
bei
Funktionen
und
globalen
Variablen
ver
ä
ndert
die
Sichtbarkeit
wie
hier
beschrieben.
(
`static`
bei
lokalen
Variablen
in
Funktionen
sorgt
daf
ü
r
,
dass
der
Wert
der
Variablen
Funktionsaufrufe
hinweg
erhalten
bleibt.
)
Es
ist
dennoch
m
ö
glich
einen
Zeiger
auf
die
Funktion
an
andere
Module
zu
ü
bergeben
,
womit
man
den
indirekten
Aufruf
einer
`static`
Funktion
erlaubt.
-
Es
ist
nicht
m
ö
glich
,
Zeiger
als
Parameter
an
Funktionen
zu
ü
bergeben.
Nein
,
das
ist
m
ö
glich.
.
...
...
@@ -36,59 +37,59 @@ Ja, die *V*-Operation (ursprünglich vom Niederländischen *vrijgave* - freigebe
-
Bei
allen
Monitorkonzepten
(
*
Hansen
,
Hoare
,
Mesa
*
)
verl
ä
sst
der
Prozess
,
der
den
Eintritt
eines
Ereignisses
anzeigt
(
Signalgeber
)
,
den
Monitor
unmittelbar
nach
der
Signalisierung.
Nein
,
das
ist
nur
bei
*
Hansen
*
und
*
Hoare
*
der
Fall
,
bei
*
Mesa
*
kann
der
Signalgeber
im
Monitor
fortfahren.
(
vgl.
[
SP2
Kapitel
10.2
S.
13
](
https
://
sys.cs.fau.de
/
extern
/
lehre
/
ws23
/
sp2
/
vorlesung
/
folien
/
SP2
-
102
-
A4.pdf
))
+
Wartet
ein
Prozess
in
einem
Monitor
auf
ein
Ereignis
,
so
muss
er
den
Monitor
w
ä
hrend
der
Wartezeit
zwingend
freigeben
,
um
einer
Verklemmung
vorzubeugen.
Ja.
Sonst
k
ö
nnte
kein
anderer
Prozess
den
Monitor
betreten
,
um
die
Wartebedingung
aufzuheben.
Vergleiche
z.
B.
blockierende
Warteschlange.
W
ü
rde
hier
der
Konsument
den
Monitor
nicht
freigeben
,
so
k
ö
nnte
ein
Produzent
kein
Element
einf
ü
gen
,
es
liegt
also
eine
Verklemmung
vor.
Ja.
Sonst
k
ö
nnte
kein
anderer
Prozess
den
Monitor
betreten
,
um
die
Wartebedingung
aufzuheben.
Vergleiche
z.
B.
blockierende
Warteschlange.
W
ü
rde
hier
der
Konsument
den
Monitor
nicht
freigeben
,
so
k
ö
nnte
ein
Produzent
kein
Element
einf
ü
gen
,
es
liegt
also
eine
Verklemmung
vor.
-
Ein
Monitor
nach
Hansen
befreit
bei
der
Signalisierung
h
ö
chstens
einen
der
wartenden
Prozesse.
Nein
,
ein
Monitor
nach
*
Hansen
*
setzt
alle
Signalnehmer
auf
"bereit"
.
Dadurch
m
ü
ssen
Signalnehmer
auch
im
kritischen
Abschnitt
erneut
ü
berpr
ü
fen
,
ob
die
Wartebedingung
noch
gilt
(
vgl.
Semaphore
bei
*
jbuffer
*
)
.
Ein
Monitor
nach
*
Hoare
*
setzt
im
Gegensatz
dazu
nur
genau
einen
Signalnehmer
auf
"bereit"
.
(
vgl.
Folie
)
Nein
,
ein
Monitor
nach
*
Hansen
*
setzt
alle
Signalnehmer
auf
"bereit"
.
Dadurch
m
ü
ssen
Signalnehmer
auch
im
kritischen
Abschnitt
erneut
ü
berpr
ü
fen
,
ob
die
Wartebedingung
noch
gilt
(
vgl.
Semaphore
bei
*
jbuffer
*
)
.
Ein
Monitor
nach
*
Hoare
*
setzt
im
Gegensatz
dazu
nur
genau
einen
Signalnehmer
auf
"bereit"
.
(
vgl.
Folie
)
-
Wird
einem
Prozess
durch
einen
Monitor
nach
Hoare
die
Aufhebung
seiner
Wartebedingung
signalisiert
,
so
wird
die
Bedingung
erneut
ausgewertet
;
falsche
Signalisierungen
k
ö
nnen
also
toleriert
werden.
Nein
,
bei
einem
Monitor
nach
*
Hoare
*
wird
genau
ein
Prozess
auf
bereit
gesetzt.
Der
Prozess
darf
also
davon
ausgehen
,
dass
die
Bedingung
erf
ü
llt
ist
(
sonst
w
ä
re
nicht
signalisiert
worden
)
und
nicht
nebenl
ä
ufig
von
einem
anderen
Prozess
wieder
ver
ä
ndert
wurde
,
bevor
er
den
kritischen
Abschnitt
betreten
hat.
Man
betrachte
hier
z.
B.
das
Beispiel
*
blocking
queue
*.
Im
Modell
*
Hoare
*
ist
beim
Aufwecken
eines
Konsumententhreads
garantiert
,
dass
ein
Element
in
die
Warteschlange
gelegt
wurde.
Zudem
wurde
nur
h
ö
chstens
ein
Konsumententhread
aufgeweckt
,
also
wurde
das
Element
noch
nicht
herausgenommen.
Der
Konsument
(
Signalnehmer
)
darf
also
den
Monitor
betreten
und
das
Element
entnehmen
,
ohne
im
kritischen
Abschnitt
zu
ü
berpr
ü
fen
,
ob
ein
anderer
Konsument
schneller
war.
Ein
falsches
Signal
k
ö
nnte
hier
dazu
f
ü
hren
,
dass
aus
einer
leeren
Warteschlange
entnommen
wird.
Nein
,
bei
einem
Monitor
nach
*
Hoare
*
wird
genau
ein
Prozess
auf
bereit
gesetzt.
Der
Prozess
darf
also
davon
ausgehen
,
dass
die
Bedingung
erf
ü
llt
ist
(
sonst
w
ä
re
nicht
signalisiert
worden
)
und
nicht
nebenl
ä
ufig
von
einem
anderen
Prozess
wieder
ver
ä
ndert
wurde
,
bevor
er
den
kritischen
Abschnitt
betreten
hat.
Man
betrachte
hier
z.
B.
das
Beispiel
*
blocking
queue
*.
Im
Modell
*
Hoare
*
ist
beim
Aufwecken
eines
Konsumententhreads
garantiert
,
dass
ein
Element
in
die
Warteschlange
gelegt
wurde.
Zudem
wurde
nur
h
ö
chstens
ein
Konsumententhread
aufgeweckt
,
also
wurde
das
Element
noch
nicht
herausgenommen.
Der
Konsument
(
Signalnehmer
)
darf
also
den
Monitor
betreten
und
das
Element
entnehmen
,
ohne
im
kritischen
Abschnitt
zu
ü
berpr
ü
fen
,
ob
ein
anderer
Konsument
schneller
war.
Ein
falsches
Signal
k
ö
nnte
hier
dazu
f
ü
hren
,
dass
aus
einer
leeren
Warteschlange
entnommen
wird.
.
0
Welche
der
folgenden
Aussagen
ü
ber
UNIX
-
Dateisysteme
ist
richtig
?
(
2017
-
02
)
-
Der
Name
einer
Datei
wird
in
ihrem
Dateikopf
(
*
inode
*
)
gespeichert.
Nein
,
der
Name
wird
in
dem
Verzeichnis
gespeichert
,
das
die
Datei
enth
ä
lt.
Es
k
ö
nnen
auch
mehrere
Verzeichnisse
Eintr
ä
ge
mit
unterschiedlichen
Namen
haben
,
die
auf
dieselbe
*
inode
*
verweisen.
Nein
,
der
Name
wird
in
dem
Verzeichnis
gespeichert
,
das
die
Datei
enth
ä
lt.
Es
k
ö
nnen
auch
mehrere
Verzeichnisse
Eintr
ä
ge
mit
unterschiedlichen
Namen
haben
,
die
auf
dieselbe
*
inode
*
verweisen.
-
In
einem
Verzeichnis
darf
es
keinen
Eintrag
geben
,
der
auf
das
Verzeichnis
selbst
verweist.
Nein.
Jedes
Verzeichnis
enth
ä
lt
sogar
mindestens
einen
solchen
Eintrag
(
`.`
)
.
-
Auf
eine
Datei
in
einem
Dateisystem
verweisen
immer
mindestens
zwei
*
hard
-
links
*
Nein
,
auf
eine
regul
ä
re
Datei
muss
nur
mindestens
ein
*
hard
link
*
verweisen
,
damit
sie
nicht
gel
ö
scht
wird.
Die
Aussage
gilt
nur
f
ü
r
Verzeichnisse
,
die
immer
einen
Verweis
auf
sich
selbst
(
`.`
)
beinhalten
und
den
Verweis
des
Elternverzeichnisses
innehaben.
Nein.
Jedes
Verzeichnis
enth
ä
lt
sogar
mindestens
einen
solchen
Eintrag
(
`.`
,
der
Selbstverweis
)
.
-
Auf
eine
Datei
in
einem
Dateisystem
verweisen
immer
mindestens
zwei
*
hard
-
links
*
.
Nein
,
auf
eine
regul
ä
re
Datei
muss
nur
mindestens
ein
*
hard
link
*
verweisen
,
damit
sie
nicht
gel
ö
scht
wird.
Die
Aussage
gilt
nur
f
ü
r
Verzeichnisse
,
die
immer
einen
Verweis
auf
sich
selbst
(
`.`
)
beinhalten
und
den
Verweis
des
Elternverzeichnisses
innehaben.
+
Innerhalb
eines
Verzeichnisses
k
ö
nnen
mehrere
Verweise
auf
den
selben
*
inode
*
existieren
,
sofern
diese
unterschiedliche
Namen
haben.
Ja
,
das
kann
z.
B.
mit
`ln
datei
a
&
ln
datei
b
`
f
ü
r
eine
Datei
`datei`
im
aktuellen
Arbeitsverzeichnis
erzielt
werden.
Ja
,
das
kann
z.
B.
mit
`ln
datei
a
uch
-
datei
`
f
ü
r
eine
Datei
`datei`
im
aktuellen
Arbeitsverzeichnis
erzielt
werden
,
indem
die
neue
Datei
`auch
-
datei
`
erstellt
wird
welches
sich
die
gleiche
*
inode
*
teilt
.
.
1
Welche
der
folgenden
Aussagen
zum
Thema
persistenter
Datenspeicherung
sind
richtig
?
(
2017
-
02
)
-
Bei
kontinuierlicher
Speicherung
ist
es
immer
problemlos
m
ö
glich
,
bestehende
Dateien
zu
vergr
öß
ern.
Nein
,
eventuell
ist
der
Platz
nach
dem
Ende
der
Datei
bereits
belegt
,
weswegen
sie
nicht
*
in
-
place
*
vergr
öß
ert
werden
kann.
-
Bei
indizierter
Speicherung
kann
es
prinzipbedingt
nicht
zu
Verschnitt
kommen.
Nein
,
hier
ist
einer
Datei
eine
bestimmte
Anzahl
an
Bl
ö
cken
zugeordnet.
Ist
die
Datei
kleiner
als
diese
Bl
ö
cke
,
so
liegt
Verschnitt
vor.
Nein
,
hier
ist
einer
Datei
eine
bestimmte
Anzahl
an
Bl
ö
cken
zugeordnet.
Ist
die
Datei
kleiner
als
diese
Bl
ö
cke
,
so
liegt
Verschnitt
vor.
+
Bei
verketteter
Speicherung
mittels
FAT
-
Ansatz
kann
die
Verkettungsinformation
redundant
gespeichert
werden
,
um
die
Fehleranf
ä
lligkeit
zu
reduzieren.
Ja
,
das
ist
m
ö
glich.
-
Im
Vergleich
zu
den
anderen
Verfahren
ist
bei
indizierter
Speicherung
die
Positionierzeit
des
Festplatten
-
Armes
beim
Zugriff
auf
alle
Datenbl
ö
cke
einer
Datei
minimal.
Nein
,
das
w
ä
re
bei
sequentieller
Speicherung
der
Fall.
Die
Bl
ö
cke
einer
Datei
bei
indizierter
Speicherung
liegen
nicht
notwendigerweise
nah
beieinander.
Nein
,
das
w
ä
re
bei
sequentieller
Speicherung
der
Fall.
Die
Bl
ö
cke
einer
Datei
bei
indizierter
Speicherung
liegen
nicht
notwendigerweise
nah
beieinander.
+
Beim
Einsatz
von
RAID
1
kann
eine
der
beteiligten
Platten
ausfallen
,
ohne
dass
das
Gesamtsystem
ausf
ä
llt.
Ja
,
RAID
1
verteilt
die
Daten
redundant
ü
ber
zwei
oder
mehr
Platten.
F
ä
llt
eine
Platte
aus
,
so
gibt
es
noch
mindestens
eine
Kopie.
Ja
,
RAID
1
verteilt
die
Daten
redundant
ü
ber
zwei
oder
mehr
Platten.
F
ä
llt
eine
Platte
aus
,
so
gibt
es
noch
mindestens
eine
Kopie.
-
Beim
Einsatz
von
RAID
0
kann
eine
der
beteiligten
Platten
ausfallen
,
ohne
dass
das
Gesamtsystem
ausf
ä
llt.
Nein
,
RAID
0
verteilt
die
Daten
per
*
striping
*
nicht
redundant
auf
die
Platten
,
sondern
erzielt
nur
einen
Geschwindigkeitsvorteil
,
dadurch
dass
auf
mehrere
Platten
gleichzeitig
geschrieben
oder
von
mehreren
Platten
gleichzeitig
gelesen
werden
kann.
+
Journaling
-
Dateisysteme
garantieren
,
dass
auch
nach
einem
Systemausfall
alle
Metadaten
wieder
in
einen
konsistenten
Zustand
gebracht
werden
k
ö
nnen.
Ja
,
auch
die
Transaktionalit
ä
t
der
Ä
nderung
von
Metadaten
wird
dadurch
erzielt
,
dass
Beginn
und
Fertigstellung
aller
Ä
nderungen
am
Dateisystem
in
einem
Journal
aufgezeichnet
werden
,
das
beim
Hochfahren
auf
Vollst
ä
ndigkeit
aller
Transaktionen
ü
berpr
ü
ft
wird.
+
Festplatten
eignen
sich
besser
f
ü
r
sequentielle
als
f
ü
r
wahlfreie
Zugriffsmuster.
Ja
,
bei
Festplatten
(
*
HDD
*
s
)
muss
auf
physikalischer
Ebene
der
Lese
-/
Schreibarm
sich
an
der
Stelle
befinden
,
an
der
die
gew
ü
nschten
Daten
auf
der
Magnetscheibe
stehen.
Bei
wahlfreiem
Zugriff
muss
dieser
zwischen
den
nicht
beieinanderliegenden
Sektoren
bewegt
werden
,
bei
sequentiellem
Zugriff
kann
entlang
der
Spur
gelesen
werden.
Ja
,
bei
Festplatten
(
*
HDD
*
s
)
muss
auf
physikalischer
Ebene
der
Lese
-/
Schreibarm
sich
an
der
Stelle
befinden
,
an
der
die
gew
ü
nschten
Daten
auf
der
Magnetscheibe
stehen.
Bei
wahlfreiem
Zugriff
muss
dieser
zwischen
den
nicht
beieinanderliegenden
Sektoren
bewegt
werden
,
bei
sequentiellem
Zugriff
kann
entlang
der
Spur
gelesen
werden.
.
1
Welche
der
folgenden
Aussagen
zur
Einplanung
von
Prozessen
sind
richtig
?
(
2017
-
02
)
+
Bei
kooperativer
Einplanung
kann
es
zur
Monopolisierung
der
CPU
kommen
Ja
,
bei
kooperativer
Einplanung
muss
das
Programm
per
Systemaufruf
die
Ressource
CPU
abgeben.
Ein
unkooperatives
Programm
kann
dies
unterlassen
,
und
die
CPU
monopolisieren.
Ja
,
bei
kooperativer
Einplanung
muss
das
Programm
per
Systemaufruf
die
Ressource
CPU
abgeben.
Ein
unkooperatives
Programm
kann
dies
unterlassen
,
und
die
CPU
monopolisieren.
-
Bei
der
Verwendung
des
Round
-
Robin
-
Verfahrens
kann
der
Konvoi
-
Effekt
nicht
auftreten.
Nein
,
der
Konvoieffekt
existiert
auch
hier
,
da
die
Vergabe
der
Zeitscheiben
reihum
wie
bei
*
FCFS
*
funktioniert.
Prozesse
mit
langen
Rechenst
öß
en
nutzen
hier
ihre
Zeitscheibe
voll
aus
,
w
ä
hrend
E
/
A
-
intensive
Prozesse
benachteiligt
sind.
Nein
,
der
Konvoieffekt
existiert
auch
hier
,
da
die
Vergabe
der
Zeitscheiben
reihum
wie
bei
*
FCFS
*
funktioniert.
Prozesse
mit
langen
Rechenst
öß
en
nutzen
hier
ihre
Zeitscheibe
voll
aus
,
w
ä
hrend
E
/
A
-
intensive
Prozesse
benachteiligt
sind.
+
Der
Einsatz
des
*
FCFS
*-
Verfahrens
setzt
kooperative
Prozesse
voraus.
Ja
,
*
FCFS
*
ist
ein
kooperatives
Einplanungsverfahren.
Ein
unkooperativer
Prozess
k
ö
nnte
hier
die
CPU
monopolisieren.
Ja
,
*
FCFS
*
ist
ein
kooperatives
Einplanungsverfahren.
Ein
unkooperativer
Prozess
k
ö
nnte
hier
die
CPU
monopolisieren.
-
Die
Verwendung
probabilistischer
Einplanungsverfahren
ist
nur
m
ö
glich
,
wenn
dem
Planer
alle
Prozesse
und
ihre
CPU
-
Sto
ß
l
ä
ngen
im
Voraus
bekannt
sind.
Nein
,
probabilistische
Einplanungsverfahren
arbeiten
mit
Absch
ä
tzungen
der
ben
ö
tigten
Sto
ß
l
ä
ngen.
+
In
einem
asymmetrischen
Multiprozessorsystem
ist
der
Einsatz
asymmetrischer
Einplanungsverfahren
obligatorisch.
Ja.
Man
betrachte
z.
B.
den
Fall
CPU
+
GPU.
Ein
Prozess
,
der
auf
der
CPU
rechnen
m
ö
chte
,
kann
nicht
unbedingt
auch
auf
der
GPU
rechnen.
Deswegen
ist
der
Einsatz
einer
Bereitliste
f
ü
r
alle
Rechenkerne
(
symmetrisches
Planungsverfahren
)
hier
unm
ö
glich.
Stattdessen
m
ü
ssen
zumindest
f
ü
r
GPU
und
CPU
separate
Bereitlisten
existieren.
Dies
zeichnet
asymmetrische
Planungsverfahren
aus.
Ja.
Man
betrachte
z.
B.
den
Fall
CPU
+
GPU.
Ein
Prozess
,
der
auf
der
CPU
rechnen
m
ö
chte
,
kann
nicht
unbedingt
auch
auf
der
GPU
rechnen.
Deswegen
ist
der
Einsatz
einer
Bereitliste
f
ü
r
alle
Rechenkerne
(
symmetrisches
Planungsverfahren
)
hier
unm
ö
glich.
Stattdessen
m
ü
ssen
zumindest
f
ü
r
GPU
und
CPU
separate
Bereitlisten
existieren.
Dies
zeichnet
asymmetrische
Planungsverfahren
aus.
-
Statische
(
off
-
line
)
Einplanungsverfahren
sind
besonders
f
ü
r
den
Einsatz
in
interaktiven
Systemen
geeignet.
Nein.
*
offline
*
Algorithmen
sind
alle
Eingabedaten
wie
z.
B.
die
zu
planenden
Prozesse
im
Voraus
bekannt.
Damit
sind
sie
f
ü
r
interaktiven
Betrieb
ungeeignet
,
da
dort
zur
Laufzeit
vorher
unbekannte
Anforderungen
auftreten.
Nein.
*
offline
*
Algorithmen
sind
alle
Eingabedaten
wie
z.
B.
die
zu
planenden
Prozesse
im
Voraus
bekannt.
Damit
sind
sie
f
ü
r
interaktiven
Betrieb
ungeeignet
,
da
dort
zur
Laufzeit
vorher
unbekannte
Anforderungen
auftreten.
-
Virtual
-
Round
-
Robin
benachteiligt
E
/
A
-
intensive
Prozesse
zu
Gunsten
von
rechenintensiven
Prozessen.
Nein.
Bei
*
VRR
*
werden
Prozesse
,
die
eine
Ein
-
oder
Ausgabe
beenden
,
bevorzugt
eingeplant.
Bei
Ende
einer
Zeitscheibe
werden
dann
zuerst
die
Prozesse
auf
der
Vorzugsliste
eingelastet.
Nein.
Bei
*
VRR
*
werden
Prozesse
,
die
eine
Ein
-
oder
Ausgabe
beenden
,
bevorzugt
eingeplant.
Bei
Ende
einer
Zeitscheibe
werden
dann
zuerst
die
Prozesse
auf
der
Vorzugsliste
eingelastet.
+
Beim
Einsatz
des
multilevel
-
queue
-
Verfahrens
(
MLQ
)
werden
die
Prozesse
nach
ihrem
Typ
in
separate
Bereitlisten
aufgeteilt
,
die
jeweils
eine
eigene
lokale
Einplanungsstrategie
verwenden.
Ja
,
bei
diesem
Verfahren
werden
mehrere
Bereitlisten
f
ü
r
unterschiedliche
Arten
von
Prozessen
(
z.
B.
System
-,
Dialog
-
und
Stapelprozesse
)
verwendet.
Jede
dieser
Listen
verwendet
eine
lokale
Einplanungsstrategie.
(
Um
zwischen
den
Listen
zu
wechseln
wird
zus
ä
tzlich
eine
globale
Strategie
verwendet
)
.
Ja
,
bei
diesem
Verfahren
werden
mehrere
Bereitlisten
f
ü
r
unterschiedliche
Arten
von
Prozessen
(
z.
B.
System
-,
Dialog
-
und
Stapelprozesse
)
verwendet.
Jede
dieser
Listen
verwendet
eine
lokale
Einplanungsstrategie.
(
Um
zwischen
den
Listen
zu
wechseln
wird
zus
ä
tzlich
eine
globale
Strategie
verwendet
)
.
.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment