 Yhteenvetoa. Rio 2005 / Auvo Häkkinen, Liisa Marttinen 9 - 2 Ongelmakenttä Rinnakkaisuuden tarve Ympäristö Suunnittelun yksinkertaistaminen Suorituskyky.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

1. Missä vietät joulun useimmiten?. 2. Missä viettäisit joulun mieluiten?
Juha Kauppinen Consulting oy Työntekijäkysely Tietoja
18. Abstraktit tietotyypit
15. Loogiset operaatiot.
45 ajatusta elämästä Music: snowdream Nov 2009 He Yan.
Pääkaupunkiseudun 8. luokkien palvelukyky Espoo, Tapiolan koulu Joulukuu 2013.
Hampuri, Saksa Löytää suunta, joka mahdollistaa Lions Clubs Internationalin saavuttavan sen täyden potentiaalin kansainvälisenä.
VBA –ohjelmoinnin perusteet
2.8.3 Abstraktit tietotyypit
Perusopetuksen huoltajat 2014 Generated on :04.
2.2. komplementtisääntö ja yhteenlaskusääntö
Synkronointi Yksi tärkeimmistä rinnakkaisuuteen liittyvistä asioista. semaforit tapahtumalaskurit monitorit.
Liisa Marttinen Semaforit Liisa Marttinen Semaforit P() aka WAIT() aka Down() jos kriittinen alue vapaa, lukitse se ja.
1 Senioreiden säästäminen ja maksutavat 2014 SENIOREIDEN SÄÄSTÄMINEN JA MAKSUTAVAT
Säännöt 30 kuvaa 45 sekuntia / kuva 10 sekuntia kirjoitusaikaa Vastaus suomeksi, ruotsiksi, englanniksi, tieteellisellä nimellä tai sen 3+3 lyhenteellä.
I.R.O. Research Oy vee 10/2000 Mediakäyttö Käyttää vähintään kerran viikossa Tytöt ja pojat *) Kirjat (esim. romaanit, lasten- ja nuortenkirjat)
Työmarkkinatutkimus 2012 Yksityinen sektori
Ehto- ja toistolauseet
TMA.003 / L3 ( )1 3. Funktioista 3.1. Kuvaus ja funktio Olkoon A ja B ei-tyhjiä joukkoja. Tulojoukon A  B = {(x,y) | x  A, y  B} osajoukko on.
Väestö Vantaan osa-alueilla
5.3.3 Koodin generointi Koodin generointi tarkoittaa objektikoodin eli konekielisen ohjelman tuottamista. Generointi jakautuu kolmeen osatehtävään: 1.Muistin.
Elinkeinopoliittinen mittaristo 2014
Markkinointiviestinnän panostusten kehittyminen vuonna 2006 vuoteen 2005 verrattuna SALDO % 43% 33% Kuva 1 Mainosbarometri.
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
© Jukka Harju, Jukka Juslin
2 - 1 Rio syksy 2004 OSA I: Yhteisten muuttujien käyttö Prosessit samassa koneessa.
Jumala tuntee minut; Jeesus – Sana tuli ihmiseksi
Suuntaamattoman graafin syvyyshaku
1 Raha-asioiden suunnitteleminen ja nykyinen rahatilanne Senioritutkimus 2011.
Seinäjoki kisa A Tuomari: Tytti Lintenhofer ALO 12kyl, 4pys Kyl:
Maatalous, maaseutuyrittäminen rahavirrat 2008 ja 2007 Pohjois-Savo Jari Kauhanen MTK- Pohjois-Savo.
Eksponentiaalinen kasvaminen ja väheneminen
 Etäproseduurikutsu RPC Toteutus Virhesemantiikka Andrews 8.1, 10.3, Stallings 13.3.
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
Visual Basic -ohjelmointi
Maitotaito PIENEN VAUVAN PÄIVÄ Maitotaito.
Viikko 34 (22.8. – 26.8.) Koulukuvaukset Maanantai: (22.8.) - Tiistai: (23.8.) - Keskiviikko: (24.8.) - Torstai: (25.8.) -Yläkoulu: Koulupoliisin.
Rinnakkaisohjelmointi
UNIX ftp://shell.shore.net/members/w/s/ws/Support/OS/UNIX.pdf
Tietoja muuttoliikkeestä Yhteenvetoa PKS = Vantaa, Espoo, Helsinki ja Kauniainen KUUMA = muu Helsingin seutu (10 kuntaa)
Metodit – Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin ”return;”-lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Komponenttipohjainen ohjelmistotekniikka (TJTSS56) Osa 4 Kevätlukukausi 2010 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Markku Sakkinen.
 Monitorit Monitori Synkronointimenetelmiä Esimerkkejä Andrews , Stallings 5.5.
Suomen Lääkäriliitto | Finnish Medical AssociationLääkärit Suomessa | Physicians in Finland Tilastotietoja lääkäreistä ja terveydenhuollosta 2014 Statistics.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Kriittinen alue P(e) Lukija: Kirjoittaja: nw = 0?nw = 0 ja n r= 0? V(e) Odottavat kirjoittajat P(w) ei ole! on!! V(e) Odottavat lukijat P(r) ei ole! V(e)
Monitorit Monitori Synkronointimenetelmiä Esimerkkejä.
Visual Basic -ohjelmointi
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
 Yhteenvetoa. Rio 2004 / Auvo Häkkinen Ongelmakenttä Rinnakkaisuuden tarve Ympäristö Suunnittelun yksinkertaistaminen Suorituskyky Luotettavuus.
Tilastollisesti merkitsevä nousu Tilastollisesti merkitsevä lasku Edelliseen aineistoon KMT 2005 verrattuna* KMT Kevät06 puolivuosiaineisto KMT SYKSY05/KEVÄT06.
Visual Basic -ohjelmointi
6 - 1 Rio 2004 / Auvo Häkkinen OSA II: Hajautettu ympäristö Ei yhteistä muistia.
1 Rio s05 / Liisa Marttinen Kertaus: Semaforit Semaforin operaatiot: sem s = n; # semaforin alkuarvo P(s); # jos s
1 Rio / Auvo Häkkinen Kertaus: Semaforit Semaforin operaatiot: sem s = n; # semaforin alkuarvo P(s); # jos s
1 - 1 Rio syksy 2005 Liisa Marttinen Prosessit voivat häiritä toisiaan! yhteinen muisti k=k+1; i=i-1 k=k+1; i=i-1; i: 10 k: prosessi i prosessi j Prosessien.
Kertaus Näkökulmat: käyttöjärjestelmä rajapintana prosessit resurssit.
 Johdantoa Rinnakkaisuus vs. samanaikaisuus Laitearkkitehtuureja Prosessien välinen kommunikointi Yhteiskäyttöinen muisti Sovellusten luokittelua Ohjelmointiparadigmoja,
 Johdantoa Andrews, Ch 1 Rinnakkaisuus vs. samanaikaisuus
 Etäproseduurikutsu RPC Toteutus Virhesemantiikka Andrews 8.1, 10.3, Stallings 13.3.
1..toistolauseet While Wend For Each In [Exit For] Next.
6 - 1 Rio 2004 / Auvo Häkkinen OSA II: Hajautettu ympäristö Ei yhteistä muistia.
Ohjelmassa tänään Ohjelmointimallit Pseudokieli Modulaarisuus.
13. Loogiset operaatiot.
Toisto Toistolausekkeet for, while(ehto){…} ja do {…} while(ehto)
16. Ohjelmoinnin tekniikkaa
13. Loogiset operaatiot.
16. Ohjelmoinnin tekniikkaa
Esityksen transkriptio:

 Yhteenvetoa

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Ongelmakenttä Rinnakkaisuuden tarve Ympäristö Suunnittelun yksinkertaistaminen Suorituskyky Luotettavuus Kommunikointiin tarvitaan Yhteisiä muuttujia (data) Kommunikointikanavia one-to-one many-to-many

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Ratkottava Poissulkeminen atominen käyttö ei lukkiumaa ei elohiirtä (livelock) ei nälkiintymistä (suoritus päättyy) Synkronointi yksittäiset erilliset tapahtumat, tilan muutokset yhden prosessin odotus, ryhmän odotus (puomi)  oikea vuoronantaminen (esim. ei etuilua)

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Mekanismit Yhteinen muisti yhteiset muuttujat, yhteiset proseduurit lukkomuuttujat semaforit monitorit Hajautettu ympäristö ei yhteistä muistia sanomanvälitys, send/receive (rinnakkainen toiminta) etäproseduurikutsu (hetkeksi käynnistetty toiminta) rendezvous (rinnakkainen toiminta, synkronointi)

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Lukkomuuttujat Atominen konekielen käsky test-and-set Aktiivinen odotus Älä käytä, ellet tiedä miksi käytät!

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Lukkomuuttujat, Spin Locks Boolean-muuttuja lock lock==true kriittinen alue varattu lock==false kriittinen alue vapaa Entry protocol while (lock) ; # aktiivinen odotus, “pörrää” # check again if (!lock) # busy loop lock=true; Exit protocol lock=false;

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Semaforit P() aka WAIT() aka Down() jos kriittinen alue vapaa, lukitse se ja jatka eteenpäin jos kriittinen alue varattu, odota V() aka SIGNAL() aka Up() jos joku odotusjonossa, päästä joku etenemään muuten vapauta kriittinen alue atomisia semafori S P(S) V(S) S.arvo S.jono public private alkuarvo

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Semaforit P(sem) + V(sem): poissulkeminen, synkronointi Jaettu binäärisemafori (split binary semaphore) kaksi semaforia (tai useampi), joista vain yksi kerrallaan 1 kontrolli hajautettavissa useammalle prosessille Baton passing (‘viestikapulan välitys’) jätä poissulkemissemafori kiinni, herätä odottaja  suoritettava prosessi vaihtuu, ei salli etuilua  herätetty herättää seuraavan, jne. Oma jono ja yksityiset semaforit suoritusvuorojen säätely (ei aina FCFS) jonotus jonkun prioriteetin perusteella (tarve järjestää)

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Poissulkeminen semaforia käyttäen sem mutex=1; # vain perinteinen muuttujan nimi process CS [i=1 to N] { # rinnakkaisuus! while (true){ ei kriittistä koodia; } yksi semafori kullekin erilliselle kriittiselle alueelle huomaa oikea alkuarvo P(mutex); # varaa # käytä (exclusive!) V(mutex); # vapauta

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Synkronointi semaforia käyttäen sem A_Ready = 0; 0  ”ei ole tapahtunut”, 1  ”on tapahtunut” Kumpi ehtii ensin? Oikea alkuarvo? Tuottaja tuota A… V(A_ready); … Kuluttaja … P(A_ready); kuluta A…

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Andrews Fig. 4.3: Producers and consumers using semaphores. (split binary semaphores)

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Andrews Fig. 4.13: A readers / writers solution using passing the baton. Lukijat ensin

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Andrews Fig. 4.14: Shortest job next allocation using semaphores.

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Lukkiutumisen syy Kolme staattista toimintapoihin liittyvää ehtoa S1 Poissulkemistarve (mutual exclusion) resurssilla yksi käyttäjä kerrallaan S2 Pidä ja odota (hold and wait) prosessi pitää saamansa resurssin samalla, kun jää odottamaan lisäresursseja S3 Kenelläkään ei etuoikeutta (no pre-emption) resurssia ei voi ottaa pois väkisin Yksi dynaaminen ehto D1 Odotus kehässä (circular wait) on olemassa kehä prosesseista, jotka pitävät itsellään resurssia, jota kehän seuraava prosessi tarvitsee edetäkseen Kaikki ehdot voimassa => lukkiutuminen

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Aterioivat Filosofit (Dijkstra) Filosofi: aattelepa ite ota kaksi haarukkaa... … yksi kummaltakin puolelta syö, syö, syö spagettia palauta haarukat Kuinka varata haarukat ilman - lukkiutumista - turhaa odottamista - nälkiintymistä s.e. kaikki saavat olla paikalla?

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Pankkiirin algoritmi useille resursseille (Dijkstra) Kerää tilatietoa Prosesseille jo allokoiduista resursseista Resursseista, joita kukin prosessi voisi edelleen pyytää Varmista pyynnön vaikutus etukäteen Allokoi vasta, kun varma ettei johda lukkiumaan pahimmassakaan tapauksessa Tarkista, että löytyy ainakin yksi vuorottelujärjestys, jossa kaikki prosessit voivat suoriutua loppuun vaikka muut pyytäisivät maksimitarpeensa "worst case analysis"

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Monitorit Ehtomuuttujat (condition variables) Odotusjonoja COND cv, cv1, cw2; wait (cv) => prosessi joutuu odottamaan blocked –tilassa ehtomuuttujan cv jonoon Yleensä myös odotusehto: jos odotusehto on voimassa, niin prosessi suorittaa wait-lauseen ja joutuu odotustilaan signal (cv) => ehtomuuttujan cv jonossa seuraavana oleva prosessi vapautuu blocked tilasta ja pääsee jatkamaan toimintaansa Jos ei ole odottajia, niin signal(cv):lla ei ole mitään vaikutusta Näillä toteutetaan prosessien (ehto)synkronointi

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Poissulkeminen on implisiittistä! Monitorissa voi aktiivisena toimijana olla kerrallaan vain yksi prosessi eli vain yksi voi olla suorittamassa jotakin monitorin proseduurin koodia. Monitorin (permanent) muuttujat ovat kaikkien käytössä Proseduureissa prosesseilla voi olla paikallisia muuttujia Oma kopio pinossa Passiivisena (blocked) monitorissa odottamassa voi olla useita prosesseja Ne ovat suorittaneet lauseen WAIT(ehtomuuttuja) ja niiden odotuksen päättää jonkin toisen prosessin suorittama SIGNAL(ehtomuuttuja). Signal and continue: signaloiva jatkaa suoritustaan monitorissa ja vapautettu signaalia odottanut prosessi kilpailee (race condition) muiden monitoria haluavien prosessien kanssa monitoriin pääsystä (FIFO-jono)

Rio 2005 / Auvo Häkkinen, Liisa Marttinen (Odotusehto) WAIT(A); SIGNAL(A); Odotusehto ==false; P1, P3,P5 P2 P4 P5 while? if? A Condition passing: jätetään odotusehto ’päälle’ => uudet tarkastavat ja menevät odottamaan odotuksesta vapautettu ei enää tarkasta ehtoa (IF!!) Kilpailutilanne!

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Ehtomuuttujat ja operaatiot cond cv ei arvoa - vain jono Blocked prosesseja (paikka odotukselle) wait(cv) laita prosessi jonoon odottamaan operaatiota signal() prosessi joutuu aina jonoon! signal(cv) jos jono tyhjä, ”no operation”, ehtomuuttuja ”ei muista” jos jonossa prosesseja, herätä jonon ensimmäinen empty(cv) palauta true, jos jono on tyhjä vrt. semafori!

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Lisää operaatioita wait (cv, rank) odota arvon mukaan kasvavassa järjestyksessä ( priority wait) minrank(cv) palauta jonon ensimmäisen prosessin arvo signal_all(cv) herätä kaikki ehtomuuttujassa cv odottavat prosessit S&C: while ( ! empty(cv)) signal(cv); S&W: ei kovin hyvin määritelty miksei? vrt. semafori!

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Condition passing odotuksen syynä ollut ehto jätetään muuttamatta (vaikkei enää ole voimassa), herätä odottaja  suoritettava prosessi vaihtuu, ei salli etuilua => FCFS Covering condition odotuksen syynä oleva ehto ei enää voimassa, herätä kaikki odottajat herätetyt tarkistavat vuorollaan saako jatkaa Yksityinen ehtomuuttuja suoritusvuorojen säätely (ei aina FCFS, tai SJN)

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Prioriteetin mukaan jonotus (Priority Wait) Andrews Fig Condition passing: Pidä resurssi varattuna, anna varattuna seuraavalle prosessille!  Ei etuilua! vrt. 4.14

Rio 2005 / Auvo Häkkinen, Liisa Marttinen ”Kattava herätys” (Covering Condition) Andrews Fig Herätä kaikki odottajat - tarkistakoot itse, onko jatkamislupa edelleen voimassa!

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Priority Wait Andrews Fig Herätä vain ne, jotka voivat jatkaa!

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Sanomanvälitys send chan(msg) + receive chan(msg) Palvelut, joissa yksi säie (prosessi) Ei poissulkemistarvetta Yhtäaikainen odottaminen  pyyntö odottaa (ei prosessi) Palvelut, joissa monta säiettä (prosessia) Poissulkeminen, synkronointi (semaforit tai monitori) Yhtäaikainen odottaminen  prosessi odottaa Asynkroninen kommunikointi, Send ei pysäytä odottamaan, mutta receive on blokkaava

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Kanavat (Andrews) Yhteinen ’postilaatikko’ jono sanomia, FIFO kaikki kanavan sanomat rakenteeltaan samanlaisia chan ch(type 1 id 1, …, type n id n ) ch: kanavan nimi type i id i : sanoman osien tyypit, ja nimet (saavat puuttua) Esim. chan input(char); chan disk_access (int cylinder, int block, int count, char* buffer); chan result[n] (int); # kanavien taulukko

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Operaatiot send kanava(lauseke 1, …, lauseke n ) lähetä sanoma kanavaan receive kanava(muuttuja 1, …, muuttuja n ) vastaanota sanoma kanavasta empty(kanava) tarkista onko kanava tyhjä sanomista Esim. send disk_access(cylinder+2, block, count, buf) receive result[i](sum) empty(input) Ei ota kantaa minkä prosessin kanssa kommunikoi!

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Andrews Fig Resurssin varaus, Palvelija

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Tiedosto- palvelijat ja asiakkaat Andrews Fig

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Etäproseduurikutsu, Remote Procedure Call (RPC) Palvelu etäkoneessa, ei yhteistä muistia Asiakkaat pyytävät palvelua prosedurikutsumekanismilla Toteutuksen yksityiskohdat KJ:n palvelua taustalla sanomanvälitys RPC yhdistää monitorin ja synkronisen sanomanvälityksen piirteet kaksisuuntainen synkroninen kanava yhdellä kutsulla asiakas odottaa

Rio 2005 / Auvo Häkkinen, Liisa Marttinen julkisten operaatioiden esittely (export) Etäproseduurin moduuli Kutsu

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Aikapalvelumoduuli Andrews Fig. 8.1.

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Andrews Fig Kutsu: time = TimeServer.get_time(); call TimeServer.delay(10);

Rio 2005 / Auvo Häkkinen, Liisa Marttinen RPC / Rendezvous call Mname.opname() Etäproseduurikutsu Passiivisten palvelurutiinien etäkäyttö poissulkeminen, synkronointi Rendezvous Aktiiviset kommunikoivat prosessit Yksi operaatio kerrallaan (kohtaaminen) ei poissulkemista, synkronointi Synkroninen, blokkaava

Rio 2005 / Auvo Häkkinen, Liisa Marttinen module Mname op opname1 (formals), opname2 (formals); body declarations of shared variables; local procedures and processes; process pname { declarations of local variables ; while (true) { statements; in opname1( formals ) -> statements; [] opname2( formals ) -> statements; ni statements; } end mname julkisten operaatioiden esittely (export) kohtaamispaikat, jotka toteuttavat operaatiot Rendezvous moduuli Kutsu call Mname.opname (arguments)

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Yleinen muoto in op 1 (formals 1 ) and B 1 -> S 1 ; [ ] … [ ] op n (formals n ) and B n -> S n ; ni in op(formals) operaation nimi ~ kohtaamispaikka and B synkronointilauseke (boolean lauseke) [ ] …muut vartioidut kohtaamispaikat (FCFS) by e 1 -> S 1; by e n -> S n; Ja vuorottamislauseke (by lauseke) kohtaamiseen voi syntyä jonoa (synkronointilauseke ei true)  missä järjestyksessä odottavat palvellaan (~prioriteetti) oletus: palvele vanhin pyyntö ensin

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Andrews Fig Bounded Buffer vrt. Andrews Fig. 5.4 Poissulkeminen? Synkronointi?

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Andrews Fig Shortest_Job-Next allokointi vrt. Andrews Fig 5.6

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Klassisia malleja Bounded buffer (tuottaja – kuluttaja, suodin) Resurssien allokointi (asiakas – palvelija) Lukijat/kirjoittajat (luokan vuorot) SJN-skedulointi (priority wait) Aikaviipaleet ja ajastimet (vuorottamispalvelu) Nukkuva parturi (prosessien kohtaaminen) Aterioivat filosofit (lukkiuma) (hajautettu resurssien jakelu)

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Arkkitehtuureja liukuhihna, suodin tuottaja – kuluttaja asiakas – palvelija vertaistoimijat (peer-to-peer,P2P) monipuolisemmat rakenteet: heartbeat yms. ryhmä: keskitetty, rengas, symmetrinen

Rio 2005 / Auvo Häkkinen, Liisa Marttinen Evaluoi Oikeellisuus Suorituspolkujen analyysi Tilamallit Suorituskyky Yleisrasite Komponentti Kommunikointi / ryhmän kommunikointi Rinnakkaisuusaste Selvitä aina, kuinka järjestelmä käyttäytyy!

Rio 2005 / Auvo Häkkinen, Liisa Marttinen V(Rio); signal(Rio); send(Rio); call Lectures.close(Rio); END JOB END JOB