Käyttöjärjestelmät Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet
Kurssin sisältö Johdanto, historiaa miten käyttöjärjestelmät ovat kehittyneet ja saaneet alkunsa erilaisia käyttöjärjestelmistä VAX/VMS, UNIX Microsoft Prosessien hallinta, skedulointi, moniajo Muistinhallinta, sivutus, virtuaalimuisti Levynkäsittely luku- ja kirjoitusrutiinit keskeytykset ja I/O Yhteenveto käyttöjärjestelmien rakentumisesta Kehitysnäkymät
Kurssin aikataulu PVM Sisältö Huom! 7.1. Johdanto, tietokoneen rakenteesta 14.1. Käyttöjärjestelmien osa-alueet ja historia Harjoitustehtävä 1 21.1. Prosessit ja niiden tilat 28.1. Prosessien resurssit ja erilaiset kj-ytimet Harjoitustehtävä 2 4.2. Säikeet ja rinnakkaisuus 11.2. Poissulkeminen ja semaforit 18.2. Lisää semaforeista Harjoitustehtävä 3 4.3. Muistinhallinta 11.3.. Lisää muistinhallinnasta Harjoitustehtävä 4 18.3 Tiedostojärjestelmien perusteet 25.3. Erilaisia tiedostojärjestelmiä Harjoitustehtävä 5 1.4.??? 8.4. Kehitysnäkymiä 15.4. Kertausta Harjoituskoe 22.4. Koe
Tietokoneen rakenne Prosessori Rekistereitä Muistia I/O Sekundaarimuisti Viestintä Terminaalit Väylä Prosessorien, muistin ja I/O:n väliseen kommunikointiin
Prosessorin rekisterit Sisäiset rekisterit Muistinkäsittelyrekisterit: MAR, MBR Status- ja kontrollirekisterit: PC, IR, PSW, Flags (Ohjelmoijan) käytettävissä olevat rekisterit Dataa Osoittamiseen (index, segment, stack)
Käskyn suorittaminen 1. Prosessori hakee käskyn muistista Program counter (PC) osoittaa haettavan käskyn osoitteen Intruction registeriin (IR) haetaan uusi käsky ja PC:ia kasvatetaan 2. Prosessori suorittaa käskyn IR:ssä oleva käsky suoritetaan Mennään kohtaan 1
Keskeytykset Keskeytykset nimensä mukaisesti keskeyttävät prosessorin normaalin toiminnan Tarvitaan tehostamaan prosessorin käyttöastetta mm. hitaiden I/O-operaatioiden takia Erityyppisiä keskeytyksiä Ohjelmallinen Ajastin I/O H/W-virhe Prosessori tarkistaa, onko keskeytyksiä
Käskyn suorittaminen ja keskeytykset
Keskeytykset moniajojärjestelmissä Prosessorilla on useampi ohjelma ajettavanaan Järjestys riippuu prioriteetista ja I/O:sta Kun keskeytyskäsittelijä on suoriutunut tehtävästään, kontrolli voi palata jollekin muullekin ohjelmalle???
Muistihierarkia Muistien ominaisuudet: Nopeampi saantiaika suurempi kustannus Suurempi kapasiteetti pienempi hinta/bitti Suurempi kapasiteetti hitaampi saantiaika
Muistihierarkia Alaspäin mentäessä: hinta/bitti halpenee kapasiteetti kasvaa saantiaika kasvaa käsittelypyynnöt harvenevat
Muistityypeistä Sekundäärimuisti Apumuistia Hidasta Pysyvä tila non-volatile Tallennetaan ohjelmia ja tiedostoja
Muistityypeistä Cache - välimuisti Prosessorin suoritusnopeus suurempi kuin muistin Pieni määrä erittäin nopeaa muistia Käytetään paikallisuusominaisuutta hyväksi
Muistityypeistä Cache - välimuisti sisältää kopion osasta päämuistia prosessori tarkistaa ensin välimuistista jos haluttua dataa ei löydy välimuistista, niin muistiblokki luetaan välimuistiin paikallisuusperiaatteen mukaan on todennäköistä, että seuraavat muistiviittaukset osuvat samaan muistiblokkiin tulevat muistiviittaukset osuvat välimuistiin
Välimuistin toiminnasta Jopa pienellä cachella on suuri vaikutus nopeuteen Muistiblokin koko vaikuttaa Jos blokin kokoa kasvatetaan, niin osumia tulee lisää mutta, jos blokin kokoa kasvatetaan liikaa, niin uuteen blokkiin osumisen todennäköisyydestä tulee pienempi kuin sieltä poistettuun blokkiin osumisen todennäköisyys Mapping function määrittää uuden blokin paikan Korvausalgoritmi määrittää, mikä blokki korvataan Yleensä LRU eli least-recently-used Kirjoituspolitiikka määrittelee, milloin muistiin kirjoitetaan
Johdanto käyttöjärjestelmiin POHDINTATAUKO Mitä käyttöjärjestelmät ovat? Miksi käyttöjärjestelmiä tarvitaan?
Käyttöjärjestelmien perusteet Ohjelma, jota tarvitaan asiakasohjelmien (sovellusten) ajamiseen Liityntä sovellusten ja laitteiston välillä Tavoitteena Helpottaa elämää Tehokkuus Jatkokehitysmahdollisuus
Tietokonejärjestelmien arkkitehtuuri Tietokonejärjestelmää voidaan ajatella hierarkkisena koneena Järjestelmä voidaan jakaa kerroksiin Kukin kerros toteutetaan alapuolella olevan kerroksen palvelujen avulla Kerros Sovellus Kääntäjä Käyttöjärjestelmä Laitteisto Rajapinta Ohjelmointikieli Virtuaalikone Arkkitehtuuri
Käyttöjärjestelmien historiaa Alkuun tietokoneita käytettiin sarja-ajoihin käyttöliittymänä kytkimiä ja valoja sekä syöttölaite ja tulostin ei varsinaista käyttöjärjestelmää ajanvaraus koneelle, ohjelman syöttö, kääntäminen ja ajo jos ohjelman ajossa tuli ongelmia, käyttäjän aika saattoi loppua kesken
Käyttöjärjestelmien historiaa Seuraavaksi kehitettiin eräajojärjestelmät Ajanvarausten tekeminen sarja-ajoja varten oli hankalaa Ei enää tarvetta operoida tietokonetta suoraan Asiakas toi ohjelmansa koneen operaattorille Eräajojen hallintaa varten tarvittiin monitori-ohjelma Ohjelma-ajot tehtiin erissä (batch) Ohjelma palauttaa päättyessään kontrollin takaisin monitorille Monitori suorittaa automaattisesti seuraavan jonossa olevan ohjelman
Töiden hallinta eräajojärjestelmissä Monitoriohjelman osan tulee olla aina ladattuna muistiin (resident monitor) Monitoriohjelma lukee työn kerrallaan sisään lukulaitteelta Työ siirretään muistin ohjelmaalueelle (user program area) ja kontrolli annetaan ko. työlle Kun työ on valmis, tulokset lähetetään esim. tulostimelle Mitä tämä tarkoittaa prosessorin kannalta??? M o n i t o r Interrupt processing Device drivers Job sequencing Control language interpreter User Program area
Laitteistovaatimuksia eräajojärjestelmälle Muistin suojaus Käyttäjän ohjelma ei saa kirjoittaa monitorin muistiin Mitä tehdään, jos tällaista yritetään??? Ajastukset Keskeyttää ohjelman suorituksen, jos se on ollut pitkään käynnissä Miksi tarvitaan???
Laitteistovaatimuksia eräajojärjestelmälle Etuoikeutetut käskyt Tietyt käskyt ovat vain monitorin suoritettavissa Esim. työjonon I/O-luku ja kirjoitus Mitä tehdään, jos käyttäjän ohjelma yrittää suorittaa ko. käskyä? Keskeytykset Ensimmäisissä tietokoneissa ei ollut keskeytyksiä
Muistin suojaus Käyttäjän ohjelmat ajetaan käyttäjämoodissa (user mode) Tiettyjä käskyjä ei saa suorittaa Monitoria ajetaan etuoikeutetussa eli järjestelmämoodissa (system mode) Sallii etuoikeutetut käskyt Suojattuihin muistialueisiin voidaan kirjoittaa
Suoritinajan käyttötehokkuus eräajossa Yleensä I/O-käsittely on erittäin hidasta Pääosan ajasta suoritin odottaa lukuoperaatioita Tyypillisesti yli 90 % koneen ajasta menee hukkaan
Moniajo (multiprogramming/multitasking) Ongelmaa voidaan helpottaa moniajolla Kun normaalisti odoteltaisiin I/O:ta, suoritetaankin toista ohjelmaa
Ajankäyttö moniajossa Esimerkki: Kolme erilaista työtä Yksi tekee laskentaa, kaksi I/O:ta
Ajankäyttö: yksiajo vs. moniajo
Tehtävä: Käyttöjärjestelmien historia Selvitä seuraavat asiat Minkä nimisiä olivat ensimmäiset käyttöjärjestelmät? Nimi, vuosi, kehittäjä, tyyppi, Minkä tyyppisiä käyttöjärjestelmiä ilmestyi sarja- ja eräajojärjestelmien jälkeen? Miten Unix sai alkunsa?
Time sharing systems Moniajoa voidaan käyttää myös interaktiivisten töiden käsittelyyn Suorittimen aikaa jaetaan monen eri käyttäjän kesken Käyttäjät ottavat yhteyden järjestelmään terminaaleilla
Compatible Time Sharing System - CTSS