Exam text content

TIE-02500 Rinnakkaisuus - 12.05.2017 (Tentti, Savia)

Exam text content

The text is generated with Optical Image Recognition from the original exam file and it can therefore contain erroneus or incomplete information. For example, mathematical symbols cannot be rendered correctly. The text is mainly used for generating search results.

Original exam
TIE-02500 Rinnakkaisuus

Tentti 12.5.2017

 

 

Tentin vastuuhenkilö: jyke.savialtut.fi
Laskimen käyttö on kiellettyä.
Muista kirjoittaa kaikkiin vastauspapereihin nimesi ja opiskelijanumerosi.

Vastauksessa oleta vastaavasi sellaisen ihmisen esittä

 

ää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 johdon-
mukaiseen 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 ei tarvitse olla pilkulleen syntaksiltaan oikein. Mikä tahansa johdonmukaisesti käytetty ja yleisessä käytössä

 

 

olevia ohjelmointirakenteita sisältävä koodin esitysmuoto käy.

 

 

 

 

1. Termi Data Race on määritelty: Op.
e kaksi tai useampi säiettä yhden prosessin sisällä käsittelee samaa muistipaikkaa
e vähintää yksi käsittelyoperaatioista on muistiin kirjoitus

e säikeet eivät koordinoi toimintaansa mitenkään (esim. lukoilla)

 

(a) [2 pistettä] Mitä säie ja prosessi tarkoittavat määrittelyssä?

(b) [2 pistettä] Anna esimerkki tilanteesta, jossa säikeet voivat toimia väärin Data Race:n takia
(koodi ja selostus virheestä)

(c) [2 pistettä] Mikä on säieohjelmoinnin lukko ja miksi se ratkaisee Data Race -tilanteen?

2. Barrier-synkronointi. Op.
(a) [2 pistettä] Mikä on Barrier-rakenteen käyttötarkoitus rinnakkaisessa ohjelmoinnissa?

(b) [1 piste] Anna käytännön esimerkki tilanteesta, jossa Barrieria voi/kannattaa käyttää rin-
nakkaisessa ohjelmassa

(c) [3 pistettä] Määrittele C++-luokka, joka toteuttaa Barrierin. Hahmottele luokan rajapinta
(metodit), toteutus ja anna myös esimerkki siitä miten Barrier-luokkaasi käytetään. (Keskity
luokkaan ja siitä tehdyn instanssin eli olion käyttämiseen. Säikeiden luontia tms. EI tarvitse
olla vastauksessasi mukana.)

 

sivu 1 /2

 
 

3. Ovatko seuraavat väittämät oikein vai väärin?
Jos väärin, niin kerro mitä väittämässä on pielessä (vaikka kohdan väite olisi väärin, niin siitä ei
saa pisteitä jos perustelua ei ole olemassa). Sp.
(a) [1 piste] Ohjelma 1 toteuttaa poissulkemisen kunhan säikeet muistavat aina ennen kriittistä
aluetta kutsua rutiinia enter () ja poistuessaan rutiinia exit ().

 

 

1 | bool varattuna = false;
2
3 | void enter()
41(
5 while( varattuna == true )
6 5
7 varattuna = true;
8 |)
9
10 | void exit()
11 | €
12 varattuna = false;
13 | )
Ohjelma 1: Poissulkeminen
(b) [1 piste] Ohjelmoija ei voi mitenkään tietää ohjelman 2 muuttujista ovatko ne säikeille yhteistä

muistia vai pelkästään säikeen omassa käytössä.

 

namespace (
int A = 42;

void funktio( double param ) (
int i = O;
N

 

0 d4Aau s WD —

 

 

Ohjelma 2: Muisti

(c

[1 piste] Säieturvallinen ohjelmakirjasto lupaa, että kirjaston rutiineja (funktioita) voi kutsua
useammasta säikeestä ilman lukituksia (kirjasto itse pitää huolen siitä, että rutiinit toimivat
luvatulla tavalla riippumatta yhtäaikaisten kutsujen määrästä).

(d) [1 piste] Säikeitä käyttävässä ohjelmassa voi olla käytössä vain yksi lukko (mutex).
(e) [1 piste] Rinnakkaisessa ohjelmoinnissa monitori on rakenne, joka tutkii ovatko säikeet men-
neet jumiin (deadlock).
4. Kerro lyhyesti mitä seuraavat asiat ovat? Ap.

(a) [2 pistettä] Mitä on GPU (Graphics Processing Unit) laskenta? Miksi sen voidaan sanoa
olevan massivisen rinnakkaista?

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

TIE-02500 Rinnakkaisuus tentti 12.5.2017 sivu2 /2


We use cookies

This website uses cookies, including third-party cookies, only for necessary purposes such as saving settings on the user's device, keeping track of user sessions and for providing the services included on the website. This website also collects other data, such as the IP address of the user and the type of web browser used. This information is collected to ensure the operation and security of the website. The collected information can also be used by third parties to enable the ordinary operation of the website.

FI / EN