Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle, sovellusohjelmille ja käyttäjille? 2012-2013 Lasse Lensu 2
Tietokoneella voi suorittaa algoritmeja, jotka on muunnettu tietokoneelle sopivaan esitystapaan ja jotka huomioivat tietokoneen laitteiston tarjoamat toiminnot. Tietokoneen muisteihin voi tallentaa algoritmeja ja tietoa, tietoa voi siirtää komponentista toiseen sekä tietokoneella voi laskea algoritmeja suorittaen. 2012-2013 Lasse Lensu 3
Tietojenkäsittelyn perusteet II Tietokoneen resurssien käyttö 2012-2013 Lasse Lensu 4
Tietokoneen resurssien käyttö 2012-2013 Lasse Lensu 5
Käyttöjärjestelmät Alaoutinen S. 2008 Boberg J. 2010 Brookshear J.G. 2005 Ikonen L. 2011 Tietokoneen ohjelmistot Tietokoneen resurssit Käyttöjärjestelmän tehtävät Tehtävien toteutuksia 2012-2013 Lasse Lensu 6
Ohjelmistojen esimerkkijaottelu Ohjelmisto Varusohjelmat Tietoliikenneohjelmat Valmisohjelmat Sovellusohjelmat Käyttöjärjestelmät Apuohjelmat Käyttöliittymät Tekstintoimittimet Tietokantajärjestelmät Käyttäjien laatimat ohjelmat 2012-2013 Lasse Lensu 7
Käyttöjärjestelmä Laitteistoa ja sovellusohjelmien suoritusta hallitseva ohjelmisto Erottaa ohjelmat niiden käyttämästä laitteistosta: Ohjelmistokerros Ohjaa ohjelmistoa ja laitteistoa halutun toiminnan aikaansaamiseksi ja suorituskyvyn takaamiseksi 2012-2013 Lasse Lensu 8
Käyttöjärjestelmä Hallitsee tietokoneen resursseja: Laitteisto Suorittimet Muistit Syöttö/tulostuslaitteet Tiedonvälityslaitteet Ohjelmisto/muut sovellukset 2012-2013 Lasse Lensu 9
Käyttöjärjestelmään liittyvät kerrokset Komentotulkki (shell) / käyttöliittymä: Käyttäjän yhteys käyttöjärjestelmään Graafinen tai merkkipohjainen Ydin (kernel): Käyttöjärjestelmän perustoiminnot sisältävä ohjelmisto (Laitteisto) 2012-2013 Lasse Lensu 10
Käyttöjärjestelmän (ytimen) tehtävät Systeemikutsurajapinta Prosessinhallinta: Viestinvälitys Suorituksenhallinta (ajanjako) Muistinhallinta Syöttö- ja tulostietojen hallinta: Tiedostojärjestelmä Puskurointi (välimuisti) Laiteohjaimet, laitteiston hallinta 2012-2013 Lasse Lensu 11
Käyttöjärjestelmän tehtäviä Resurssien varaaminen (resource allocation): Töille 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ä, ettei työ pääse käsiksi resurssiin, jota se ei ole varannut Keskeytysten käsittely (interrupt handling) Tiedonsiirtopyyntöjen käsittely (input/output) 2012-2013 Lasse Lensu 12
Prosessit Ohjelma = sarja käskyjä Prosessi = ohjelman suoritusympäristö Prosessin tila = suoritusympäristön hetkellinen tila: Suorituksessa/valmiina suoritukseen/odottaa (resurssia) Tietokoneessa on tyypillisesti käynnissä useita prosesseja yhtä aikaa (käyttöjärjestelmän tai käyttäjän käynnistämiä) Prosessoriaikaa ja muita resursseja pitää jakaa prosessien kesken: Toistuvasti, nopeilla vaihdoilla tulee samanaikaisuuden vaikutelma, vaikka vain yksi prosessi käsittelyssä kerrallaan. 2012-2013 Lasse Lensu 13
Vuoronvaihto Yksittäinen ohjelman suoritukseen liittyvä työ voi koostua useista prosesseista. Yksi prosessi kerrallaan suoritusvuorossa yhdessä suorittimessa suoritin jaettava prosessien kesken. Vuoronvaihtaja (engl. dispatcher) hoitaa prosessit suoritusvalmiiksi. Vuoronvaihto voi tapahtua keskeyttävästi tai eikeskeyttävästi. 2012-2013 Lasse Lensu 14
Prosessin tilat suorita prosessi prosessi saapuu keskeytä prosessi valmiina suoritettavaksi suoritettavana prosessi valmis toiminto valmis resurssipyyntö odotustilassa 2012-2013 Lasse Lensu 15
Ajoitus ja resurssit Ajoittaja (engl. scheduler) päättää suoritusvuorosta Ajoituksessa huomioitava: Tarvittavat resurssit Vapaat resurssit Prosessiin liittyvän työn tärkeys (prioriteetti) Prosessin odotusaika suoritukseen Resurssien varaus staattisesti tai dynaamisesti: Staattinen: resurssit valmiiksi ennen käynnistystä Dynaaminen: varataan suorituksen aikana Dynaaminen resurssien varaus voi johtaa lukkiutumiseen (engl. deadlock): väh. 2 prosessia odottamassa resurssia, joka on varattuna toisella. 2012-2013 Lasse Lensu 16
Lukkiutuminen 2012-2013 Lasse Lensu 17
Ajanjakoalgoritmeja FIFO (First-In-First-Out; syn. FCFS, First-Come- First-Served) LIFO (Last-In-First-Out) Round Robin SJF (Shortest Job First; syn. SPN, Shortest Process Next) SRT (Shortest Remaining Time) HRRN (Highest Response Ratio Next) Takaisinkytkentä 2012-2013 Lasse Lensu 18
Muistinhallinta Käyttöjärjestelmän tehtävä Huomioitavia tekijöitä: Varaus prosessin muistitarpeiden mukaan Suojaus siten, että prosessilla on pääsy vain sille tarkoitettuun muistiin Hyväksikäyttö tehokkaasti siten, etteivät prosessit joudu odottelemaan turhaan 2012-2013 Lasse Lensu 19
Muistinhallinta Sivu on pienehkö muistiyksikkö (usein 4 kilotavua), jota käyttöjärjestelmä käsittelee kokonaisuutena. Virtuaalimuisti on jatkettu muistialue: Toteutetaan siirtämällä muistisivuja päämuistin ja massamuistin välillä Ohjelmointikielen kääntäjän tuottamien suhteellisten osoitteiden muuttaminen todellisiksi osoitteiksi staattisesti (suorituksen alkaessa) tai dynaamisesti (suorituksen aikana). 2012-2013 Lasse Lensu 20
Dynaaminen osoitteiden muunnos Alkuosoitteiden käyttö: Prosessin alkuosoite ja pituus muistissa Muistiosoite=alkuosoite+ohjelmaosoite Heittovaihto massamuistiin Pirstoutuminen Sivutus (engl. paging): Prosessi vakiokokoisina sivuina Muistiosoite=sivu+muistipaikka Sivutaulu Segmentointi (engl. segmentation) Yhdistetty segmentointi ja sivutus 2012-2013 Lasse Lensu 21
Tiedostojärjestelmä Hakemisto, kansio: käyttäjän luoma ryhmä, nippu tiedostoja Polku: tiedoston sijainti hakemistohierarkiassa Tiedostokuvaaja: avoimen tiedoston käyttämiseen tarvittava tunnus, jonka käyttöjärjestelmä antaa sovellukselle 2012-2013 Lasse Lensu 22
Käyttöjärjestelmältä toivottuja ominaisuuksia Suorituskyky Vakaus Skaalautuvuus Laajennettavuus Siirrettävyys Turvallisuus Tietosuoja Vuorovaikutteisuus Käytettävyys 2012-2013 Lasse Lensu 23
Yhteenveto Tietokone koostuu suorittimesta, muisteista, tietoväylistä sekä syöttö- ja tulostusliitynnöistä. Käyttöjärjestelmä kuuluu tietokoneen varusohjelmistoihin. Käyttöjärjestelmä hallitsee tietokoneen laitteistoa ja resursseja: Suorittimet Muisti Syöttö- ja tulostuslaitteet Tiedonvälityslaitteet Sovellusohjelmat 2012-2013 Lasse Lensu 24