Helsingin yliopisto TIETOJENKÄSITTELYTIETEEN LAITOS
Matemaattis-luonnontieteellinen tiedekunta

 
PL 68 (Exactum)
00014 HELSINGIN YLIOPISTO
 

581332 Rinnakkaisohjelmointi (4 op, 2 ov) / Kurssikuvaus
581332 Parallell programmering(4 sp, 2 sv)
581332 Parallel Programming (4 cr, 2 cu)

Asema opetuksessa

Tietojenkäsittelytieteen aineopintojen pakollinen kurssi.

Kurssi vastaa lukuvuosina 2002-2003 ja 2003-2004 luennoitua kurssia Rinnakkaisohjelmistot (2 ov).

Kurssi vastaa ennen lukuvuotta 2000-2002 luennoidun kurssin Rinnakkaisohjelmistot (4 ov) jälkimmäistä osaa, eikä näitä kahta kurssia voi sisällyttää samaan tutkintoon

Tavoitteet

Kurssin tavoitteena on ymmärtää rinnakkaisten ja hajautettujen järjestelmien ohjelmoinnin peruskäsitteet, tuntea keskeinen ongelmanasettelu sekä osata soveltaa tavallisimpia ratkaisumenetelmiä.

Esitiedot

Esitietoina edellytetään kurssin Tietokoneen toiminta (2 ov) sisällön hallinta

Tämän kurssin jälkeen sopii suoritettavaksi esimerkiksi kurssit Verkkosovellusten toteuttaminen (2 ov) sekä Hajautetut järjestelmät (3 ov).

Suoritustavat

Kurssin voi suorittaa

Kurssi luennoidaan joka vuosi syyslukukaudella. Luentokurssiin sisältyy

Arvosana määräytyy kurssikuulustelusta ja harjoituksista tai erilliskokeesta saatujen pisteiden perusteella (yleensä) seuraavasti

     pisteitä 30 35 40 45 50
     arvosana  1  2  3  4  5

Erilliskokeita on lukuvuoden aikana 4 kertaa: kaksi kevätlukukaudella (tammikuu ja maaliskuu), yksi kesällä (elokuu) sekä yksi syyslukukaudella (syys/lokakuun vaihde). Erilliskokeen perusteella arvosanaa määrättäessä ei huomioida kurssin yhteydessä saatuja harjoituspisteitä.

Ilmoittautuminen

Kurssille ilmoittaudutaan Tietojenkäsittelytieteen ILMO-järjestelmän avulla kirjoittautumalla johonkin kurssin harjoitusryhmään. Ilmoittautumisohjelma käynnistyy, kun avaat Internet selaimessa sivun

	ilmo.cs.helsinki.fi

Kurssikuulusteluun ei tarvitse erikseen ilmoittautua. Erilliskokeeseen tulee ilmoittautua viimeistään koetta edeltävän viikon maanantaina.

TKTL:n pakolllisten aineopintotason kurssien suoritusta saa yrittää luentokurssina harjoituspaikan varaamalla vain kahdesti. Yrityskerraksi tulkitaan ilmoittautuminen, jota ei ole peruttu määräaikaan mennessä, yleensä ensimmäisen harjoitusviikon loppuun mennessä. Ennen syksyä 2002 tehtyjä yrityksiä ei lasketa sääntöä sovellettaessa. Erilliskokeilla suorittamiseen ei liity rajoituksia.

Klikkaa tähän, jos haluat ilmoittautua kurssille nyt.

Kurssimateriaali

Kurssi perustuu lähinnä oppikirjaan G.R. Andrews: Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley, 2000. Lukkiutumista ja etäproseduureja käsittelevät osat löytyvät esimerkiksi Stallingsin kirjasta.

Kurssilla suositellaan Andrewsin kirjan hankintaa.

Kurssin kotisivuihin pääset käsiksi URL:lla http://www.cs.helsinki.fi/kurssit/cum_laude/581332-8/.

Kurssin uutis- ja keskusteluryhmä on hy.opiskelu.tktl.rio.

Sisältö

Sisältö jakaantuu karkeasti ottaen kolmeen osaan:

  1. Johdanto: Rinnakkaisuus ja samanaikaisuus
    (Andrews kirjan luku 1)
    • laitteistoarkkitehtuureja
    • esimerkkejä rinnakkaisohjelmointiparadigmoista
    • Ohjelmoinnissa kurssilla käytetty notaatio
  2. Kommunikointi yhteisen muistin avulla
    • Prosessien kommunikointitavat
      (Andrewsin kirjan luvut 2.1-2.5, 3.1-3.2)
    • Semaforien käyttö rinnakkaisuuden valvonnassa
      (Andrewsin kirjan luku 4)
    • Lukkiutuminen
      (Stallingsin kirjan luvut 6.1-6.6)
    • Monitorit
      (Andrewsin kirjan luvut 5.1-5.2)
  3. Kommunikointi ilman yhteistä muistia
    • Sanomanvälitys
      (Andrewsin kirjan luvut 7.1-7.5)
    • Etäproseduurit
      (Andrewsin kirjan luku 8.1 ja Stallingsin kirjan luku 13.3)
    • Rendezvous
      (Andrewsin kirjan luku 8.2)

Kurssi perustuu pääosin oppikirjaan

G. R. Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming; Addison Wesley Longman, 2000. Kurssiin liittyvät luvut 1, 2.1-2.5, 3.1-3.2, 4 (4.6 tutustu, ei kokeessa), 5.1-5.2 (5.3-5.5, tutustu, ei kokeessa), 6.3-6.5 (6.1-6.2 tutustu, ei kokeessa), 7.1-7.5, 8.1-8.2 ja 10.3.

Lukkiutumista ja etäproseduureja koskevat osat löytyvät kirjasta

W. Stallings: Operating Systems; Prentice Hall, 2001, 4th ed. (myös 3rd ed. OK). Kurssiin liittyvät luvut 5 (käsittelee samanaikaisuutta: poissulkemista ja synkronointia, semaforeja, monitoreja ja sanomanvälitystä) 6.1-6.6 ja 13.3 (13.1-13.2 tutustu)

Luentokalvot ja laskuharjoitukset muodostavat tarkimman määrittelyn kurssin alueesta. Huomattakoon kuitenkin, että kalvokopiot eivät ole oppikirja vaan paremminkin laajennettu sisällysluettelo.


Liisa Marttinen