Rinnakkaisohjelmistot. Liisa Marttinen Tietojenkäsittelytieteen laitos Helsingin yliopisto Kevät 2004

Samankaltaiset tiedostot
Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

LUENTO 0. Tervetuloa! Käyttöjärjestelmät II 2 ov Teemu Kerola. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Käyttöjärjestelmät: poissulkeminen ja synkronointi

OSA II: Hajautettu ympäristö. Sisältö, osa II. Sanomanvälitys. Käsitteistöä. Sanomanvälitys. Kommunikointi. Sanomanvälitys. Etäproseduurikutsu

Ongelmakenttä. Yhteenvetoa. Ratkottava. Mekanismit. Lukkomuuttujat. Lukkomuuttujat, Spin Locks. Rinnakkaisuuden tarve. Kommunikointiin tarvitaan

Yhteenvetoa. Ongelmakenttä

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Processes and threads

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

OSA II: Hajautettu ympäristö. Sisältö, osa II. Ei yhteistä muistia. Sanomanvälitys. Etäproseduurikutsu. Rendezvous. Rio 2004 / Auvo Häkkinen

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Ongelmakenttä. Yhteenvetoa. Mekanismit. Ratkottava. Lukkomuuttujat, Spin Locks. Lukkomuuttujat. Rinnakkaisohjelmistot 2004 / Auvo Häkkinen 9-1

Ongelmakenttä. Rinnakkaisuuden tarve. Kommunikointiin tarvitaan. Ympäristö Suunnittelun yksinkertaistaminen Suorituskyky Luotettavuus

OSA II: Hajautettu ympäristö. Ei yhteistä muistia. Rio 2004 / Auvo Häkkinen

Monitorit. Monitori Synkronointimenetelmiä Esimerkkejä. Andrews , Stallings 5.5

Monitorit. Tavoite. Monitori Synkronointimenetelmiä Esimerkkejä. Andrews , Stallings 5.5. Minimoi virhemahdollisuuksia

Rinnakkaisohjelmointi

Rinnakkaisohjelmointi

Rinnakkaisohjelmointi

RINNAKKAINEN OHJELMOINTI A,

Tietoliikenteen perusteet

Tietoliikenne I (muuntokoulutettaville) 2 ov Syksy 2002 Luennot Liisa Marttinen 11/6/2002 1

Tietoliikenteen perusteet

Tietoliikenne I 2 ov kevät 2003

/ ta. Osaa kvalitatiivisella tasolla arvioida sovelluksen hajauttamisen hyötyjä ja haittoja.

Tietoliikenne I 2 ov syksy 2001

Tietoliikenne I 2 ov kevät 2002

Lukkiutuminen. Taustaa

4-13. Ratkaisu 4: OK, mutta... vrt. 2. Ratkaisu 3: OK. Ratkaisu 5: OK? Nälkiintyminen?

Rinnakkaisuus. parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa. TTY Ohjelmistotekniikka

Tietoliikenne I (muuntokoulutettaville) 2 ov syksy 2003 Luennot Liisa Marttinen

Tietoliikenne I (muuntokoulutettaville) 2 ov syksy 2003 Luennot Liisa Marttinen

Tietoliikenne I 2 ov kevät 2004

Tietoliikenne I 2 ov kevät 2004

Kernel (Fig 4.10 [Stal 05]) Operating Systems Examples and Process Management

Prosessi perinteisesti

Stallings, Luku 4.1. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

Intel Threading Building Blocks

Stallings, Luku 4.1. KJ-I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 4-1. KJ-I I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 12-1

Johdantoa. Miksi rinnakkaisuutta? Laitteistoarkkitehtuureja. Rinnakkaisuus - Samanaikaisuus. Peräkkäisyyteen perustuvat sovellukset

Johdantoa. Andrews, Ch 1

Johdantoa. Rinnakkaisuus - Samanaikaisuus. Peräkkäisyyteen perustuvat sovellukset

Teknologinen muutos ja yliopistojen tulevaisuus. Tievie-seminaari Helsinki Antti Auer

Käyttöjärjestelmät II

Tavoite. Monitorit. Monitori Hoare Monitori. Minimoi virhemahdollisuuksia. Monitori Synkronointimenetelmiä Esimerkkejä

Etäproseduurikutsu, Remote Procedure Call (RPC) Etäproseduurikutsu. Poissulkeminen moduulin sisällä?

Etäproseduurikutsu. Etäproseduurikutsu, Remote Procedure Call (RPC)

Lukkiutuminen. Taustaa Aterioivat Filosofit Ennaltaehkäisy Havaitseminen Välttely. Andrews 4.3 Stallings (tai mikä tahansa KJ-kirja)

Ylläpitäjät, järjestelmäarkkitehdit ja muut, jotka huolehtivat VMwareinfrastruktuurin


7.4 Variability management

Tietoliikenne I 2 ov syksy 2000

Tietoliikenne I 2 ov syksy 2000

Tietoliikenne I 2 ov syksy 2000

HAHMONTUNNISTUKSEN PERUSTEET

Käyttöjärjestelmät II

Tietorakenteet ja algoritmit

Etäproseduurikutsu. RPC Toteutus Virhesemantiikka. Andrews 8.1, 10.3, Stallings 13.3

Taustaa. Lukkiutuminen. Seuraukset. Määritelmiä Lukkiuma (deadlock) päättymätön odotus BLOCKED-tilassa. prosessi P. prosessi Q. pyydä A? OK.

Ohjelmoinnin peruskurssien laaja oppimäärä

Tietoliikenteen perusteet

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science

Johdantoa. Miksi rinnakkaisuutta? Keskinäinen kommunikointi. Prosessit voivat häiritä toisiaan! Rinnakkaisuus - Samanaikaisuus

815338A Ohjelmointikielten periaatteet

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Yleiskuva. Käyttöjärjestelmät II. Tietokonejärjestelm. rjestelmä. KJ ja laitteistopiirteet. KJ ja laitteistopiirteitä.

ISEB/ISTQB FOUNDATION CERTIFICATE IN SOFTWARE TESTING III

OSA I: Yhteisten muuttujien käyttö. Prosessit samassa koneessa. Rio 2004 / Auvo Häkkinen 2-1

OSA I: Yhteisten muuttujien käyttö. Sisältöä. Prosessit samassa koneessa. Poissulkeminen ja synkronointi. Semaforit ja rinnakkaisuuden hallinta

OSA I: Yhteisten muuttujien käyttö Prosessit samassa koneessa. Sisältöä. Poissulkeminen. Halutut ominaisuudet 2-1. Rinnakkaiset, atomiset operaatiot

HAHMONTUNNISTUKSEN PERUSTEET

7. Product-line architectures

Käyttöliittymät II. Käyttöliittymät I Kertaus peruskurssilta. Keskeisin kälikurssilla opittu asia?


812315A Ohjelmiston rakentaminen. Asynkronisuus

Information on preparing Presentation

C++11 seminaari, kevät Johannes Koskinen

Tehostettu kisällioppiminen tietojenkäsittelytieteen ja matematiikan opetuksessa yliopistossa Thomas Vikberg

Tervetuloa! (2 ov,, 4 op) KJ on tärkein tietokoneessa pörräävistä ohjelmista

Roolipeliharjoitus. - Opiskelijoiden suunni=elemat neuvo=eluvideot ja niiden vertaisarvioinnit

TAMPEREEN TEKNILLINEN YLIOPISTO Teollisuustalous

Etäproseduurikutsu, Remote Procedure Call (RPC) Etäproseduurikutsu. Poissulkeminen moduulin sisällä?

4. Luento: Prosessit ja säikeets. Tommi Mikkonen,

Internet ja tietoverkot

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

Näkökulmia tietoyhteiskuntavalmiuksiin

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

Osio 2: Luennot 5-8 Muistinhallinta

Laaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori

u Tietokone ilman käyttöjärjestelmää on kuin

Käyttöjärjestelmät: prosessit

Sisältö, osa II. Sanomanvälitys. Kanavat. Hajautettu ympäristö Ei yhteistä muistia Kommunikointi sanomien välityksellä.

Liite 1. Projektin tulokset (Semaforit Javassa) Jukka Hyvärinen Aleksanteri Aaltonen

T Johdatus tietoliikenteeseen 5 op. Kevät 2013

Tietojenkäsittelytieteen tutkintovaatimukset

Transkriptio:

581332-8 Liisa Marttinen Tietojenkäsittelytieteen laitos Helsingin yliopisto Kevät 2004

Asema opetuksessa cl-oppimäärän pakollinen kurssi Esitiedot: Tietokoneen toiminta (2 ov) Käyttöjärjestelmät I (2 ov) Auvo Häkkinen 2004 0-2

Ymmärtää Tavoitteet rinnakkaisuudesta saatavat hyödyt rinnakkaisuuden hallinnan tarve keskeiset ongelmakohdat ja mekanismit niiden ratkaisemiseksi rinnakkaisten järjestelmien ohjelmoinnin peruskäsitteet Osata paikantaa kohdat, joissa tarvetta rinnakkaisuuden hallintaan soveltaa tavallisimpia ratkaisumenetelmiä algoritmitasolla Auvo Häkkinen 2004 0-3

Computing Curricula 2001: Concurrency [core] Topics to cover RIO KJ-I States and diagrams Structures (ready list, process control block, and so forth) Dispatching and context switching The role of interrupts Concurrent execution: advantages and disadvantages The mutual exclusion problem and some solutions Deadlock: causes, conditions, prevention Models and mechanisms (semaphores, monitors, condition variables, rendezvous) Producer-consumer problems and synchronization Multiprocessor issues (spin-locks, re-entrancy) Auvo Häkkinen 2004 0-4

Learning objectives 1. Describe the need for concurrency within the framework of an OS. 2. Demonstrate the potential run-time problems arising from the concurrent operation of many separate tasks. 3. Summarize the range of mechanisms that can be employed at the OS level to realize concurrent systems and describe the benefits of each. 4. Explain the different states that a task may pass through and the data structures needed to support the management of many tasks. Auvo Häkkinen 2004 0-5

5. Summarize the various approaches to solving the problem of mutual exclusion in an OS. 6. Describe the reasons for using interrupts, dispatching, and context switching to support concurrency in an OS. 7. Create state and transition diagrams fro simple problem domains. 8. Discuss the utility of data structures, such as stacks and queues, in managing concurrency. 9. Explain condition that lead to deadlock. Source: ACM Computing Curricula 2001, Computer Science Auvo Häkkinen 2004 0-6

Sisältö Johdanto rinnakkaisuus, samanaikaisuus laitteistoarkkitehtuureja prosessien välinen kommunikointi yhteiskäyttöinen muisti, sanomanvälitys sovellusten luokittelua ohjelmointiparadigmat algoritmien ohjelmointi: määrittelyt ja notaatiot Auvo Häkkinen 2004 0-7

OSA I: Yhteiskäyttöiset muuttujat = Prosessit samassa koneessa, yhteinen muisti Poissulkeminen ja synkronointi lukot, semaforit, synkronointi Semaforit ja rinnakkaisuuden hallinta tuottajat - kuluttajat, resurssien hallinta lukijat - kirjoittajat Lukkiutuminen ennaltaehkäisy, havaitseminen, välttäminen aterioivat filosofit, pankkiirin algoritmi Monitorit käsite, synkronointitekniikoita Auvo Häkkinen 2004 0-8

Osa II: Ohjelmointi hajautetussa ympäristössä = Ei yhteistä muistia, prosessit eri koneissa Sanomanvälitys kanavat, kommunikointimallit (patterns), synkronointi asiakkaat - palvelija Etäproseduurikutsu toteutus, virhesemantiikka Rendezvous aktiivisten prosessien kohtaaminen Yhteenvetoa Auvo Häkkinen 2004 0-9

Paljon esimerkkejä Tuottajat kuluttajat (1-M puskuria, 1-N prosessia) Lukijat kirjoittajat Puomisynkronointi Resurssien varaus ja jonotus (FCFS, SJN,...) Nukkuva parturi Ruokailevat filosofit Ym. Ym. Emme käytä formaalia algoritmien oikeellisuuden todistamista - terveet sanalliset perustelut riittävät Kurssi: Spesifioinnin ja verifioinnin perusteet Auvo Häkkinen 2004 0-10

Opetus ja opiskelu Kuuntele luennot! Kysy! luentokalvot vain sisällysluettelo käsiteltävien asioiden muistilista lisää omat muistiinpanot luentokalvot alkujaan Timo Alankon käsialaa, sitten Auvo Häkkisen täydentämät ja edelleenkehittämät Lue kirjasta! Kysy! hanki omaksi, lainaa jostain, lue jossain Tee harjoitukset! Kysy! Auvo Häkkinen 2004 0-11

Tiedon lähteet Andrews G.R: Foundations of Multithreaded, Parallel, and Distributed Programming. Addison Wesley, 2000. (Luvut 1-8) Stallings: Operating Systems, 4th ed. 2001. (Luvut 5-6) [Bacon: Concurrent Systems, 2nd ed. 1997. (Kuvia)] Kurssisivu: http://www.cs.helsinki.fi/ kalvokopiot, harjoitustehtävät tarkistuskysymyksiä, sanastoa, tiedotteita ym. Uutisryhmä: hy.opiskelu.tktl.rio Kurssimappi A412: kalvokopiot, kuvia (osa vain mapissa!) Auvo Häkkinen 2004 0-12

RIO vs. muut kurssit Esitiedot: TITO, KJ-I ajoaikainen pino, aktivointitietue yhteiskäyttöinen muisti prosessi/säie, prosessin tilat, prosessijonot keskeytysmekanismi vuorottamisen perusideat (FCFS, SJN, RR) Tämän jälkeen Verkkosovellusten toteuttaminen Hajautetut järjestelmät Auvo Häkkinen 2004 0-13

Tervetuloa Työ se vaan on huviakin hauskempaa!