Synkronointi Yksi tärkeimmistä rinnakkaisuuteen liittyvistä asioista. semaforit tapahtumalaskurit monitorit.

Slides:



Advertisements
Samankaltaiset esitykset
Osaamisen ja sivistyksen parhaaksi Tilatiedot ja niiden muutokset
Advertisements

@ Leena Lahtinen Helia Ohjelman perusrakenteet 1. PERÄKKÄISRAKENNE 2. VALINTARAKENNE 3. TOISTORAKENNE.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
PROSESSIT Tehtäviä: Limittää usean prosessin suoritus, jotta resurssien käyttö olisi tehokasta, mutta samalla taata, että kaikki prosessit etenevät mielekästä.
Estimointi Laajennettu Kalman-suodin
1 Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra.
Ohjaaja: Ville Hentilä, Elisa Oyj Valvoja: Prof. Jukka Manner
2.8.3 Abstraktit tietotyypit
Vapaa Ohjelmisto.  Vapaa ohjelmisto on ohjelmisto jota voi käyttää, tutkia, muuttaa ja jakaa eteenpäin vapaasti.  FLOSS (Free / Libre Open Source Software)
Taide on terapiaa! Jorma Heikkinen Tsemppi talo,
Käyttöjärjestelmät Johdanto. Kurssimateriaalista 15 lukua, jotka vastaavat enemmän tai vähemmän 15 kahden tunnin pakettia Perustuu Gary Nuttin Operating.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
Liisa Marttinen Semaforit Liisa Marttinen Semaforit P() aka WAIT() aka Down() jos kriittinen alue vapaa, lukitse se ja.
Ajoitus -prosessien ajoitus -resurssien varaaminen -vuorontamisen algoritmit -reaaliaikaiset järjestelmät.
Säännöt Onko hakukohde mukana sijoittelussa Minkä valinnan vaiheen tulos yhdistetään sijoitteluun Voiko valinnan tuloksen siirtää automaattisesti osaksi.
5.3.3 Koodin generointi Koodin generointi tarkoittaa objektikoodin eli konekielisen ohjelman tuottamista. Generointi jakautuu kolmeen osatehtävään: 1.Muistin.
Hajautettu laskenta Prosessien hallinta verkossa
Virtuaalimuisti Modernin muistinhallinnan tärkein menetelmä on virtuaalimuisti, jossa looginen osoiteavaruus ja fyysinen muistiavaruus on erotettu toisistaan.
 Käytä Internet Explorer-selainta. Valitse selaimeksi Internet Explorer.
TAULUKKO YKSIULOTTEINEN TAULUKKO. TAULUKKO  Taulukon tarkoitus Ohjelmassa tarvitaan paljon samantyyppisiä samaan kohdealueeseen kuuluvia muuttujia Näitä.
© Lammi-Niskala-Kossarev ADT:n toteutus Imperatiivinen paradigma Imperatiivinen paradigma toimenpiteet aktiivisia, tiedot passiivisia toimenpiteet.
2 - 1 Rio syksy 2004 OSA I: Yhteisten muuttujien käyttö Prosessit samassa koneessa.
7. Oliot ja viitteet.
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Map-luokka Mikä Map on? Mapin esittely ja luonti Map-luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen 1.
Visual Basic -ohjelmointi
UNIX ftp://shell.shore.net/members/w/s/ws/Support/OS/UNIX.pdf
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.
 Monitorit Monitori Synkronointimenetelmiä Esimerkkejä Andrews , Stallings 5.5.
Systeemityö 2 Kokoava vuorovaikutuskaavio – Interaction
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Aakkosnumeerinen tieto Tarkoittaa kaikkea muuta tietoa paitsi laskentaan tarkoitettuja lukuja Muuttujan tietosisältö on siis tekstitietoa Muuttujan tietotyypiksi.
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
 Yhteenvetoa. Rio 2005 / Auvo Häkkinen, Liisa Marttinen Ongelmakenttä Rinnakkaisuuden tarve Ympäristö Suunnittelun yksinkertaistaminen Suorituskyky.
 Yhteenvetoa. Rio 2004 / Auvo Häkkinen Ongelmakenttä Rinnakkaisuuden tarve Ympäristö Suunnittelun yksinkertaistaminen Suorituskyky Luotettavuus.
Kontrollirakenteet laajemmin
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
Ohjelmistotuotanto- miniprojekti Suunnittelu. Ohjelman toiminnot Kurssin tai tapahtuman  Lisäys  Poisto  Muokkaus Viikon lukujärjestyksen tarkasteleminen.
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.
Tietoturvaprojekti 6h.
6 - 1 Rio 2004 / Auvo Häkkinen OSA II: Hajautettu ympäristö Ei yhteistä muistia.
FOR i := 0...N-1 DO summa := summa + A[i] tulo := tulo * A[i] ENDFOR.
Johdatus ohjelmointiin – if -lause Tutkijayliopettaja Manne Hannula Opetusharjoittelu (ohjaava opettaja Jukka Jauhiainen)
TEKNIIKAN JA TALOUDEN YLIOPISTO Luku 23 – Signal Driven IO  Periaate  Esimerkki.
Funktiot Funktio = mahdollisten syöte- ja tulostearvojen välinen suhde siten, että kuhunkin syötearvoon on liitetty tulostearvo –Funktion laskeminen =
Ohjelmassa tänään Ohjelmointimallit Pseudokieli Modulaarisuus.
Jatkeet TIES341 Funktio-ohjelmointi 2 Kevät 2006.
1. Omat operaatiot.
Atomin rakenne 8Ke.
if-else -vertailulause
Aakkosnumeerinen tieto
Toisto Toistolausekkeet for, while(ehto){…} ja do {…} while(ehto)
2. Lukujonot 2.1. Lukujonon käsite -äärellinen tai ääretön Luettelona:
10. Siirräntäjärjestelmät
8. Ohjelman toteutus järjestelmässä
8. Ohjelman toteutus järjestelmässä
Kontrollirakenteet laajemmin
10. Siirräntäjärjestelmät
Opintosuoritus A 3 op, Laji 2
Valintaperusteiden mallinnusta Opintopolussa
10. Siirräntäjärjestelmät
4. Luokan testaus ja käyttö olion kautta
10. Siirräntäjärjestelmät
OTA KUVA Tämä on SONY:n uuden teknologian testi.
Esityksen transkriptio:

Synkronointi Yksi tärkeimmistä rinnakkaisuuteen liittyvistä asioista. semaforit tapahtumalaskurit monitorit

Semaforit Semafori on suojattu globaali kokonaislukumuuttuja, jota voidaan käsitellä proseduureilla P (tai wait) ja V (tai signal). P ja V toteutetaan käyttöjärjestelmän ytimessä ja niihin sovelletaan poissulkemista. Semaforilla on oma jonotietorakenne, johon sitä odottavat prosessit sijoitetaan. P ja V proseduuria kutsuvat prosessit pannaan jonoon FIFO-järjestykseen P ja V ovat jakamattomia

Binäärinen semafori voi saada arvokseen 0 tai 1 Tyypillinen semaforin S käyttö: P(S) kriittinen alue V(S) V(S) { if(S.jono on tyhjä) {S++;} else{Siirrä S.jonon seuraava prosessi suoritukseen} }//V() P(S){ if (S==0) { {siirry S.jonoon odottamaan ja pysäytä prosessi} }//if else { S--; }//else }//P()

Laskenta- eli yleinen semafori saa arvokseen kokonaislukuja >= 0 P(S){ S--; if(S<0) { siirry S.jonoon odottamaan ja pysäytä prosessi } }//P() V(S){ S++; if(S<=0) {Siirrä S.jonon seuraava prosessi suoritukseen} }//V()

Semaforien käyttö Poissulkemisongelma poissulkeminen.html ongelmia: keskeytysten esto, rinnakkaiset prosessorit, nälkiintyminen, jonot prosessien synkronointi synkronointi.html

Tuottajat ja kuluttajat Semaforia voidaan käyttää apuna viestinvälityksessä Ongelmia: poissulkeminen synkronointi (lukea ei saa ennen kuin toinen on tuottanut viestin, uutta signaalia ei saa tuottaa ennen kuin vanha on luettu) tuotkulut.html

Tapahtumalaskurit Muistuttaa etäisesti semaforia, pitää kirjaa tapahtumien esiintymisestä kokonaislukumuuttujalla Kolme alkeistoimintoa: 1.advance(laskuri) – lisää yhdellä 2.read(laskuri) – lukee laskurin arvon 3.await(laskuri, v) – sammuttaa prosessin, kunnes laskurin arvo on vähintään v

Monitorit Korkeamman tason menetelmä Ominaisuuksia: 1.paikallisia muuttujia voi käsitellä vain monitorin omien proseduurien kautta 2.prosessi käyttää monitoria kutsumalla yhtä sen proseduureista 3.vain prosessi kerrallaan voi käyttää monitoria

Määritellään ehtomuuttujia synkronointiin, joihin pääsee käsiksi vain monitorin sisältä, lisäksi prosessijono. Funktiot ehtomuuttujien käyttöön: cwait(c): pysäyttää kutsuvan prosessin, jos ehto c on tosi. Muut prosessit voivat käyttää monitoria. csignal(c): jatkaa jonkin cwait() funktiolla ja samalla ehdolla pysäytetyn ohjelman suoritusta. Jos tällaisia prosesseja on useita, se valitsee niistä yhden, jos niitä ei ole, ei tehdä mitään. Malli sisältää ongelmia poissulkemisen suhteen.

Paikkaus: cnotify(x) (csignal()-funktion tilalle) Kun monitorissa oleva ohjelma toteaa ehtomuuttujan x tilan muuttuneen, se suorittaa funktion cnotify(x) ja jatkaa normaalisti suoritustaan. cnotify(x) kertoo ehtomuuttujaan x liittyvälle jonolle, että ehtomuuttuja on muuttunut ja jono voi ottaa sieltä prosessin, kun sille sopii. Koska jokin muu prosessi on kuitenkin saattanut suorittaa monitoria jonon ottaessa ensimmäisen prosessin, aiheuttaen siten uuden muutoksen ehtomuuttujan tilassa, jononkäsittelijän täytyy ensin uudelleen tarkastaa ehtomuuttujansa tila ennen kuin jonosta otetaan prosessi jatkamaan suoritustaan.

cnotify() mahdollistaa myös cbroadcast(x)- funktion lisäämisen, joka tiedottaa kaikille muuttujaa x tarkkaileville prosesseille muutoksista. Muutos tuo mukanaan toimintavarmuutta.

Uudelleenkäytettävien resurssien osoittaminen monitorilla monitori Resurssinvaraaja { condition vapaa; public Resurssinvaraaja(){ vapaa = true; }//Resurssinvaraaja public static void getresource(){ while (!vapaa) cwait(vapaa); vapaa = false; }//getresource() public static void returnresource(){ vapaa= true; cnotify(vapaa); }//returnresource }//monitori Resurssinvaraaja 423/kj/monitori- tuotkulut.html 423/kj/monitori- lukikirj.html

Ruokailevat filosofit Ajatusleikki, jolla kuvataan erilaisia synkronointiin liittyviä ongelmia