5.4 käyttöjärjestelmät

17
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ä

Upload: martin-cross

Post on 03-Jan-2016

34 views

Category:

Documents


1 download

DESCRIPTION

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ä: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 5.4 Käyttöjärjestelmät

5.4 Käyttöjärjestelmät

operating system (OS)OS on systeemiohjelmistoista tärkein ja monimutkaisintarkoituksena 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ä

Page 2: 5.4 Käyttöjärjestelmät

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

Page 3: 5.4 Käyttöjärjestelmät

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

Page 4: 5.4 Käyttöjärjestelmät

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 suoritusvuoroonkriteerejä: 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

Page 5: 5.4 Käyttöjärjestelmät

5.4.1. Vuoronvaihtoprosessi = ohjelman suorittaminen tietokoneessaOS:ssa monta käyttäjän sekä OS:n käynnistämää prosessiajos halutaan suorittaa monta prosessia samanaikaisesti, tulee prosessori jakaa prosessien kesken

vaihdetaan suoritettavaa prosessia toistuvasti tietyin perusteinvaihto tapahtuu nopeastitulee samanaikaisuuden vaikutelma, vaikka kullakin hetkellä aina 1 prosessi on suoritettavana

Page 6: 5.4 Käyttöjärjestelmät

Kun prosessi käynnistetään, se voi joutua mihin tahasna seuraavista tiloista:

suoritustila (running)aikaviipale = ajanjakso, jonka prosessi voi olla yhtäjaksoisesti suoritettavanaprosessille 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

Page 7: 5.4 Käyttöjärjestelmät

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)

Page 8: 5.4 Käyttöjärjestelmät

ajoittaja:pitää kirjaa vapaina olevien resurssien määrästä, kun resurssit varataan/vapautetaan

resurssien varaus:staattinen

kaikki prosessin tarvitsemat resurssit varataan kerrallaprosessi käynnistetään vasta, kun kaikki resurssit ovat saatavilla

dynaaminenresurssi 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

Page 9: 5.4 Käyttöjärjestelmät

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 sijaitamuistia 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 muististasiirtää prosessin dataa muistialueelta toiselle

kun pienet varaamattomat alueet halutaan yhdistää yhdeksi isommaksi

Page 10: 5.4 Käyttöjärjestelmät

Ohjelmaosoitteiden muuttaminen

objektikoodin osoitteet suhteellisiaosoitteiden 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 muuntoprosessorin tekemä objektiohjelman suorituksen aikana

1. alkusoitteiden käyttö

2. sivutus

Page 11: 5.4 Käyttöjärjestelmät

1. Alkuosoitteiden käyttö

talletetaan prosessille varatun muistialueen alkuosoitekun prosessi tulee suoritustilaan, alkuosoite siirtyy ns. kantarekisteriinobjektikoodisia konekielisiä käskyjä suorittaessa muistiviittaukset muutetaan dynaamisesti todellisiksi lisäämällä kantarekisterin arvo suhteelliseen osoitearvoontämä antaa OS:lle mahdollisuuden siirrellä koodipätkiä keskusmuistissa tarvittaessakun 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 suorittamiseksiRAM:ia on yleensä vähän

Page 12: 5.4 Käyttöjärjestelmät

Heittovaihto (swapping)

keskusmuistia on tietokoneessa vähän(etenkin kovalevymuistin määrään verrattuna)monta suoritettavaa prosessiavoidaan kasvattaa suoritusvalmiiden prosessorien määrä

siirretään odotustilassa olevien prosessien tiedot (koodi + data) oheismuistiinyleensä siirretään erityiseen nk. heittovaihtotiedostoonvapautetaan näin muistialue muiden prosessien käyttöönkun prosessin odotustila on loppu (se on taas suoritusvalmis)

siirretään prosessin tiedot takaisin heittovaihtotiedostosta keskusmuistiin

Heittovaihdon suorituksen kriteerejä:prosessin prioriteettiprosessin varaama muistin määräsiirrännän odotusaika (odotustilan kesto)muistissa oloaika tähän saakka

Page 13: 5.4 Käyttöjärjestelmät

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)

Page 14: 5.4 Käyttöjärjestelmät

2. Sivutus (paging)

mahdollistaa prosessin suorittamisen, vaikka kaikki sen tiedot eivät mahtuisikaan kerrallaan keskusmuistiintiedot jaetaan samankokoisiin osiin, sivuihinmyös RAM jaetaan sivunkokoisiin alueisiin, kehyksiin (frames)sivukoko = montako sanaa (muistipaikkaa) mahtuu yhdelle sivulle

yleensä 2:n potenssi, 1024, 2048esim. 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

Page 15: 5.4 Käyttöjärjestelmät

Sivutus…

virtuaalimuistitekniikka:päästään suorittamaan ohjelmia, joiden muistitarve on isompi kuin keskusmuistin kokoohjelman ei tarvitse olla kokonaan muistissa voidakseen tulla suoritetuksi

jos muistissa ei enää tilaa kun ohjelmasivu halutaan sijoittaa muistisivuun, jokin muistisivu pitää vapauttaa palauttamalla ohjelmasivu oheismuistiinpalautetaan:

muistissa pisimpään (longest resident) ollut sivukauimmin käyttämättä ollut (least recently used) sivuharvimmin 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)

Page 16: 5.4 Käyttöjärjestelmät

5.4.4 Siirräntä

OS käsittelee siirräntälaitteitaOS:n tulee tietää

milloin siirräntätoiminto alkaa ja päättyyhelppoa järjestää jos OS käsittelee siirrännän

Siirräntälaitteetjaettavissa olevia (shareable)

voivat käsitellä eri prosesseilta tulevaa dataesim. keskusmuisti

jakamattomiaesim. rivikirjoitinkorkeintaan 1 prosessin hallinnassakäytetään sivuajoa (spooling)

jakamattoman laitteen ja käyttäjäprosessin välillä on jaettava resurssi, esim. levy, jolle pyynnöt ohjataan jonoonesim. kirjoitin pysyvästi varattu kirjoitinspoolerille

se hakee tehtävät kirjoitinjonostahakee aina uuden työn, kun vanha on tulostettuprosessi ei joudu keskeyttämään suoritusta, vaan voi jatkaa, kun spooleri huolehtii tulostuksesta

Page 17: 5.4 Käyttöjärjestelmät

1. OS varmistaa pyynnön laillisuuden prosessi on todellakin ko. laitteen ”omistaja”

2. OS käynnistää siirrännänsiirtää prosessin siirrännän odotustilaan

pyytää vuoronantajaa valitsemaan uuden prosessin suoritettavaksi

3. Kun siirräntä on valmislaitteen 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