Ero sivun ”Kriittinen alue” versioiden välillä

[katsottu versio][katsottu versio]
Poistettu sisältö Lisätty sisältö
p →‎Katso myös: Poistettu outo viittaus synkronointiin
p keskeytyspalvelu viittaamaan keskeytyksiin
 
Rivi 5:
Kriittisen alueen ei tarvitse olla monimutkainen. Muuttujan arvon kasvattaminen yhdellä (ohjelmointikielellä siis a := a+1) on ilman poissulkemista altis ongelmille. Jos kuvittelemme, että meillä on kaksi [[suoritin]]ta, jotka ajavat a:ta kasvattavan ohjelmakoodin täsmälleen yhtä aikaa, huomaamme, että päivitys ei toimi oikein. Jos a:n arvo on alussa vaikkapa 1, pitäisi kahden lauseen a := a+1 jälkeen arvon olla 3, mutta jos nämä lauseet suoritetaan täsmälleen yhtä aikaa, kumpikin suoritin lukee a:n arvoksi yksi, kasvattaa sitä sen jälkeen yhdellä ja tallettaa a:ksi kaksi.
 
Ongelmaan ei tarvita kahta suoritinta, sillä jos prosessia tai säiettä vaihdetaan kesken kriittisen alueen suorituksen, voidaan päätyä samaan tulokseen. [[Käyttöjärjestelmä]]n ytimessä sama ongelma esiintyy myös siinä muodossa, että ydin käsittelee jotain muuttujaa, jota jokin [[keskeytys (tietotekniikka)|keskeytyspalvelu]] päivittää.
 
Myös muut resurssit kuin muisti on altis ongelmalle. Esimerkiksi jos kaksi prosessia pääsee yhtä aikaa ohjaamaan [[tulostin]]ta, on tuloste käyttökelvoton.