Exam text content

TIE-02500 Rinnakkaisuus - 26.08.2015

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

 


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