Ongelma(t): Jotta tietokonetta voitaisiin käyttää monipuolisesti ja mahdollisimman yksinkertaisesti kaikkiin sille soveltuviin käyttötarkoituksiin, niin miten tietokoneen resurssit tulisi antaa käyttöön ohjelmoijille, sovellusohjelmille ja käyttäjille? 2013-2014 Lasse Lensu 2
Tietokoneella voi suorittaa algoritmeja, jotka ovat muunnettu tietokoneelle sopivaan esitystapaan ja jotka huomioivat tietokoneen laitteiston sisältämät toiminnot. Tietokoneen muisteihin voi tallentaa algoritmeja ja tietoa, tietoa voi siirtää komponentista toiseen sekä tietokoneella voi käsitellä tietoa algoritmeja suorittaen. 2013-2014 Lasse Lensu 3
Tietojenkäsittelytieteen perusteet Tietokoneen resurssien käyttö 2013-2014 Lasse Lensu 4
Käyttöjärjestelmä 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 2013-2014 Lasse Lensu 5
Ohjelmistojen jaottelu esimerkinomaisesti Ohjelmisto Varusohjelmat Tietoliikenneohjelmat Valmisohjelmat Sovellusohjelmat Käyttöjärjestelmät Apuohjelmat Käyttöliittymät Tekstintoimittimet Tietokantajärjestelmät Käyttäjien laatimat ohjelmat 2013-2014 Lasse Lensu 6
Käyttöjärjestelmä Laitteistoa ja sovellusohjelmien suoritusta hallitseva ohjelmisto Erottaa sovellusohjelmat niiden käyttämästä laitteistosta: Ohjelmistokerros Ohjaa ohjelmistoa ja laitteistoa halutun toiminnan aikaansaamiseksi ja suorituskyvyn takaamiseksi erilaisissa käyttötarkoituksissa 2013-2014 Lasse Lensu 7
Käyttöjärjestelmä Hallitsee tietokoneen resursseja: Laitteisto Suorittimet Muistit muistihierarkian eri tasoilla Syöttö/tulostuslaitteet Tiedonsiirtolaitteet Ohjelmisto/muut sovellukset 2013-2014 Lasse Lensu 8
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) 2013-2014 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) 2013-2014 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 2013-2014 Lasse Lensu 11
Mikroydin vs. Muut toiminnot Vain välttämättömät laitetoiminnot ytimeen, joka suoritetaan etuoikeutetussa tilassa: Keskeytyskäsittelyn alkutoimet Mikä / kuka aiheutti? Vuoronvaihdon laitetoiminnot Rekistereiden kopiointia Muistinhallinnan laitetoiminnot MMU:n asetukset, suojaus Tiedonsiirron laitetoiminnot Ohjaimien käyttö, suojaus Prosessien välinen sanomanvälitys Pyyntöjen välitys, kopiointia prosessien muistialueille Muut käyttöjärjestelmän palvelut tavallisina prosesseina, jotka suoritetaan käyttäjätilassa: Laiteajurit, tiedostojärjestelmä, virtuaalimuisti Toteutus perustuu sanomanvälitykseen (IPC = inter-process communication) Joustavuus, laajennettavuus, siirrettävyys... 2013-2014 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. 2013-2014 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 (dispatcher) hoitaa prosessit suoritusvalmiiksi. Vuoronvaihto voi tapahtua keskeyttävästi tai eikeskeyttävästi. 2013-2014 Lasse Lensu 14
Prosessin tilat suorita prosessi prosessi saapuu keskeytä prosessi valmiina suoritettavaksi suoritettavana prosessi valmis toiminto valmis resurssipyyntö odotustilassa 2013-2014 Lasse Lensu 15
Ajoitus ja resurssit Ajoittaja (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 (deadlock): väh. 2 prosessia odottamassa resurssia, joka on varattuna toisella. 2013-2014 Lasse Lensu 16
Lukkiutuminen 2013-2014 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ä 2013-2014 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 2013-2014 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). 2013-2014 Lasse Lensu 20
Dynaaminen osoitteiden muunnos Alkuosoitteiden käyttö: Prosessin alkuosoite ja pituus muistissa Muistiosoite = alkuosoite + ohjelmaosoite Heittovaihto massamuistiin Pirstoutuminen Sivutus (paging): Prosessi vakiokokoisina sivuina Muistiosoite = sivu + muistipaikka Sivutaulu Segmentointi (segmentation) Yhdistetty segmentointi ja sivutus 2013-2014 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 2013-2014 Lasse Lensu 22
Tietoturva ja suojaus Käyttäjien tunnistus: Vain tunnuksen ja salasanan tuntevat käyttäjät saavat ottaa istunnon koneeseen Prosessilla aina omistaja Resurssien käyttöoikeus Prosessi käyttää resurssia vain omistajan luvalla: Tiedostoihin liittyy omistaja ja käyttöoikeudet Vain omistaja voi muuttaa käyttöoikeuksia Ohjelmat ja data suojattava toisilta ohjelmilta: Erityisen tärkeää on suojata KJ sovelluksilta Resurssien yhteiskäyttö silti sallittava 2013-2014 Lasse Lensu 23
Käyttöjärjestelmältä toivottuja ominaisuuksia Suorituskyky Vakaus Skaalautuvuus Laajennettavuus Siirrettävyys Turvallisuus Tietosuoja Vuorovaikutteisuus Käytettävyys 2013-2014 Lasse Lensu 24
Käyttöjärjestelmän kehitys ja ylläpito Laitteistot muuttuvat / uusia kehitetään kytkimet, kortit, nauhat, levyt merkkipohjaiset / graafiset päätteet tuki virtuaalimuistille muistin määrä kasvanut, väylät parantuneet, moniprosessorijärjestelmät, jne. Tietojenkäsittelytavat muuttuvat interaktiiviset reaaliaikaiset järjestelmät graafiset ikkunointiympäristöt paikallisverkot ja Internet kuvankäsittely... 2013-2014 Lasse Lensu 25
Käyttöjärjestelmän kehitys ja ylläpito Jatkuvan kehitystarpeen vuoksi modulaarinen rakenne selkeät liittymät eri osien välillä mahdollisesti oliopohjainen toteutus sisäinen vs. julkinen data Myös käyttöjärjestelmässä on puutteita ja virheitä: paikkopaketit (patches, service packages) uudet käyttöjärjestelmäversiot Milloin on aika tehdä käyttöjärjestelmä alusta alkaen uudelleen? 2013-2014 Lasse Lensu 26
Uutuuksia Laitteistokehitys moniprosessorijärjestelmät nopeat tietoliikenneverkot Nopeammat suorittimet Suurempi muisti, uudet talletusmediat Ohjelmistojen / käyttötapojen muutos: Asiakas/palvelin-malli Internet ja WWW Multimedia Mobiilikäyttöjärjestelmät ja ekosysteemit 2013-2014 Lasse Lensu 27
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 Tiedonsiirtolaitteet Sovellusohjelmat 2013-2014 Lasse Lensu 28