Hyppää sisältöön
    • Suomeksi
    • In English
Trepo
  • Suomeksi
  • In English
  • Kirjaudu
Näytä viite 
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
JavaScript is disabled for your browser. Some features of this site may not work without it.

Samanaikaisohjelmointi C++20-ohjelmointikielen avulla

Nikki, Joni (2021)

 
Avaa tiedosto
NikkiJoni.pdf (745.6Kt)
Lataukset: 



Nikki, Joni
2021

Tietojenkäsittelytieteiden kandidaattiohjelma - Bachelor's Programme in Computer Sciences
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-06-03
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202105265489
Tiivistelmä
Samanaikaisohjelmoinnin tarve ilmenee luonnollisesti monisäikeistetyssä ympäristössä, jossa jaettujen resurssien omistajuutta on hallittava eri ohjauksen synkronointimekanismein. Moniytimellisissä järjestelmissä fyysisten ytimien yhteisen laskennallisen tehon valjastamiseksi on tehtävä ilmaistava sen koostavilla alitehtävillä, jotka suorittavien aliohjelmien laskentojen tuloksien koostuma edustaa tehtävän tulosta. Luonnollisesti seuraa, että samanaikaisuuden ilmaiseminen on nykypäivän tyypillisissä ohjelmistoympäristöissä suoritettavien ohjelmien ilmeinen tarve.
Tässä tutkielmassa käsitellään C++20-standardin määrittelemän C++-ohjelmointikielen kykenevyyttä samanaikaisten ja rinnakkaisten ongelmien ilmaisemisessa sikäli kuin ilmaisun mahdollistaa standardin määrittelemä standardikirjasto tai C++20:ssa lisätyt vuorottaisrutiinit. Tekstissä osoitetaan, että C++20 tarjoaa keinoja niin kilpailevan samanaikaisuuden kuin yhteistyömoniajon harjoittamiseen ja että vuorottaisrutiinit ovat ilmaisuvoimainen ja suorituskyvyllisesti etevä tapa toteuttaa tyypillisiä samanaikaisohjelmoinnissa käytettyjä rakenteita ja idiomeja.
Kirjallisuuskatsauksena toteutetussa tutkielmassa painotettiin lähteitä, jotka käsittelivät vuorottaisrutiineja samanaikaisohjelmoinnin työkaluna, ja joiden avulla pystyttiin kartoittamaan vuorottaisrutiineille ominaisia sovellusalueita. Esimerkiksi huomataan, että vuorottaisrutiinit korvaavat osin FSM:n (Finite State Machine) ja CPS:n (Continuous Passing Style) sovellusalueita niiden ergonomisuuden vuoksi ja että vuorottaisrutiinien edellyttämä kekovaraus on vältettävissä tiettyjen ehtojen täyttyessä, mikä parantaa niiden käyttöönottoastetta sulautetuissa ja muuten niukkaresurssisissa järjestelmissä.
Tutkielmassa perehdytään myös siihen, miten C++:n samanaikaisuuden ja rinnakkaisuuden ilmaisukeinoja voisi vielä parantaa. Todetaan, että standardikirjaston tuki hajautetuille järjestelmille on olematonta, minkä takia hajautettua laskentaa harjoittava ohjelma on työlästä toteuttaa C++:lla ja että vuorottaisrutiinien kirjastotuki jää minimaaliseksi, missä ohjelmoijan on tehtävä itse yleisiä vuorottaisrutiinitoteutuksia kuten generator ja task.
Kokoelmat
  • Kandidaatintutkielmat [10898]
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste
 

 

Selaa kokoelmaa

TekijätNimekkeetTiedekunta (2019 -)Tiedekunta (- 2018)Tutkinto-ohjelmat ja opintosuunnatAvainsanatJulkaisuajatKokoelmat

Omat tiedot

Kirjaudu sisäänRekisteröidy
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste