5.4 käyttöjärjestelmät
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 PresentationTRANSCRIPT
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ä
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
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
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
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
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
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)
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
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
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
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
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
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)
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
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)
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
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