Ero sivun ”Kriittinen alue” versioiden välillä

[katsottu versio][katsottu versio]
Poistettu sisältö Lisätty sisältö
p →‎Lähteet: Korjattu luvun numero
pEi muokkausyhteenvetoa
Rivi 1:
'''Kriittinen alue''' (critical section) on sellainen osa tietokoneohjelmaa, joka käsittelee jonkin toisen [[prosessi (tietotekniikka)|prosessin]] tai säikeen kanssa yhteistä muistipaikkaa tai muuta resurssia.
 
Jos vähintään kaksi eri prosessia tai säiettä muuttaa samaa muistipaikkaa yhtä aikaa, on päivityksen tulos on usein väärä. Siksi on tärkeää tunnistaa tällaiset ohjelman osat eli kriittiset alueet ja tarvittaessa suojata ne [[poissulkeminen|poissulkemisen]] avulla. Ongelma esiintyy vain silloin, jos muuttujaa päivitetään, sillä monenkaan prosessin tekemä yhtäaikainen lukeminen ei aiheuta virhetoimintoja.
 
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.
Rivi 13:
*Ilkka Haikala ja Hannu-Matti Järvinen: ''Käyttöjärjestelmät'' (luku 3). Talentum 2003. ISBN 951-762-837-4
 
[[Luokka:TietojenkäsittelytiedeOhjelmointi]]
 
[[ca:Secció crítica]]