21: Frábrigði og ferli Flashcards
Frábrigði
(exceptions)
Ferli
(processes)
Fjölvinnsla
(multiprocessing)
Samhengisskipti
(context switch)
Örgjörvar gera aðeins einn hlut:
Frá ræsingu þar til slökkt er á þeim, þá lesa þeir og framkvæma runu skipana, eina í einu
Þessi skipanaruna er stýriflæði (control flow) örgjörvans
Breyting á stýriflæði
Skilyrt og óskilyrt stökk
Kall á stef og endurkoma úr stefi
Afbrigðilegt stýriflæði (ECF)
Lægra lags aðferðir:
– 1. Frábrigði (exceptions)
* Breytingar í stýriflæði til að bregðast við kerfisatburði (t.d. breyting í
stöðu kerfisins)
* Útfært með blöndu af vélbúnaði og stýrikerfishugbúnaði
* Hærra lags aðferðir:
– 2. Samhengisskipti ferla (process context switch)
* Útfært af stýrikerfi og vélbúnaðarklukku
– 3. Merki (signals)
* Útfært af stýrikerfi
– 4. Fjarlæg stökk (nonlocal jumps): setjmp() og longjmp()
* Útfært af keyrslusafni C (C runtime library)
Hvað er Frábrigði (exceptions)?
Frábrigði er afhending stjórnunar yfir til stýrikerfiskjarna sem viðbragð við atburði (event) (þ.e., breyting í örgjörvastöðu)
Frábrigðatöflur (exception tables)
Sérhver atburðategund hefur
einkvæmt frábrigðanúmer k
k = vísir inn í frábrigðatöflu
(líka nefnt ígripsvigur (interrupt
vector))
Kallað á sýslara (handler) k í
hvert sinn sem frábrigði k
gerist
Ósamhæfð (asynchronous) frábrigði?
Ígrip (interrupts)
Samhæfð (synchronous) frábrigði ?
Gildrur (traps), Gallar (faults), Vinnslurof (aborts)
Ósamhæfð frábrigði (ígrip)
Atburðir fyrir utan örgjörvann valda ígripum, Gefið til kynna með ígripspinna á kubbi örgjörvans
Frábrigðssýslari fer svo til baka í “næstu” skipun forrits
Samhæfð frábrigði
Koma til vegna keyrslu á skipun í notandaforriti
Gildrur (traps)
Af ásettu ráði
Dæmi: kerfisköll, rofstaðir (breakpoints), sérstakar skipanir
Fara til baka í “næstu” skipun forrits
Gallar (faults)
Óviljandi, en líklega hægt að leysa úr
Dæmi: síðutöf (page fault)
Annað hvort endurkeyra “núverandi” skipun eða hætta keyrslu