LUENTO 12 Vuorotuksen algoritmien vertailua ja 1. periodin kertaus Koealue: (Koe to 18.10 klo 16.00 A111) -Kirjan luvut 1-8 (paitsi 5.1 6.6) -Luennot 1-12, harjoitukset 1-6 -Opintopiiritehtävät 1 ja 2 Menetelmien vertailua Miten? Malli + Suorituskykyanalyysi Paljon liikkuvia osia: Palveluaikojen jakauma Vuorotuksen ja prosessin vaihdon yleisrasite Prosessien palveluntarve (CPU vs I/O sidonnaisuus) Prosessien saapumisten jakauma CPU:n ja I/O:n suorituskyky Mallinnus Käyttäjämalli Kuormamalli Vastausaikamalli Järjestelmämalli Mallinnus Käyttäjämalli Kuormamalli Vastausaikamalli Järjestelmämalli Mallinnus: täsmälliset käsitteiden määrittelyt oletukset järjestelmän ja ympäristön käyttäytymisestä tulosten tarkkuus? mallin validiteetin rajat? Suorituskyky: Suorituskyvystä ei voi puhua määrittelemättä työkuormaa oletettu/vaadittu kyky vastata tiettyihin palvelupyyntöihin järjestelmän käyttäytyminen verrattuna määrittelyyn (vallitsevaa kuormaa suorittaessaan) Mallinnusprosessin tavoite kuvauksien täsmällisyys menetelmän arvioitavuus kokeiden toistettavuus Mallin tavoite : oleellisen huomioonotto järjestelmän toimintamekaniikan ymmärtäminen (mitä / miten / miksi ; syy-seuraussuhteet) käyttökelpoisuus (laitteiston valinta, kapasiteetin suunnittelu, ohjauksen viritys, ) Mallin ratkaisumenetelmät mittaus analyyttiset mallit simulointimallit Mittaus Käyttäjämalli Kuormamalli Vastausaikamalli Järjestelmämalli Simulointi Käyttäjämalli Kuormamalli Vastausaikamalli Järjestelmämalli Mallinnus Mistä järjestelmän käyttäytymisestä ollaan kiinnostuneita? Miten sitä voidaan mitata (suoraan tai epäsuorasti)? Mitkä häiriötekijät on otettava huomioon? Järjestelmän instrumentointi mittarien toteutus mittarien häiriövaikutuksen arviointi Koesuunnittelu kuorma ajankohta, kesto koetoistot Mittaustulosten validiteetti? Tulosten validiteetin rajat? Muodostetaan järjestelmää kuvaava toiminnallinen malli komponentit palveluaikajakaumat, saapumisväliaikajakaumat töiden reititykset komponenttiverkon läpi Ohjelmoidaan simulaattori haaste: verifiointi (toimiiko oikein?) Koesuunnittelu koepisteiden määrittely: parametrien arvot kussakin pisteessä kokeen määrittely: mittauksen kesto; koetoistojen määrä Simulointi: mittauskoe simulaattorin toiminnasta Haaste: validiteetti (mallintaako oikeaa järjestelmää?) Syksy 2007, Tiina Niklander 12-1
Analyyttinen malli Käyttäjämalli Kuormamalli Vastausaikamalli Järjestelmämalli Muodostetaan järjestelmää kuvaava matemaattinen malli jonomalli jonoverkkomalli määrittelyt: yleensä todennäköisyysjakaumia Määritetään tai määritellään mallin parametrien arvot Lasketaan suorituskykysuureiden arvot Menetelmäpaletti laaja koulumatematiikka jonoteoria tasapainoyhtälönratkaisu (jne.) Mallin validiteetti? Tulosten validiteetin rajat? Menetelmän valinta Kriteeri Vaihe Ajan tarve Välineistö Tarkkuus (**) Entä jos Kustannus Myytävyys Mittaus Simulointi proton jälkeen milloin vain vaihtelee kohtalainen mittaristo ohjelmointikieli (*) vaihtelee kohtalainen vaikeaa onnistuu korkea kohtalainen korkea kohtalainen (*) ohjelmistotukea on olemassa (**) aina mahdollista: tulokset ovat täysin virheellisiä Analyyttinen milloin vain pieni analyytikko karkea helppoa pieni hankala Mallin rakenne Palvelijan vastausajan synty (1) tty Arrival W1 S1 W3 S3 W5 S5 cpu disk RR exp FCFS uniform Abstrakti matemaattinen rakenne (esim. laskentaa varten) Yksityiskohtainen toimintakuvaus (esim. simulointia varten) Service request Sending Collision? Transmission Receive OK? Handling_req CPU Disk odotusaika W2 S2 palveluaika W4 S4 CPU : palvelutarve Dcpu = S1+S3+S5 jonotusaika Qcpu = W1+W3+W5 läpimenoaika Rcpu = Dcpu+Qcpu DISK : Rdk = Ddk+Qdk Vastausaika R = Rcpu + Rdk Palvelijan vastausajan synty (2) Asiakkaat jonossa - jonomalli CPU Disk W1 S1 W2 S2 W3 S3 W4 R = Dcpu + Qcpu + Ddk + Qdk = Dcpu + Ddk + Qcpu + Qdk S4 W5 S5 Kevyt kuorma => R ~ R0 R = Σ Di Kuorma kasvaa => kukin Qi kasvaa (ylilineaarisesti) Raskas kuorma => R ~ Σ Wi (>> R0 R ) Viritys/kasvatus: DiD pienenee => vaikutus riippuu laitteen i kuormituksesta T s Operationaalinen jonomalli: kaikki suureet ovat mitattavissa S = B/C keskimääräinen palveluaika U = B/T käyttöaste X = C/T suoritusteho, läpäisy Käyttöastelaki U = XS T mittausaika A saapujien lkm C poistujien lkm B busy time λ = A/T ~ X saapumistiheys U = λ S Syksy 2007, Tiina Niklander 12-2
Littlen laki n(t) Littlen laki: perustelu Saapumistiheys X Little: : N = XR T r W = kokonaisoleskeluaika järjestelmj rjestelmässä (tumma alue) R = W / C keskimää ääräinen vastausaika N = W / T keskimää ääräinen jonopituus (*)( X = C / T läpäisy (*) Huom: jononpituus sisält ltää myös s palveltavan T Asiakas saapuu jonoon R jonon pituuden odotusarvo on N Asiakkaan läpimenoaika läpimenoajan odotusarvo on R tänä aikana jonoon saapuu uusia asiakkaita XR Asiakas poistuu jonosta jälkeen jäävän jonon pituuden odotusarvo on N => N = XR Littlen laki pätee myös varsinaiseen jonoon Avoin ja suljettu järjestelmä tty N X cpu disk Jonomalli HUOM: Tässä on eri symbolit kuin alkuosan kalvoissa! Fig 9.23 [Stal05] Lisätietoja: http://williamstallings.com/studentsupport.html Avoin järjestelmä (ääretön) populaatio asiakkaiden lkm vaihtelee saapumistiheys = poistumistiheys kysymys: vastausajan käyttäytyminen (käyttöaste?) Suljettu järjestelmä kiinteä asiakasjoukko kysymys: vastausajan käyttäytyminen vuon nopeus (käyttöasteet?) Jonomallin merkinnät Jonomallin rakenne palvelumalli saapumismalli saapumisväliaika liaika- jakauma jonon koon vaikutus saapumiseen populaation koko ryhmäsaapumiset palveluaika- skedulointi- jakauma algoritmi palvelijaryhmä FCFS (multiserver) Round Robin jonoton palvelija prioriteetti (infinite server) keskeytyvä rajoitettu puskuri keskeytymätön Syksy 2007, Tiina Niklander 12-3
Jonot: Kendallin notaatio A A / S / m / B / K / SD saapumisväliaikajakauma (M, E k, H k, D, G, ) S palveluaikajakauma (M, E k, H k, D, G, ) m palvelijoiden lukumäärä palvelupisteessä B jonopuskurin koko K populaation koko (asiakkaita maailmassa) SD skedulointialgoritmi (service discipline) Jonot: Kendallin notaatio (jatk) A / S / m / B / K / SD Jakaumamerkinnät M eksponentiaalijakauma Ek Erlangin jakauma Hk hypereksponentiaalinen D deterministinen (yksi mahdollinen arvo) G mielivaltainen jakauma (general) Tavallisia jonomalleja: M/M/1, M/M/m, M/M/m/B, M/G/1, M/D/1 Jonomallin ratkaisu saapumismalli M/M/1 palvelumalli Järjestelmän n tila: asiakkaiden lukumää äärä Mallin ratkaisu: järjestelmj rjestelmän n tilojen todennäköisyydet Esim: : P(0)?, P(asiakkaiden lukumää äärä > 10)? skedulointi- algoritmi eksponentiaalinen saapumisväliaika liaika- jakauma eksponentiaalinen palveluaika- jakauma First-Come Come-First-Serviced Eksponentiaalinen jakauma Täysin satunnaisen tapahtuman todennäköisyys (Ainoa) oletus: P{tapahtuma sattuu välillä t} = λ t => tiheysfunktio f() t = λe λt t>0 kertymäfunktio F( t) = 1 e t>0 odotusarvo E(t) 1/λ hajonta 1/λ Esimerkkejä: riippumattomien saapumisten väliajan jakauma satunnaisen eliniän jakauma Jonon tilamalli (M/M/1) λ < µ λ λ λ λ 0 1 2 3 µ µ µ µ 0: λp 0 = µp 1 1: (λ+µ)p 1 = λp 0 +µp 2 2: p 0 = (1- ρ) => p n = ρ n (1-ρ) λ saapumistiheys µ palvelutiheys HUOM: ajasta riippumattomia! ρ = λ/µ λ käyttöaste <1 p 0, p 1,? vuotasapainoehto: poistumistiheys = saapumistiheys p 1 = λ/µ p 0 = ρ p 0 p 2 = ρ p 1 = ρ 2 p 0. p n = ρ n p 0 Käyttöasteen vaikutus R 8S 6S 4S 2S S R = S / (1-U).. 0.25 0.5 0.75 1.0... U R 0.5 2*S 0.75 4*S 0.875 8*S Validiteettialue: λ < µ U Syksy 2007, Tiina Niklander 12-4
Vuorotuksen mallinnus FCFS (tai FIFO) ja Round Robin mallinnettavissa, useimmat muut liian monimutkaisia mallinnettavaksi suljetulla analyyttisellä mallilla Mallinnetaan prioriteettiskedulointia seuraavasti: Kaksi prioriteettiluokkaa, keskeyttävä moniajo Luokilla on eri suoritusajat Graafeissa lisäoletukset: Saapumistiheys sama molemmissa luokissa Alemman luokan suoritusaika = 5* ylemmän suoritusaika HUOM: Eri kaavat estävälle ja keskeyttävälle (priority) (no priority) (priority with preemption) Simulointiesimerkki Tuloksia HUOM: Simuloinnin tulokset pätevät vain kokeillulle kuormalle. Tässä esimerkissä: Saapumistiheys ja Palveluaika Ts satunnaistettuja: Arvotaan kullekin prosessille erikseen! 50000 prosessia λ = 0.8 T = 1 s ρ = λt Odotusarvoja! s = 0.8 Y-akseli on normalisoitu: Kokonaisaika on jaettu suoritusajalla RR: pitkillä töillä vakiollinen käyttäytyminen (noin 5 kertaa suoritusaika) FCFS: noin 1/3 töistä (Lyhyimmät) yli 10-kertainen läpimeno suoritusaikaan nähden Syksy 2007, Tiina Niklander 12-5
Kertaus Tärkeitä asioita 1/2 KJ:n perusrakenne Prosessi ja säie Kuvaaja, suoritus, tilan ja kontekstin vaihto Muistinhallinta MMUn rakenne Eri menetelmät Muistin varaukset, osoitteenmuunnos Virtuaalimuistimekanismi Sivutuksen periaate, osoitteenmuunnos PTR, Sivutaulu, osoitteenpuutoskeskeytys Algoritmit ja politiikat Tärkeitä asioita 2/2 Paikallisuus Keskeytysmekanismi Moniajo Etuoikeutettu tila Muita asioita UNIX, Linux, Windows KJ:n historia Synkronoinnin ja poissulkemisen mekanismit Välimuisti Kertausta Osa2: (vanhoja kalvoja) Käy läpi kirjan Review Questions! Jos osaat vastata kaikkiin hyvin, niin kokeessakin pitäisi pärjätä. Varmista, että osaat myös laskuharjoitustehtävät Syksy 2007, Tiina Niklander 12-6
Kerrosmalli Peruskäyttäjä näkee vain sovellukset Niiden alla on varusohjelmia ja käyttöjärjestelmä Sovellusohjelmoija näkee ja käyttää palvelurajapintaa (esim. funktiokirjastona) Käyttöjärjestelmä hallinnoi laitteistoa sovellusten puolesta Palvelupyynnöt Keskeytykset Keskeiset KJ:n osa-alueet Käyttäjä Sovellukset PROSESSIEN HALLINTA TIEDOSTOJÄRJESTELMÄ Laiteajurit Komentotulkki Palvelupyynnöt suojaus lohkot SIIRRÄNTÄJÄRJESTELMÄ Laiteohjaimet ja laitteet Varusohjelmat RESURSSIEN HALLINTA (laitekuvaajat) MUISTINHALLINTA Keskeytyskäsittely Käskysykli (täydennetty) Kuva 1.7 Keskeytyskäsittely (kuva 1.10) Kirja s. 21-25 Jos keskeytys sallittu, CPU tutkii tilarekisterin ennen seuraavan käskyn noutoa Jos keskeytys, suorita keskeytyskäsittelyn käskyt Start Interrupt Handler * Etuoikeutettu tila vs. käyttäjätila * Keskeytysten esto vs. salliminen Start Interrupt Handler * * Palvelupyyntö: read(fd, buffer, nbytes) Tan01 1-17 KJ:n ydin (Fig 4.10 [Stal 05]) Syksy 2007, Tiina Niklander 12-7
Prosessin tilakaavio (7 tilaa) KJ:n perustietorakenteita Kuva 3.10 Kuva 3.8 Yksi säie vs. Monta säiettä Solaris Säikeen kuvaaja TCB tallealue rekistereille, prioriteetti, tila, Moniprosessorikoneet cpu mem cpu LAN cpu uniprocessor Cpu1Cpu2Cpu3 mem multicomputer multiprocessor (Fig 4.8 [Stal05]) mem mem Yksinkertainen muistinhallinta Menetelmä Kiinteä partitio Dynaaminen partitio Buddy System Yks. segmentointi Yks. sivutus kuvaus Muisti jaettu etukäteen osiin. Prosessi vain yhdessä osassa. Muistia varataan tarpeen mukaan. Prosessi vain yhdessä osassa. Muistinvar. dyn., mutta kiinteänkokoisina osina. Prosessi vain yhdessä osassa. Prosessi jaettu segmentteihin. Segm. sijoitettavissa vapaasti. Prosessi ja muisti jaettu sivuihin. Sij. vapaasti vahvuudet helppo toteutus ei sis. pirst. par. muistin käyttöaste ei juurikaan ulkoista pirstoutumista ei sis. pirst. par. muistin käyttöaste ei ulk. pirst. heikkoudet sisäinen pirstoutuminen maksimi prosessimäärä rajoitettu ulkoinen pirstoutuminen, tiivistämistarve vähäinen sisäinen pirstoutuminen ulkoinen pirstoutuminen hyvin vähän sis. pirst. (vain viimeinen sivu) Syksy 2007, Tiina Niklander 12-8
Buddy System: esimerkki 2-tasoinen sivutaulu Ylin hakemisto mahtuu yhteen sivuun, aina muistissa 1 K alkiota (= 1024 = 2 10 ) Puu 1K * 1K = 1M alkiota Kuva 7.6 Käänteinen sivutaulu v.2 Etsintä TLB:stä Kuva 8.9 Sivutilan (kehyksen) numero Suoraan taulun indeksi Ei tarvitse tallettaa tauluun j Sivuttava segmentointi Kuva 8.13 Kuva 8.8. Syksy 2007, Tiina Niklander 12-9
Korvauspolitiikka Clock-poistoalgoritmi Fig 8.16 [Stal05] Esimerkki: Käyttöjoukko Fig 8.19 [Stal05] 2. periodi Luennot jatkuvat 30.10. Harjoitukset jatkuvat Englanniksi to 1.11. Suomeksi pe 2.11. Syksy 2007, Tiina Niklander 12-10