Tentin tekstisisältö

TIE-02500 Rinnakkaisuus - 26.08.2015

Tentin tekstisisältö

Teksti on luotu tekstintunnistuksella alkuperäisestä tenttitiedostosta, joten se voi sisältää virheellistä tai puutteellista tietoa. Esimerkiksi matemaattisia merkkejä ei voida esitää oikein. Tekstiä käytetään pääasiassa hakutulosten luomiseen.

Alkuperäinen tentti
 

TIE-02500 Rinnakkaisuus

Tentti 26.8.2015

 

 

Tentin vastuuhenkilö: jyke.savialtut.fi

Laskimen käyttö on kiellettyä.

Tenttiohjesäännön 28 mukainen ilmoitus: tenttipaperia ei tarvitse palauttaa, mutta siitä ei
saa tehdä paperilennokkia eikä sillä saa roskata luontoa.

Muista kirjoittaa kaikkiin vastauspapereihin nimesi ja opiskelijanumerosi.

Vastauksessa oleta vastaavasi sellaisen ihmisen esittämään kysymykseen, joka tuntee kohtalaisen hyvin ohjelmistotekniikan
aihealuetta muutoin paitsi juuri tämän kysymyksen osalta. Mieti etukäteen vastauksesi pääkohdat ja lajittele ne johdonmu-
kaiseen järjestykseen — älä kirjoita yhteen pötköön kaikkea mieleen tulevaa. Muista vastata kaikkiin tehtävän kysymys-
lauseisiin, sillä täysiä pisteitä ei voi saada jos kaikkiin kysyttyihin asioihin ei ole vastattu. Jos vastaus vaatii ohjelmakoodin
kirjoitamista, sen ci tarvitse olla pilkulleen syntaksiltaan oikein. Mikä tahansa johdonmukaisesti käytetty ja yleisessä käytössä
olevia ohjelmointirakenteita sisältävä koodin esitysmuoto käy.

 

 

 

 

 

Ohjelma 1: Vähennysohjelma

namespace moduuli (
unsigned int CountDown = 42;

void Vahenna() (
unsigned int TyoKopio =
TyoKopio = TyoKopio — 1;
CountDown = TyoKopio;

CountDown ;

J

1. Ohjelman 1 funktiota Vahenna () kutsuu ohjelman käynnistyksen jälkeen kaksi suoritussäiettä.
Molempien tulisi vähentää muuttujan CountDown arvoa yhdellä, joten odotettu lopputulos on
40. Näin ei ohjelmoijan hämmästykseksi kuitenkaan aina tapahdu. Op.
(a) [3 pistettä] Miksi lopputulos voi ollä väärä? Selosta yksi suoritusketju, jossa odotettu lop-
putulos saadaan ja toinen, joka menee pieleen.
(b) [3 pistettä] Mitä on suoritussäikeiden poissulkeminen? Miten sen avulla ohjelmassa voitai-
siin varmistaa, että odotettu lopputulos saadaan laskennassa aina? Tee tarvittavat muutokset
ohjelmaan.

sivu 1 /2
 

 

2. Kerro lyhyesti mitä seuraavat asiat ovat?

(a) [1 piste] Rinnakkaisen ohjelman lukkiutuminen (deadlock)

(b) [1 piste] Suoritussäikeen nälkiintyminen (starvation)

(c) [1 piste] Suoritussäikeiden välinen synkronointi?

(d) [2 pistettä] Atominen konekäsky. Anna esimerkki tällaisesta käskystä (selosta myös mitä
käsky tekee — pelkkä nimi ei riitä)

(e) [2 pistettä] rw-lukko (read-write lock). Miten toimii? Missä tilanteissa sitä tyypillisesti voi
käyttää rinnakkaisessa ohjelmassa?

(9) [2 pistettä] Minkälainen rinnakkaisuuden hallintamekanismi on futuuri (future) ohjelmoin-
tikielissä?

(g) [2 pistettä] Mitä on ohjelmointikirjaston säieturvallisuus (thread safety)?

3. [6 pistettä] Minkälainen rinnakkaisuuden hallintamekanismi on Semafori? Semaforilla voi luon-
nin yhteydessä olla alkuarvona esimerkiksi nolla, yksi tai viisi. Mihin käyttötarkoitukseen kulla-
kin alkuarvolla alustettua semaforia voi käyttää (mikä on oletettu käyttötarkoitus arvon perusteel-

la)?

4. [6 pistettä] *Klassinen” rinnakkaisuuden esimerkki on tuottaja-kuluttaja (producer-consumer).
elosta minkälaisesta ohjelman rakenteesta on kyse?|Minkälaisia rinnakkaisuuden ongelmia ra-
kenteen käyttöön liittyy?] Hahmottele säieturvallinen ohjelmakoodiratkaisu ongelmaan kun käy-
tössäsi on PIHREADS-säiekirjaston operaatiot lukkojen (mutex) ja ehtomuuttujien (cond) käyt-
töön (säikeiden luonnin oletetaan tapahtuvan tämän koodin ulkopuolella, joten sitä ei tarvitse ot-
taa hahmotelmaan muasa) Artsa ei vähennetä pisteitä syntaksiltaan väärin kirjoitetusta
ohjelmakoodista (kunhan merkityksen ymmärtää), eikä tarvitse tarkalleen muistaa pthread -
rutiinien nimiä (kunhan merkinnästä ymmärtää mikä looginen operaatio tehdään.

TIE-02500 Rinnakkaisuus tentti 26.8.2015 sivu2 /2

 


Käytämme evästeitä

Tämä sivusto käyttää evästeitä, mukaanlukien kolmansien puolten evästeitä, vain sivuston toiminnan kannalta välttämättömiin tarkoituksiin, kuten asetusten tallentamiseen käyttäjän laitteelle, käyttäjäistuntojen ylläpitoon ja palvelujen toiminnan mahdollistamiseen. Sivusto kerää käyttäjästä myös muuta tietoa, kuten käyttäjän IP-osoitteen ja selaimen tyypin. Tätä tietoa käytetään sivuston toiminnan ja tietoturvallisuuden varmistamiseen. Kerättyä tietoa voi päätyä myös kolmansien osapuolten käsiteltäväksi sivuston palvelujen tavanomaisen toiminnan seurauksena.

FI / EN