Exam text content

TIE-02500 Rinnakkaisuus - 03.10.2016

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
O 084d4aun sw N +

TIE-02500 Rinnakkaisuus

Tentti 3.10.2016

 

 

Tentin vastuuhenkilö: jyke.savia(Ctut.fi

Laskimen käyttö on kiellettyä.

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 johdon-

mukaiseen järjestykseen — joita yhteen pi

   

5n kaikkea mieleen tulevaa. Muista vastata kaikkiin tehtävän kysymys-
lauseisiin, sillä täysiä pisteitä ei voi saada jos kaikkiin kysyttyihin asioihin ci 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.

 

 

 

 

 

 

 

namespace moduuli (
unsigned int CountDown = 42;

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

CountDown ;

 

 

Ohjelma 1: Vähennysohjelma

+ Ohjelman 1 funktiota Vahenna () kutsuu ohjelman käynnistyksen jälkeen kaksi suoritussäiettä.

Molempien tulisi vähentää muuttujan Count Down arvoa yhdellä, joten odotettu lopputulos on
40. Näin ei ohjelmoijan hämmästykseksi kuitenkaan aina tapahdu.

(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 voitaisi-
in varmistaa, että odotettu lopputulos saadaan laskennassa aina? Tee tarvittavat muutokset
ohjelmaan.

sivu 1 /2

Op.
 

2. Kerro lyhyesti mitä seuraavat asiat ovat? 13p.

(a) [1 piste] Miksi rinnakkaisuus on tällä hetkellä ohjelmoinnissa tärkeä aihepiiri (ts. miksi
jokaisen ohjelmoijan tulisi osata rinnakkaista ohjelmointia)?

(b) [1 piste] Suoritussäikeen vuoronnus (scheduling)

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

(d) [1 piste] Mitä on ohjelmointikirjaston säieturvallisuus (thread safety)?

(e) [1 piste] Mikä on aktiivinen olio (active object)?

(£) [1 piste] Minkälainen rinnakkaisuuden hallintamekanismi on futuuri (future) ohjelmointikielis-
sä?

(g) [2 pistettä] Atominen konekäsky. Mihin niitä käytetään? Anna esimerkki tällaisesta käskys-
tä (selosta myös mitä käsky tekee — pelkkä nimi ei riitä)

(h) [2 pistettä] Minkälainen operaatio on Barrier-synkronointi?

(i) [3 pistettä] Semaforilla voi luonnin yhteydessä olla alkuarvona esimerkiksi nolla, yksi tai

viisi. Mihin käyttötarkoitukseen kullakin alkuarvolla alustettua semaforia voi käyttää (mikä
on oletettu käyttötarkoitus arvon perusteella)?

w

. [6 pistettä] Mikä on POSIX säiekirjaston ehtomuuttuja? Mitä oheinen ohjelmakoodi (ohjelma 2)
tekee? Missä koodissa ilmenee synkronoituminen toisen säikeen kanssa? Miksi pthread cond wait ()-
kutsu on while-silmukassa?

 

1 | truct JononKoko (

2 pthread mutex t mutex;

3 pthread cond t cond;

4 int val;

51):

6

7 | JononKoko x = ( PIHREAD MUTEX INITIALIZER,

8 PTHREAD COND INITIALIZER, O );
9

10 | void varaaPaikkaJonossa() (

11 if ( pthread mutex lock( &x.mutex ) != 0 ) (
12 perror("mutex lock");

13 exit (1);

14] )

15 x.val--;

16 while( x.val < 0 )

17 if ( pthread cond wait( &x.cond, &x.mutex ) != 0 ) (
18 perror("cond wait");

19 exit (1);

20 ]

21 | /x* ... muuta koodia ... */

 

 

 

Ohjelma 2: Ehtomuuttuja

TIE-02500 Rinnakkaisuus tentti 3.10.2016 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