lokitusjärjestelmät
Lokitusjärjestelmät ovat mekanismeja, joiden avulla useat prosessit tai säikeet voivat hallita jaettua resurssia siten, että tiedot pysyvät eheänä ja toiminnot suoritetaan oikeassa järjestyksessä rinnakkaisessa ympäristössä. Niiden tarkoituksena on estää kilpailutilanteet, datavirheet ja epäjohdonmukaisuudet, kun useat toimijat yrittävät muuttaa samaa dataa tai käyttää samaa resurssia samanaikaisesti.
- Pessimistic locking: resurssi lukitaan välittömästi pääsyn yhteydessä, jotta muut eivät pääse käsiksi ennen varmistettua vapauttamista. Tämä
- Optimistic locking: lukkoja ei oleskella pääsyn aikana; ristiriidat havaitaan ja ratkaistaan yleensä takaisinyrityksen kautta tapahtumankerroilla, esimerkiksi
- Lukon granulaatio (coarse-grained vs. fine-grained): coarse-grained lukitsee suuremman yksikön (esimerkiksi koko taulukon), fine-grained pienemmän yksikön (esimerkiksi
- Lukon tilat: yhteinen (shared) ja yksinoikeus (exclusive) määrittelevät, voivatko useat lukijat samaan aikaan lukea vai voiko
- Tietokannat ja tietovarastot: rivilukot, sivulukot sekä kahdenvaiheinen lukitus; pääasiallisena tarkoituksena on ylläpitää ACID-periaatteita ja määritellä eristyksen
- Käyttöjärjestelmät ja ohjelmistoa kehittävä koodi: mutex- ja spinlock-lukot, lukija-kirjoittaja lukot sekä semaforit.
- Hajautetut järjestelmät: hajautetut lukitusmekanismit ja palvelut, kuten Zookeeperin tai etdin hajautetut lukitukset; joitakin toteutuksia täydentävät ratkaisut,
Keskeisiä ilmiöitä ovat kuolevan lukitus, livelock sekä nälkä (starvation). Prioriteetin inversio ja lukitusstrategian väärä valinta voivat