Jaettujen resurssien turvallinen käyttö yhtäaikaisuusohjelmoinnissa - lähestymistavat ja työkalut
Pasharin, Aleksandr (2023)
Pasharin, Aleksandr
2023
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202304014582
https://urn.fi/URN:NBN:fi:amk-202304014582
Tiivistelmä
Tässä lopputyössä tutkimme yhteisten jaettujen resurssien käyttöön yhtäaikaisohjelmoinnissa liittyviä ongelmia. Aloitamme selvittämällä, mistä ongelmat tarkasti ottaen johtuvat. Opimme, että taustalla on toisaalta kilpailutilanteen mahdollisuus ja toisaalta myös datan näkyvyyteen liittyvät realiteetit nykyisissä moniydintietokoneissa.
Tämän jälkeen siirrymme ratkaisujen pariin. Otamme kolme konkreettista ohjelmointikieltä: Java, Clojure ja Rust ja tarkastelemme joitakin tyypillisiä työkaluja, joita nämä tarjoavat ongelmaan. Vertaamme näitä työkaluja ja ylipäätään näiden kielten erilaisia lähestymistapoja ongelmaan. Opimme, että mitä enemmän kieli rajoittaa sen käyttäjän mahdollisuuksia, sitä turvallisempaa yhtäaikaisohjelmointi tällä kielellä on.
Tämän jälkeen siirrymme ratkaisujen pariin. Otamme kolme konkreettista ohjelmointikieltä: Java, Clojure ja Rust ja tarkastelemme joitakin tyypillisiä työkaluja, joita nämä tarjoavat ongelmaan. Vertaamme näitä työkaluja ja ylipäätään näiden kielten erilaisia lähestymistapoja ongelmaan. Opimme, että mitä enemmän kieli rajoittaa sen käyttäjän mahdollisuuksia, sitä turvallisempaa yhtäaikaisohjelmointi tällä kielellä on.