1 / 17

5.4 Käyttöjärjestelmät

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

Download Presentation

5.4 Käyttöjärjestelmät

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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) • Muistin varaus (allocation) • prosessille varataan riittävästi muistia • Suojaus (protection) • prosessia ei saa päästää muistialueelle, jota sille ei ole varattu • 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 • alkusoitteiden käyttö • 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. Pirstoutuminen (fragmentation) • 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

  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: • millä ohjelmasivulla muistipaikka sijaitseemikä on muistipaikan numero ohjelmasivun alkuosoitteeseen nähden • esim. sivukoko 1000, ohjelmaosoite 2764 • ohjelmasivu on 2764//1000=2 ja siirros on 2764-2000=764 • 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. Siirräntäpyynnön käsittely • OS varmistaa pyynnön laillisuuden • prosessi on todellakin ko. laitteen ”omistaja” • OS käynnistää siirrännän • siirtää prosessin siirrännän odotustilaan • pyytää vuoronantajaa valitsemaan uuden prosessin suoritettavaksi • 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

More Related