Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.

Samankaltaiset esitykset


Esitys aiheesta: "Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida."— Esityksen transkriptio:

1 Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida niiden suojaamiseksi toistensa toiminnalta. Käyttöjärjestelmän täytyy ottaa huomioon ainakin seuraavat neljä näkökohtaa: 1.Käyttöjärjestelmän on pystyttävä pitämään kirjaa aktiivisista prosesseista. Tähän käytetään prosessielementtejä. 2.Käyttöjärjestelmän täytyy osoittaa prosesseille resursseja ja irrottaa niitä. 3.Käyttöjärjestelmän täytyy suojata kunkin prosessin dataa ja fyysisiä resursseja muiden prosessien tahattomalta toiminnalta. Tähän liittyy myös tietoturva. 4.Prosessin lopputuloksen täytyy olla riippumaton siitä, millä suhteellisella nopeudella prosessi suoritetaan rinnakkaisiin prosesseihin nähden.

2 Prosessit voidaan jakaa erilaisiin luokkiin riippuen siitä, miten voimakkaasti ne vuorovaikuttavat keskenään: Prosessit, jotka eivät tiedä toistensa olemassaolosta. Kilpailevat samoista resursseista, esimerkiksi printteristä, vaikka eivät olekaan tietoisia toisista ’kilpailijoista’. Käyttöjärjestelmä on vastuussa tästä. Prosessit, jotka ovat epäsuorasti tekemisissä keskenään. Nämä eivät välttämättä tunne toisiaan nimeltä, mutta ovat tietoisia toistensa olemassaolosta, koska ne jakavat jonkin yhteisen resurssin, esimerkiksi I/O-puskurin. Ne toimivat yhteistyössä jakamalla. Prosessit, jotka ovat tietoisia toisistaan voivat tehdä yhteistyötä kommunikoimalla aktiivisesti keskenään (lähettämällä viestejä) ja ne on suunniteltu toimimaan yhdessä jotain tarkoitusta varten. Tarkka rajanveto näiden välille ei välttämättä ole aina mahdollista, jos mielekästäkään.

3 Keskenään kilpailevien prosessien ongelmat: Poissulkeminen Lukkiutuminen Nälkiintyminen

4 Kriittiset alueet jaettuja globaaleja resursseja (esim. muistipaikat), joihin useampi prosessi pääsee käsiksi ongelmia syntyy, kun kaksi prosessia kirjoittaa samaan aikaan tai kutsuu samaan aikaan samaa aliohjelmaa, tmv. kriittiselle alueelle päästetään vain yksi prosessi kerrallaan kaksi funktiota: entercritical ja exitcritical

5

6 Poissulkemisen vaatimukset (Stallings): Poissulkeminen täytyy pakottaa: Kaikista kriittiselle alueelle pääsyn omaavista prosesseista vain yksi kerrallaan voi olla kriittisellä alueella. Ei-kriittisellä alueellaan pysähtyvä prosessi ei saa vaikuttaa muiden prosessien suoritukseen. Kriittiselle alueelle pyrkivä prosessi ei saa joutua odottamaan loputtomasti – lukkiutumista tai nälkiintymistä ei saa tapahtua. Kun kriittisellä alueella ei ole prosesseja, millä tahansa kriittiselle alueelle pyrkivälle prosessille on annettava lupa siirtyä sinne. Prosessien suhteellisesta nopeudesta tai prosessien määrästä ei tehdä olettamuksia. Prosessi pysyy kriittisellä alueellaan korkeintaan äärellisen ajan.

7 Ohjelmistolähtöiset menetelmät: Dekkerin ja Petersonin algoritmit

8 Laitetason ratkaisut: jos vain yksi käsky, ongelmaa ei ole Yksinkertaisin tapa: ei keskeytyksiä kriittisen alueen suorituksen aikana (vain yhden prosessorin järjestelmässä while(true) { ; };

9 public boolean testset(int i) { if (i == 0) { i = 1; return true; }//if else return false }//testset while(true){ while( testset(vuoro)); ; vuoro=0; } Test and Set

10 Exchange public void exchange(rekisteri r, muisti m) { int tmp; tmp = m; m = r; r = tmp; }//exchange globaali muuttuja: int vuoro = 0; while(true){ avain = 1; do{vaihda(avain, vuoro)} while(avain == 1); ; vaihda(avain, vuoro); }

11 Menetelmässä on myös vakavat heikkoutensa: Se käyttää aktiivista odottamista, prosessoriaikaa kuluu, vaikka mitään hyödyllistä ei tehdä. Sitä on vaikea yleistää järjestelmiin, jossa ei ole yhteistä suojattua keskusmuistia. Nälkiintyminen on mahdollista. Koska seuraava kriittiselle alueelle pääsevä prosessi valitaan satunnaisesti, voi jokin prosessi joutua odottamaan loputtomasti. Lukkiutuminen on mahdollista. Jos prosessi P2 pääsee kriittiselle alueelle, ja korkeamman prioriteetin prosessi P1 keskeyttää sen ja pyytää päästä kriittiselle alueelle, voi kyseessä olla lukkiutumistilanne: P1 jää odottamaan P2 poistumista aktiivisessa silmukassa, mutta P2 ei välttämättä koskaan saa prosessoria, koska korkeamman prioriteetin prosessia ei keskeytetä sen vuoksi.


Lataa ppt "Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida."

Samankaltaiset esitykset


Iklan oleh Google