Yliopiston etusivulle Suomeksi På svenska In English
Helsingin yliopisto Tietojenkäsittelytieteen laitos
 

Tietojenkäsittelytieteen laitos

in English suomeksi Kurssikuvaus 1.8.2008

581332 Rinnakkaisohjelmointi (4 op, 2 ov)
581332 Jämlöpande programmering (4 sp, 2 sv)
581332 Concurrent Programming (4 cr, 2 cu)

Asema opetuksessa

Tietojenkäsittelytieteen aineopintojen pakollinen kurssi. Kurssi vastaa 2001-2004 luennoitua kurssia Rinnakkaisohjelmistot (2 ov). Kurssi vastaa ennen 2001 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ä. Oppimistavoitteet on tarkemmin kuvattu omassa dokumentissaan.

Esitieto- ja lisätietokurssit

Esitietoina edellytetään kurssin Tietokoneen toiminta (4 op) suoritus.

Tämän kurssin jälkeen sopii suoritettavaksi esimerkiksi kurssit Verkkosovellusten toteuttaminen (7 op) sekä Hajautetut järjestelmät (6 op).

Suoritustavat

Kurssin voi suorittaa luentokurssilla tai osallistumalla erilliskokeeseen.

Kurssi luennoidaan joka vuosi syyslukukaudella. Luentokurssiin sisältyy

  • luentoja 24 tuntia (4h/vko)
  • harjoituksia 6 * 2 tuntia
  • opintopiirityöskentelyä ja ryhmätyö
  • kurssikuulustelu 2.5 tuntia.

Erilliskokeita on lukuvuoden aikana 4: 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 luentokurssin yhteydessä saatuja harjoitus- tai projektipisteitä. Erilliskokeet perustuvat viimeksi pidetyn luentokurssin materiaaliin.

Ilmoittautuminen

Luentokurssille ilmoittaudutaan Tietojenkäsittelytieteen ILMO-järjestelmän avulla kirjoittautumalla johonkin kurssin harjoitusryhmään. Kurssikuulusteluun ei tarvitse erikseen ilmoittautua. 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.

Erilliskokeeseen tulee ilmoittautua ILMO-järjestelmän avulla viimeistään koetta edeltävän viikon maanantaina. Erilliskokeilla suorittamiseen ei liity rajoituksia.

Kurssimateriaali

Kurssi perustuu lähinnä lukuihin 1-10 oppikirjassa M. Ben-Ari, Principles of Concurrent and Distributed Programming (2nd Ed.); Addison-Wesley 2006. Lukkiutumista ja etäproseduureja käsittelevät osat löytyvät esimerkiksi kirjan William Stallings, Operating Systems - Internals and Design Principles 6th ed.; Prentice Hall 2008, luvuista 5, 6.1-6 ja 16.1-3. (tai 5th Ed 2005, Ch. 5, 6.1-6 ja 14.1-3.)

Ainakin Ben-Arin kirjan hankkimista suositellaan.

Kurssin kotisivu ja luentokurssien aikataulusivut löytyvät kurssin kantasivulta http://www.cs.helsinki.fi/kurssit/aine/581332-8/.

Sisältö

Sisältö jakaantuu karkeasti ottaen kolmeen osaan:

  1. Johdanto: Rinnakkaisuus ja samanaikaisuus
    • Laitteistoarkkitehtuureja
    • Esimerkkejä rinnakkaisohjelmointiparadigmoista
    • Samanaikaisuuden ohjelmoinnissa käytettävä notaatio
    • Samanaikaisuutta sisältävien ohjelmien oikeaksi todistaminen
  2. Samanaikaisuuden hallinta ja kommunikointi yhteisen muistin avulla
    • Prosessien kommunikointitavat
    • Semaforien käyttö samanaikaisuuden hallinnassa
    • Lukkiutuminen
    • Monitorit
  3. Samanaikaisuuden hallinta ja kommunikointi ilman yhteistä muistia
    • Sanomanvälitys
    • Etäproseduurit
    • Lukkiutuminen
    • Rendezvous

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


">Teemu Kerola 13.08.2008 13:21