Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

5.4 Käyttöjärjestelmät operating system (OS) OS on systeemiohjelmistoista tärkein ja monimutkaisin tarkoituksena on helpottaa ja tehostaa tietokoneen käyttöä.

Samankaltaiset esitykset


Esitys aiheesta: "5.4 Käyttöjärjestelmät operating system (OS) OS on systeemiohjelmistoista tärkein ja monimutkaisin tarkoituksena on helpottaa ja tehostaa tietokoneen käyttöä."— Esityksen transkriptio:

1 5.4 Käyttöjärjestelmät operating system (OS) OS on systeemiohjelmistoista tärkein ja monimutkaisin tarkoituksena on helpottaa ja tehostaa tietokoneen käyttöä kaikissa tietokoneissa on OS OS:n tärkeimpiä tehtäviä: • monen laitteen samanaikainen hallinta - tiedonsiirron hallinta tietokonelaitteiston eri osien välillä (s/t ja ulkoiset muistilaitteet) • monen ohjelman samanaikainen hallinta - ohjelmien suorituksen ohjaus • monen käyttäjän samanaikainen hallinta – tietokoneen resurssien jako käyttäjille • muistinhallinta – keskus- ja toissijaisen muistin ylläpito - huolehtiminen tietojen säilytyksestä niitä käytettäessä ja myös pitkällä aikavälillä

2 Miksi käyttää käyttöjärjestelmää? jos OS:ä ei olisi, mitään ei tehtäisi käyttäjän puolesta, käyttäjä joutuisi tekemään kaiken itse esim. ohjelman suorittamiseksi vaadittavat askeleet: siirrä kääntäjä oheismuistista keskusmuistiin käynnistä kääntäjä, syötä sille käännettävä ohjelma joltakin syöttölaitteelta käännä ohjelma, sijoita käännöksen tulos (objektiohjelma) oheismuistiin linkitä objektiohjelma kirjastoihin yms. apuohjelmiin latausmoduuliksi siirrä latausmoduuli oheismuistista keskusmuistiin käynnistä suoritettava ohjelma, anna syöttötiedot joltakin syöttölaitteelta vastaanota ohjelman tulosteet jollekin tulostuslaitteelle

3 Tietokoneen tehokas käyttö • mitä enemmän ihminen on mukana ek. prosessissa, sitä tehottomampaa tietokoneen käyttö on • käyttäjän valintoihin kuuluva aika on ikuisuus prosessorin kannalta • ratkaisu: vaiheiden automatisointi => tehokkuus kasvaa • myös siirräntätoiminnot ovat hitaita • prosessori pystyy tekemään niitä oheistoimintoina, tai niitä tekee toinen IO-prosessori  prosessori vapautuu muita tehtäviä varten  tehtäviä voi lomittaa sen sijaan, että suoritettaisiin peräkkäin

4 Jotta usean työn samanaikainen suorittaminen olisi mahdollista, käyttöjärjestelmän tulee tarjota seuraavat toiminnot: resurssien varaaminen (resource allocation): töille varataan resursseja: muistia, siirräntälaitteita, prosessoria vuoronvaihto (dispatching) prosessoriresurssin varaaminen työlle, työn vaihto suoritusvuoroon ajoitus (scheduling) päätös siitä, mikä oheismuistissa oleva työ tulee seuraavaksi suoritusvuoroon kriteerejä: kiireellisyysaste, resurssien saatavuus, resurssien tarve, odotusaika resurssien suojaus (resource protection) varmistus siitä, että työ ei pääse käsiksi resurssiin, jota se ei ole varannut keskeytysten käsittely (interrupt handling) siirräntäpyyntöjen käsittely

5 5.4.1. Vuoronvaihto prosessi = ohjelman suorittaminen tietokoneessa OS:ssa monta käyttäjän sekä OS:n käynnistämää prosessia jos halutaan suorittaa monta prosessia samanaikaisesti, tulee prosessori jakaa prosessien kesken vaihdetaan suoritettavaa prosessia toistuvasti tietyin perustein vaihto tapahtuu nopeasti tulee samanaikaisuuden vaikutelma, vaikka kullakin hetkellä aina 1 prosessi on suoritettavana

6 Kun prosessi käynnistetään, se voi joutua mihin tahasna seuraavista tiloista: suoritustila (running) aikaviipale = ajanjakso, jonka prosessi voi olla yhtäjaksoisesti suoritettavana prosessille annetaan uusi aikaviipale sen tullessa suoritustilaan suoritusvalmiustila (ready to be run) kun aikaviipale loppuu siirräntälaitteen/muun resurssin odotustila (blocked) tuli siirräntäpyyntö ja odotetaan, kunnes siirtäntä on valmis vuoronantaja = prosessin vaihtaja (dispatcher) pyrkii tasapuolisuuteen ajassa ja vuorojen määrässä esim. jos prosessi on saanut ylivoimaisesti suoritusaikaa muihin prosesseihin nähden, vuoronantaja pienentää aikaviipaleen koon

7 5.1. Ajoitus ja resurssien varaaminen Algoritmi tarvitsee aika-, muisti- ja laitteistoresursseja yksi tehtävä koostuu monesta prosessista, joista kukin tarvitsee resursseja ennen kun prosessi on suorituskelpoinen, sen tarvitsemat resurssit on varattava tietokoneesta ajoittaja saattaa prosessit odotustilasta suoritusvalmiustilaan suoritusjärjestys määräytyy seuraavien seikkojen mukaan: prosessin tarvitsemien resurssien määrä vapaina olevien resurssien määrä prosessiin liittyvän työn prioriteetti (tärkeys, kiireellisyysaste) työn odotusaika (jonka se on jo odottanut)

8 ajoittaja: pitää kirjaa vapaina olevien resurssien määrästä, kun resurssit varataan/vapautetaan resurssien varaus: staattinen kaikki prosessin tarvitsemat resurssit varataan kerralla prosessi käynnistetään vasta, kun kaikki resurssit ovat saatavilla dynaaminen resurssi varataan vain ennen sen välitöntä käyttöä prosessi voidaan käynnistää heti, mutta jos käytettävä resurssi on varattu, prosessi joutuu odotustilaan  parempi resurssien hyväksikäyttö, mutta lukkiuman mahdollisuus: - kaksi prosessia pitää kumpikin hallussaan resurssia, jota toinen tarvitsee - kummankaan suoritus ei voi jatkua - molemmat jäävät odottamaan ikuisesti - ratkaisu: toisen prosessin keskeytys, jotta toinen pääsisi jatkamaan

9 5.1.2 Muistinhallinta (memory management) 1.Muistin varaus (allocation) prosessille varataan riittävästi muistia 2.Suojaus (protection) prosessia ei saa päästää muistialueelle, jota sille ei ole varattu 3.Hyväksikäyttö (utilization) muisti on ainoa paikka, jossa suoritettavat prosessit ja niiden data voivat sijaita muistia tulee käyttää tehokkaasti hyväksi: muistia varataan riittävästi, jotta prosessi pääsisi suorittamaan tehtäväänsä muistia varataan siten, että siinä on aina suoritusvalmiustilassa olevia prosesseja OS:n tulee voida varata mikä tahansa riittävän suuri vapaa alue muistista siirtää prosessin dataa muistialueelta toiselle kun pienet varaamattomat alueet halutaan yhdistää yhdeksi isommaksi

10 Ohjelmaosoitteiden muuttaminen objektikoodin osoitteet suhteellisia osoitteiden laskenta osoitteesta 0 eteenpäin ennen ohjelman (prosessin) suoritusta objektikoodin ohjelmaosoitteet on muutettava todellisiksi muistiosoitteiksi jotta osoitteet sijaitsevat sillä muistialueella, minkä OS on prosessille varannut kaksi muuntotapaa: staattinen muunto lataajan tekemä ennen suorituksen alkua dynaaminen muunto prosessorin tekemä objektiohjelman suorituksen aikana 1.alkusoitteiden käyttö 2.sivutus

11 1. Alkuosoitteiden käyttö talletetaan prosessille varatun muistialueen alkuosoite kun prosessi tulee suoritustilaan, alkuosoite siirtyy ns. kantarekisteriin objektikoodisia konekielisiä käskyjä suorittaessa muistiviittaukset muutetaan dynaamisesti todellisiksi lisäämällä kantarekisterin arvo suhteelliseen osoitearvoon tämä antaa OS:lle mahdollisuuden siirrellä koodipätkiä keskusmuistissa tarvittaessa kun toinen prosessi tulee aktiiviseksi, se periaatteessa voisi viitata toisen prosessin muistialueeseen (hakkerointia) estetään pitämällä yllä tietoa prosessin pituudesta (muistialueen pituus, eli muistipaikkojen lukumäärä) menetelmän haitta: kaikkien tietojen tulee olla samanaikaisesti muistissa muistia pitää olla tarpeeksi prosessin suorittamiseksi RAM:ia on yleensä vähän

12 Heittovaihto (swapping) keskusmuistia on tietokoneessa vähän (etenkin kovalevymuistin määrään verrattuna) monta suoritettavaa prosessia voidaan kasvattaa suoritusvalmiiden prosessorien määrä siirretään odotustilassa olevien prosessien tiedot (koodi + data) oheismuistiin yleensä siirretään erityiseen nk. heittovaihtotiedostoon vapautetaan näin muistialue muiden prosessien käyttöön kun prosessin odotustila on loppu (se on taas suoritusvalmis) siirretään prosessin tiedot takaisin heittovaihtotiedostosta keskusmuistiin Heittovaihdon suorituksen kriteerejä: prosessin prioriteetti prosessin varaama muistin määrä siirrännän odotusaika (odotustilan kesto) muistissa oloaika tähän saakka

13 kun prosessin käyttämä muistialue vapautetaan (prosessin päätyttyä), alue voidaan varata toiselle prosessille, jonka muistintarve on pienempi muistialueen loppuun jää käyttämätön pätkä samoin voi käydä seuraavallekin muistialueelle  muistitilan vapauttamiset ja uudelleen varaamiset voivat aiheuttaa pirstoutumista -varattujen alueiden välissä on hyödyttömän pieniä yhtenäisiä vapaita alueita ratkaisu: yhdistetään pirstoutuneet alueet yhdeksi isoksi alueeksi siirtämällä varatut muistialueet niin, että niiden väliin ei jää vapaata tilaa Pirstoutuminen (fragmentation)

14 2. Sivutus (paging) mahdollistaa prosessin suorittamisen, vaikka kaikki sen tiedot eivät mahtuisikaan kerrallaan keskusmuistiin tiedot jaetaan samankokoisiin osiin, sivuihin myös RAM jaetaan sivunkokoisiin alueisiin, kehyksiin (frames) sivukoko = montako sanaa (muistipaikkaa) mahtuu yhdelle sivulle yleensä 2:n potenssi, 1024, 2048 esim. vuoksi 1000 todellisen muistiosoitteen laskenta: 1)millä ohjelmasivulla muistipaikka sijaitsee mikä on muistipaikan numero ohjelmasivun alkuosoitteeseen nähden -esim. sivukoko 1000, ohjelmaosoite 2764 -ohjelmasivu on 2764//1000=2 ja siirros on 2764-2000=764 2)mille RAM:in kehykselle (muistisivulle) ohjelmasivu sijoittuu -tieto on sivutaulussa (page table) -kuvaus muistisivu -> ohjelmasivu -OS pitää yllä sivutaulua kullekin suoritettavalle prosessille -sivutaulussa tiedot: -onko ohjelmasivu muistissa vai ei -jos on, sen muistisivun osoite, jossa ohjelmasivu on -jos ei, sijainti oheismuistissa (tiedoston nimi tai heittovaihtotiedoston paikka) -sivu täytyy hakea oheismuistista -prosessi siirtyy odottamaan siirron loppua

15 Sivutus… virtuaalimuistitekniikka: päästään suorittamaan ohjelmia, joiden muistitarve on isompi kuin keskusmuistin koko ohjelman ei tarvitse olla kokonaan muistissa voidakseen tulla suoritetuksi jos muistissa ei enää tilaa kun ohjelmasivu halutaan sijoittaa muistisivuun, jokin muistisivu pitää vapauttaa palauttamalla ohjelmasivu oheismuistiin palautetaan: muistissa pisimpään (longest resident) ollut sivu kauimmin käyttämättä ollut (least recently used) sivu harvimmin käytetty (least frequently used) sivu ohjelmasivu = muistisivu (kehys) + pirstoutumista ei voi tapahtua + muistin käyttö on tehokasta - sivutaulujen ylläpito aiheuttaa oman kuormituksen (overhead)

16 5.4.4 Siirräntä OS käsittelee siirräntälaitteita OS:n tulee tietää milloin siirräntätoiminto alkaa ja päättyy helppoa järjestää jos OS käsittelee siirrännän Siirräntälaitteet jaettavissa olevia (shareable) voivat käsitellä eri prosesseilta tulevaa data esim. keskusmuisti jakamattomia esim. rivikirjoitin korkeintaan 1 prosessin hallinnassa käytetään sivuajoa (spooling) jakamattoman laitteen ja käyttäjäprosessin välillä on jaettava resurssi, esim. levy, jolle pyynnöt ohjataan jonoon esim. kirjoitin pysyvästi varattu kirjoitinspoolerille se hakee tehtävät kirjoitinjonosta hakee aina uuden työn, kun vanha on tulostettu prosessi ei joudu keskeyttämään suoritusta, vaan voi jatkaa, kun spooleri huolehtii tulostuksesta

17 1.OS varmistaa pyynnön laillisuuden prosessi on todellakin ko. laitteen ”omistaja” 2.OS käynnistää siirrännän siirtää prosessin siirrännän odotustilaan pyytää vuoronantajaa valitsemaan uuden prosessin suoritettavaksi 3.Kun siirräntä on valmis laitteen tilarekisteriin kirjoitetaan arvo, jota kutsutaan keskeytyspyynnöksi prosessori siirtyy suorittamaan keskeytyskäsittelijää (interrupt handler) tunnistetaan keskeytyksen aiheuttanut laite ja prosessi prosessin tila muutetaan takaisin suoritusvalmiustilaan jatketaan sen prosessin suorittamista, jonka suoritus keskeytyi Siirräntäpyynnön käsittely


Lataa ppt "5.4 Käyttöjärjestelmät operating system (OS) OS on systeemiohjelmistoista tärkein ja monimutkaisin tarkoituksena on helpottaa ja tehostaa tietokoneen käyttöä."

Samankaltaiset esitykset


Iklan oleh Google