Kurssin asema Käyttöjärjestelmät, 8 op. Siirtymävaiheen vastaavuudet. Kurssin tavoite. Kurssikirja. Kurssin rakenne:

Samankaltaiset tiedostot
Käyttöjärjestelmät, 8 op

Kurssin asema Käyttöjärjestelmät, 8 op. Kurssikirja. Kurssin tavoite. Kurssin rakenne: Kurssin suorittaminen. Käyttöjärjestelmät - Luento 1

Käyttöjärjestelmät, 8 op

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1

Luento 2: LAITTEISTOSTA

Tervetuloa! (2 ov,, 4 op) KJ on tärkein tietokoneessa pörräävistä ohjelmista

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

u Tietokone ilman käyttöjärjestelmää on kuin

Käyttöjärjestelmän rakenne

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

LUENTO 0. Tervetuloa! Käyttöjärjestelmät II 2 ov Teemu Kerola. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Käyttöjärjestelmät II

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Stallings, Luku 1. KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-2. KJ-I S2003 / Auvo Häkkinen 2-1

Käyttöjärjestelmät II

Yleiskuva. Käyttöjärjestelmät II. Tietokonejärjestelm. rjestelmä. KJ ja laitteistopiirteet. KJ ja laitteistopiirteitä.

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Operating Systems, 8 op

Keskeiset KJ:n osa-alueet. Keskeiset KJ:n osa-alueet. 1) Prosessi. 2) Muistinhallinta. Käyttöjärjestelmän rakenne. Eräs toteutus

Keskeiset KJ:n osa-alueet

YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ

KJ-I I S2004 / Auvo Häkkinen & Tiina Niklander 4-1. Stallings, Lukua 2

Stallings, Luku 4.1. KJ-I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 4-1. KJ-I I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 12-1

1. Keskusyksikön rakenne

Prosessi perinteisesti

Osio 3: Prosessit, siirräntä ja tiedostojärjestelmä

Stallings, Luku 4.1. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

ltö Luento 6: VIRTUAALIMUISTI Luento 7: Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä Suoritus virtuaalimuistissa

Osio 3: Siirräntä ja tiedostojärjestelmä

u vapaakäyntisyys (reentrancy) u Yhteinen koodialue u kullakin oma data-alue, pino, PCB u osoitteet suhteellisia prosessin alun suhteen

Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka

NTÄ. Luento 8: SIIRRÄNT. Osio 3: Siirräntä ja tiedostojärjestelmä. ltö. Yleistä siirrännästä. Siirtonopeuksia (teoreettisia) Kuva 11.1.

Luento 6: VIRTUAALIMUISTI

Luento 3: PROSESSIT JA NIIDEN HALLINTA

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 5 (verkkoluento 5) Suoritin ja väylä

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Osio 2: Luennot 4-7 Muistinhallinta

Stallings, Luku

Sisältöä SÄIKEET, SMP

Tietokoneen toiminta, K Tavoitteet (4)

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Järjestelmän ulkoinen muisti I/O

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

Käyttöjärjestelmät: prosessit

Luento 5 (verkkoluento 5) Suoritin ja väylä

Jakso 5 Suoritin ja väylä

Jakso 5 Suoritin ja väylä

PROSESSIT JA NIIDEN HALLINTA

Prosessi virtuaalimuistissa PROSESSIT JA NIIDEN HALLINTA. Sisältöä. Prosessi virtuaalimuistissa. Prosessi. Prosessi. Käyttöjärjestelmät, Luento 4

Sisältöä PROSESSIT JA NIIDEN HALLINTA. Prosessi. Prosessi virtuaalimuistissa. Prosessi. Prosessi virtuaalimuistissa. Käyttöjärjestelmät

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Osio 2: Luennot 5-8 Muistinhallinta

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Käyttöjärjestelmän rajapinnat

Käyttöjärjestelmän rajapinnat. Siirräntä: Laiteajurit ja keskeytys. I/O-ohjain. I/O-ohjain. Siirtomenetelmät. Käyttöjärjestelmän rakenne

Prosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä. Jakso 8 Ohjelman suoritus järjestelmässä. Prosessin elinkaari (9)

u saantimenetelmät u kirjanpito vapaista lohkoista (taltiolla!) u hierarkkinen hakemistorakenne: kirjanpito tdstoista u tdstojen käyttö

VIRTUAALIMUISTI. Stallings, Luku 8.1

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 9 Järjestelmän ulkoinen muisti

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

2 Konekieli, aliohjelmat, keskeytykset

VIRTUAALIMUISTI. Stallings, Luku 8.1

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Luento 5 Suoritin ja väylä

Luento 9 Järjestelmän ulkoinen muisti

4. Luento: Prosessit ja säikeets. Tommi Mikkonen,

Osio 2: Luennot 4-7 Muistinhallinta YKSINKERTAINEN MUISTINHALLINTA. ltöä YLEISTÄ MUISTINHALLINNASTA. Looginen muisti.

Kuva 8.7. u Muunnos prosessin sivunumerosta sivutilanumeroksi u Kussakin alkiossa: u Katenoimalla. u MMU:ssa; juuri äsken käytettyjä muunnoksia

Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI

Luento 5 Suoritin ja väylä

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

Käyttöjärjestelmät: poissulkeminen ja synkronointi

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 9 Järjestelmän ulkoinen muisti

Luento 5 Suoritin ja väylä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

Luento 9 Järjestelmän ulkoinen muisti

ltöä (Luennot 5&6) Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS Pikakertaus: : a) b) c) Dyn.. part.: sijoitus Kuva Buddy System: esimerkki

SÄIKEET, SMP. Sisältöä. Stallings, Luku 4. Prosessi vs. säie Miksi säikeitä? ULT: Käyttäjätason säikeet KLT: Säikeiden toteutus ytimessä

Tietokoneen toiminta (Computer Organization I)

Sisältöä SÄIKEET, SMP

Jakso 8 Ohjelman toteutus järjestelmässä

Tietokoneen toiminta (Computer Organization I)

Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

MUISTINHALLINTA. Stallings, Luku 7

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Tietokoneen toiminta (Computer Organization I)

Luento 9 Järjestelmän ulkoinen muisti

Jakso 8 Ohjelman toteutus järjestelmässä

Ongelma(t): Jotta tietokonetta voitaisiin käyttää monipuolisesti ja mahdollisimman yksinkertaisesti kaikkiin sille soveltuviin käyttötarkoituksiin,

Luento 5 Suoritin ja väylä

Transkriptio:

LUENTO 1 Kurssin asema 582497 Käyttöjärjestelmät, 8 op Tiina Niklander Helsingin yliopisto Tietojenkäsittelytieteen laitos Hajautettujen järjestelmien ja tietoliikenteen erikoistumislinjan maisteriopintojen pakollinen kurssi Esitietoina edellytetään: Kandidaatin tutkinnon opinnot, ainakin Tietokoneen toiminta Rinnakkaisohjelmointi Edeltäjiä: Tietokone ja käyttöjärjestelmä Käyttöjärjestelmät I ja II Siirtymävaiheen vastaavuudet 2004 tutk. vaatimukset Tito (2 ov) KJ-I (2 ov) KJ-II (2 ov) HJ (3 ov) 2005 tutk. vaatimukset Tito (4 op) KJ (8 op) HJ (4 op) Kurssin tavoite Ymmärtää KJ:n perusrakenteet ja toteutusperiaatteet sekä käyttäjän että toteuttajan näkökulmasta Tuntea yleisperiaatteiden lisäksi myös vaihtoehtoisia algoritmeja ja toteutuksia Esimerkeinä Unix = Linux, Windows XP ja Solaris Kurssin jälkeen: Osaa kuvata käyttöjärjestelmän osat, niiden toiminnan ja vuorovaikutuksen Pystyy tarvittaessa vaikka lähdekoodin avulla selvittämään miten tietty käyttöjärjestelmä toteuttaa jonkin tietyn toiminnon Kurssikirja Kurssikirja [Stal05] William Stallings, Operating Systems, 5th. ed., Prentice-Hall, 2005 Oheislukemistoa [Tane01] A.S. Tanenbaum, Modern Operating Systems, 2nd. ed., Prentice-Hall, 2001. [DDC04] H.M. Deitel, P.J. Deitel, D.R. Choffnes, Operating Systems, 3rd ed., Prentice-Hall 2004 Mikä tahansa kirja, jonka otsikossa maagiset avainsanat Operating Systems Kurssin rakenne: Osio 1: Prosessit ja säikeet Myös käyttöjärjestelmän rakenne ja tehtävät Osio 2: Muistinhallinta Erityisesti virtuaalimuisti Myös vuorottaminen Osio 3: Siirräntä ja tiedostojärjestelmät Osio 4: Hajautus ja tietoturva Syksy 2006, Tiina Niklander 1

Kurssin suorittaminen Kurssin suorittaminen Tapa 1: luentokurssi Ilmoittaudu kurssin harjoitusryhmään Seuraa luentoja Tee viikoittaiset harjoitukset osallistu tavallisiin laskareihin Osallistu opintopiiriin ja tee ryhmätyöt Osallistu kurssikuulusteluihin Kerää riittävästi pisteitä harjoituksista, ryhmätöistä ja kokeesta Tapa 2: erilliskuulustelu Ilmoittaudu ja osallistu erilliskokeeseen Erilliskokeen koealue määritelty kurssikuvauksessa Koe max 60 pistettä Kurssin läpäisyyn tarvitset vähintään 30 pistettä HUOM: Vasta keväällä 2007 Ryhmätyöt (opintopiirit) Kolmeen ensimmäiseen osioon liittyy ryhmätyö Näistä saa pisteitä 1-4 Ryhmissä on 2-4 opiskelijaa Ryhmät sovitaan harjoituksissa, niistä voi ilmoittaa myös sähköpostitse luennoijalle Ryhmätyöt voivat olla Raportin kirjoittamista (selvitä miten jokin toimii tai on toteutettu) Ohjelmointia (toteuta jokin toiminnallisuus) Jotain muuta (simulaattori, yms.) WWW Informaatio Kurssin kotisivu http://www.cs.helsinki.fi/u/niklande/opetus/kj/ Uutisryhmä hy.opiskelu.tktl.kj Kertauskysymyksiä (vanhalta KJ-II kurssilta) https://www.cs.helsinki.fi/i/kerola/kj2/ kertaus/pract.html CSMoodle http://moodle.cs.helsinki.fi LUENTO 1 Sisältö Yleistä käyttöjärjestelmistä ja laitteistokertaus Käyttöjärjestelmän palvelut Käyttöjärjestelmän keskeisiä osa-alueita Prosessien hallinta Resurssien hallinta Muistin hallinta Tiedostojärjestelmä Siirräntäjärjestelmä (I/O) Laitteistosta Syksy 2006, Tiina Niklander 2

Tietokonejärjestelmä (=laitteisto + ohjelmisto) Sovellus saa laitteiston käyttöönsä KJ:n avustuksella CPU ja muisti oheislaitteet KJ tarjoaa laitteiston käytössä tarvittavat palvelunsa sovellukselle prosessien hallinta muistinhallinta siirräntäjärjestelmä tiedostojärjestelmä KJ on tärkein ja yleensä monimutkaisin laitteiston suorittamista ohjelmistoista Kerrosmalli Peruskäyttäjä näkee vain sovellukset Niiden alla on varusohjelmia ja käyttöjärjestelmä Sovellusohjelmoija näkee ja käyttää palvelurajapintaa (esim. funktiokirjastona) Käyttöjärjestelmä hallinnoi laitteistoa sovellusten puolesta Palvelupyynnöt Keskeytykset KJ:n tehtäviä ja palveluja KJ on ohjelmisto, joka huolehtii sovellusten suorituttamisesta prosessorissa antaa laitteiston sovelluksen käyttöön huolehtii, että sovellus ei yksin valloita koko laitteistoa tarjoaa turvallisen suoritusympäristön KJ on palveluliittymä sovelluksen ja laitteiston välillä laitteistopiirteiden hallinta sovelluksen ulkopuolella sovellus esittää tarpeensa palvelupyynnöin siirtyminen KJ:n palveluun keskeytysmekanismin kautta KJ optimoi laitteiston käyttöä hyvän suorituskyvyn saamiseksi KJ:n tarjoamia palveluja (1) Käyttöliittymä (user interface) Ikkunointiympäristö, komentotulkki (shell) Ohjelmointiympäristö (utility programs) editorit, kääntäjät, linkittäjät, debuggerit, Ohjelmien suorituttaminen prosessien käynnistäminen kirjanpito, lataaminen muistiin prosessien vuorottaminen CPU:n käyttövuorot, resurssien varaus ja käyttö prosessien tappaminen resurssien vapauttaminen KJ:n tarjoamia palveluja (2) Muistinhallinta varaa muistitilaa sovellukselle Siirräntä sovellus pyytää palvelua KJ:ltä KJ komentaa I/O-ohjaimia töihin Tiedostojen hallinta kirjanpito tdstoista, hakemistot tdstosta lukeminen / tallettaminen Suojaus muistin suojaus ja tdstojen käyttöoikeudet resurssien varaamisen kilpailutilanteet ja ristiriidat KJ:n tarjoamia palveluja (3) Virhetilanteiden hallinta laitteistovirheet ohjelmistovirheet resurssipula Virheistä toipuminen palauttaa statustietoa sovellukselle uudelleenyritykset prosessin tappaminen Välikysymys: Mitä yleistermi resurssi tarkoittaa? Syksy 2006, Tiina Niklander 3

KJ:n tarjoamia palveluja (4) Kirjanpito / tilinpito (accounting) tilastointi resurssien käytöstä suorituskyvyn seuranta (esim. vastausaika) järjestelmäparametrien optimointi hyvän suorituskyvyn saamiseksi koneen käyttäjien laskuttaminen Kirjanpito voi antaa vihjeitä siitä, kuinka KJ:tä voitaisiin kehittää edelleen Keskeiset KJ:n osa-alueet Käyttäjä Sovellukset PROSESSIEN HALLINTA TIEDOSTOJÄRJESTELMÄ Laiteajurit Komentotulkki Palvelupyynnöt suojaus lohkot SIIRRÄNTÄJÄRJESTELMÄ Laiteohjaimet ja laitteet Varusohjelmat RESURSSIEN HALLINTA (laitekuvaajat) MUISTINHALLINTA Keskeytyskäsittely Keskeiset KJ:n osa-alueet Keskeisimmät osa-alueet (kirjan jaottelu) 1) Prosessin käsite 2) Muistinhallinta 3) Tietoturva ja suojaukset 4) Vuorottaminen ja resurssien hallinta 5) Järjestelmän hierarkkinen rakenne vrt. edellinen kuva 1) Prosessi = Suoritettavaksi otettu ohjelma koodi muistissa (voi olla yhteiskäytössä) oma data-alue ja pino muistissa (muuttujat) kaikki ei välttämättä yhtäaikaa muistissa + KJ:n ylläpitämät hallinnolliset rakenteet prosessin kuvaaja PCB (Process Control Block) CPU:n dataa prosessin suorittamisesta prosessorin rekistereiden arvot KJ:n dataa prosessin hallitsemiseksi tunnistus, omistaja, prioriteetti.. tietoja prosessin varaamasta muistista, tdstoista, prosessin tila (esim. odottaa siirrännän valmistumista)... Eräs toteutus KJ:llä prosessilista, jossa viitteet prosessin kuvaajiin (context) CPU:ssa rekisteri, jossa suoritettavan prosessin numero Prosessinvaihto: CPU A:lta B:lle KJ talletti rekistereiden arvot A:n kuvaajaan KJ latasi B:n kuvaajasta arvot rekistereihin 2) Muistinhallinta Suoritusaikainen tallennus prosessit (ohjelmat+data) keskusmuistissa (primary memory) Pysyvä tallennus tiedostot (ohjelmat+data) tukimuistissa (secondary memory) Tilan allokointi KJ huolehtii automaattisesti kirjanpito vapaista muistialueista / levylohkoista kirjanpito varatuista muistialueista / levylohkoista tarvittaessa KJ käyttää levyä muistin jatkeena (virtuaalimuisti) Suojaus ja käyttöoikeudet prosessien eristäminen toisistaan silti tuettava modulaarista ohjelmointia koodin / datan yhteiskäyttö sallittua muistinsuojaus, tdstojen käyttöoikeudet Syksy 2006, Tiina Niklander 4

Muistinhallinta Virtuaalimuisti Kuva 2.9 Avainkäsite virtuaalimuisti Ei ota kantaa todellisen muistin määrään tai minne ohjelma muistissa sijoitetaan ohjelman muistiavaruus voi olla suurempi kuin fyysinen muistiavaruus (ts. todellinen muistin määrä) Suoritusaikana muistissa tarvittava osa koodista/datasta, loput levyllä MMU huomaa puuttumisen KJ lataa muistiin Ei näy sovelluksen ohjelmoijalle Kirjanpito? sivutaulu Virtuaalimuisti Kuva 2.10 Virtuaalimuisti Ohjelma käyttää virtuaaliosoitteita, ts. osoitteita ohjelman alun suhteen Laitteisto käyttää aina fyysisiä (todellisia) osoitteita MMU tekee osoitemuunnoksen aina suoritusaikana muistiin viitattaessa Jos viitattu osa ei ole keskusmuistissa MMU aiheuttaa keskeytyksen jos muistissa ei ole vapaata tilaa, KJ vapauttaa jonkin alueen KJ hakee levyltä puuttuvan osan muistiin 3) Tietoturva ja suojaus Käyttäjien tunnistus Vain tunnuksen & salasanan tuntevat käyttäjät saavat ottaa istunnon koneeseen Prosessilla aina omistaja Resurssien käyttöoikeus Prosessi käyttää resurssia vain omistajan luvalla tdstoihin 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 MMU ja ajaonaikainen osoitemuunnos Resurssien yhteiskäyttö silti sallittava 4) Resurssien hallinta Resurssi? CPU, muisti, tdsto, I/O-laite CPU:n allokointi = vuorottaminen (skedulointi) Milloin? Prosessia käynnistettäessä, suoritettaessa, tapettaessa KJ:n päätöksillä, prosessin (palvelu)pyyntöjen perusteella Vastausaika Interaktiivisuus vs. tausta-ajo (eräajo) KJ:n palveluprosessi vs. sovellus Tasapuolisuus Samanlaisille prosesseille samantasoinen palvelu Tehokkuus Maksimoi läpimenoaste, minimoi vastausajat Palvele mahd. useaa käyttäjää (sovellusta) Syksy 2006, Tiina Niklander 5

Vuorottamisen perusideoita Milloin? new ready Suoritukseen otetuille prosesseille READY-jono (short term queue) vuorottaja valitsee seuraavaksi suoritettavan prosessin (jonon ensimmäinen) Round-Robin: uusi työ jonon loppuun ja CPU:lta pois tuleva työ jonon loppuun Suoritettavaksi ottamista odottaville prosesseille oma jono (long term queue) ei liian monta prosessia yhtäaikaa READY-jonoon (moniajoaste) Kullakin tapahtumalla omat odotusjononsa I/O-laitteet, semaforit, ajastimet, kun CPU suorittaa KJ:tä 5) Hierarkkinen rakenne KJ muodostuu useista erillisistä tasoista Hierarkian ansiosta kokonaisuus jakaantuu helpommin hallittaviin osiin suunnittelu, toteutus, testaus Kullakin tasolla oma osajoukko tehtävistä ylemmillä tasoilla kehittyneimmät KJ:n palvelut alemmilla tasoilla laiteläheisimmät toiminnot Taso tarjoaa palvelunsa ylemmälle tasolle, käyttää alemman/alempien tasojen palveluja Rajapinnat hyvin määriteltyjä tason toteutusta voi muuttaa koskematta muihin tasoihin Laitetasot Brown, Denning 1984 Level Name Objects Example Operations 4 Interrupts Interrupt-handling Invoke, mask, unmask, programs retry 3 Procedures Procedures, call stack Mark stack, call, return 2 Instruction Set Evaluation stack, micro- Load, store, add, program interpreter, subtract, branch scalar and array data 1 Electronic circuits Registers, gates, buses, Clear, transfer, activate, etc. complement Mitä laitteistopiirteitä tarvitaan KJ:n toteutuksessa? KJ:n laiteriippuvat tasot Level Name Objects Example Operations 7 Virtual Memory Segments, pages Read, write, fetch 6 Local secondary Blocks of data, Read, write, allocate, free store device channels 5 Primitive processes Primitive process, Suspend, resume, wait, signal semaphores, ready P / V list Muistinhallinta: MMU:n rakenteen huomiointi Laiteajurit: ohjaimien ja esim. levyn rakenteen huomiointi Vuorottaja: rekistereiden talletus/palautus, synkronointiprimitiivit KJ:n laiteriippumattomat palvelut Level Name Objects Example Operations 13 Shell User programming Statements in shell language environment 12 User processes User processes Quit, kill, suspend, resume 11 Directories Directories Create, destroy, attach, detach, search, list 10 Devices External devices, such Create, destroy, open, close, as printer, displays read, write and keyboards 9 File system Files Create, destroy, open, close read, write 8 Communications Pipes Create, destroy, open. close, read, write Syksy 2006, Tiina Niklander 6

KJ-toteutuksen vaikeat kohdat Toimintojen synkronointi / ajoitus joskus odotettava että jotain muuta tapahtuu ennenkuin voi jatkaa keskeytysten oikea priorisointi laitteistosignaalit tai ohjelmien toisilleen välittämät tiedot eivät saa kadota tai kahdentua Poissulkeminen (Mutual exclusion) eräitä resursseja voi käyttää vain yksi kerrallaan esim. kirjoitin tai yhteinen tdsto / data Lukkiutuminen / Nälkiintyminen (Deadlock, Starvation) vaikeaa havaita odotettava resursseja, jotka ovat toisten hallussa huono prioriteetti, ei saada ensinkään palvelua kertaa RiO Poissulkemisongelma Mutex määrittely Ohjelmistoratkaisu Laitetuki ongelman ratkaisuun Lukko vai semafori? Milloin? Monitorit ja niiden toteutus Lukijat ja kirjoittajat (synkronointi) Miten tiedät, että ratkaisusi on oikein? Lukkiutumisongelma Lukkiutumisen havaitseminen Lukkiutumisen välttäminen Lukkiutumisen purkaminen Aterioivat filosofit Samanaikaisuuden hallinta Ch 5, 6.1-6 [Stal05] Laitteistosta Keskusyksikkö, Käskysykli Keskeytys ja sen käsittely, Siirräntä Muistihierarkia Stallings, Luku 1 = Tietokoneen Toiminta kurssin kertausta Keskusyksikkö Fig 1.1 [Stal05] Keskusyksikkö ks. Tietokoneen Toiminta -kurssi Muista tärkeä tilarekisteri PSW! Syksy 2006, Tiina Niklander 7

Keskusyksikön osat Prosessori (CPU) käskyjen suoritus (Keskus)muisti tilaa ohjelmille ja niiden datalle (myös KJ on ohjelma!) I/O ohjaimet (I/O kanavat, I/O prosessorit...) laitteistoa, joka siirtää tietoa muistin ja oheislaitteiden välillä syöttö- ja tulostuslaitteet tallennuslaitteet tietoliikennelaitteet kommunikointi rekistereitä (I/O portteja) käyttäen voivat sisältää omaa muistia (puskureita) Väylät tiedonsiirto eri osien välillä Muistinhallintayksikkö MMU Memory Management Unit Muuttaa ohjelman sisäisen osoitteen fyysiseksi muistiosoitteeksi ohjelma käyttää siirtymiä alkunsa suhteen laitteisto käyttää fyysisiä osoitteita MAR, Memory Address Register muistiosoitetta varten MBR, Memory Buffer Register Muistista noudettavan muistipaikan sisältö Muistiin kirjoitettava arvo Muistinhallintayksikkö MMU Kanta- ja rajarekisteriä käyttävä järjestelmä: Base Register: ohjelman fyysinen alkuosoite Limit Register: viimeinen kelvollinen fyysinen osoite tai viitattavissa olevan alueen pituus Virtuaalimuistijärjestelmä (esim.): PTR, Page Table Register Suoritettavan prosessin sivutaulun fyys. alkuosoite TLB, Translation Lookaside Buffer Viimeisimmissä osoitemuunnoksissa käytettyjä tietoja Prosessorin rekistereitä Ohjaus- ja tilarekisterit (Control & Status Registers) osa vain CPU:n sisäiseen käyttöön osa vain KJ:n käyttöön osa epäsuorasti ohjelmien viitattavissa hyppykäsky muuttaa PC:n arvoa vertailu asettaa tilarekisterin ehdollinen hyppykäsky tutkii tilarekisteriä Yleiskäyttöiset rekisterit (User-visible registers) ohjelmien käytettävissä (myös KJ:n!) viitattavissa nimellä konekielen tasolla datan ja osoitteiden tallettamiseen Ohjaus- ja tilarekistereitä Käskyosoitin PC (Program Counter) seuraavaksi suoritettavan käskyn virtuaaliosoite Käskyrekisteri IR (Instruction Register) suoritettavaksi noudettu käsky Tilarekisteri PSW (Program Status Word) Tietoa laitteiston tilasta ja toiminnan siihen aiheuttamista muutoksista lipukkeet (flags) vertailujen tuloksille, virhetilanteille keskeytyksille, keskeytyksien esto / salliminen etuoikeutettu tila / käyttäjätila Esimerkki Tilarekisteristä 32 bittiä (kunkin arvo 0 tai 1) GEL OZUM IS P D... D = Interrupts Disabled (kesk. esto) P = Privileged mode (etuoik. tila) S = SVC (supervisor call) palvelupyyntö I = device Interrupt (laitekeskeytys) M = forbidden Memory address U = Unknown instruction Z = divide by Zero O = arithmetic Overflow GEL = comparison indicators: Greater, Equal, Less Syksy 2006, Tiina Niklander 8

Käskysykli (perusmalli) Fig 1.2 [Stal05] CPU noutaa käskyn PC:n osoittamasta paikasta kasvattaa PC:n arvoa noutaa operandit rekistereistä tai muistista suorittaa käskyn yleensä ALU:ssa tallettaa tuloksen rekisteriin tai muistiin Yksinkertainen siirräntä Palvelupyyntö antaa kontrollin laiteajurille ŁCPU suorittaa KJ:n koodia Ajuri alustaa ohjaimen sekä antaa tarvittavat käskyt, jolloin siirräntä käynnistyy (4) Ajuri odottaa (pollaa), että siirräntä valmistuu Ajuri tekee lopputoimet, ja palauttaa sovellukselle statustietoa (5) ŁCPU odottelee jouten! Fig 1.5a [Stal05] Keskeytys Sallii CPU:n ja ohjaimien yhtäaikaisen toiminnan CPU vain käynnistää siirrännän, ja voi jatkaa muiden käskyjen suoritusta Kun siirto valmis, ohjain keskeyttää CPU:n CPU siirtyy suorittamaan KJ:hin kuuluvaa keskeytyskäsittelyä Kun KJ käsitellyt tilanteen, siirron valmistumista odottanut prosessi voi päästä taas suoritettavaksi Moniajo (multiprogramming) Siirräntä hidasta, eikä sovellus voi aina jatkaa ennenkuin siirto valmis esim. prosessi lukee tietoa oheislaitteelta Ł CPU odottaa toimettomana keskeytystä Idea: KJ ottaa suoritukseen useita prosesseja Kun yksi odottaa, suorita toista Entä, jos prosessi ei tee siirräntää? Ei palvelupyyntöjä, ei keskeytyksiä Muut prosessit nälkiintyvät Tarvitaan kello, joka keskeyttää Käskysykli (täydennetty) Kuva 1.7 Keskeytys - virhe - palvelupyyntö Start Interrupt Handler Jos keskeytys sallittu, CPU tutkii tilarekisterin ennen seuraavan käskyn noutoa Jos keskeytys, suorita keskeytyskäsittelyn käskyt Syksy 2006, Tiina Niklander 9

Siirräntä ja keskeytys Palvelupyyntö siirtää kontrollin KJ:n laiteajurille Ajuri alustaa ohjaimen ja antaa siirtokäskyn (4) Kontrolli takaisin sovellukseen CPU voi suorittaa sovelluksen käskyjä samaan aikaan siirron kanssa (2a) Kun siirto valmis, ohjain keskeyttää (x) Kontrolli keskeytyskäsittelylle, josta edelleen ajurille Ajuri tarkastaa miten siirrossa kävi, ja tekee tarvittavat lopputoimet (5) Kun keskeytys käsitelty, sovelluksen suoritus jatkuu (2b) Fig 1.5b [Stal05] Keskeytyskäsittelijä (Interrupt handler) KJ:n koodia, jonka laitteisto käynnistää keskeytyksen sattuessa Selvittää keskeytyksen syyn Käynnistää toimet tilanteen hoitamiseksi Siirtyminen sopivaan käsittelyrutiiniin Keskeytynyttä prosessia voitava jatkaa myöhemmin siitä mihin se jäi keskeytyksen sattuessa CPU:n rekistereiden arvot talletettava muistiin PC, PSW, muut ohjelman käyttämät rekisterit Kuva 1.11 Keskeytyskäsittely (kuva 1.10) Kirja s. 21-25 * Etuoikeutettu tila vs. käyttäjätila * Keskeytysten esto vs. salliminen Start Interrupt Handler * * Keskeytys Paluu Peräkkäinen käsittely Priorisoitu käsittely hyöty / haitta? Kirjoitin hyöty / haitta? Tietoliikenne Keskeytykset estetty käsittelyn aikana PSW:n keskeytykset estetty lipuke Uudet keskeytykset jäävät odottamaan Kun käsitelty, CPU tutkii taas keskeytyslipuketta Alemman prioriteetin keskeytyskäsittely jää kesken, jos tulee kiireellisempi keskeytys ŁMyös keskeytyskäsittely voi keskeytyä! Esim. Tietoliikenneohjaimen keskeytys käsitellään välittömästi, jotta saadaan uutta tilaa saapuvalle datalle Syksy 2006, Tiina Niklander 10

Muistihierarkia Tan01 1.14 Pentium 4 cache: 8 KB datalle, 12 KB koodille, ulkoinen 256 KB nano = 10-9, mikro = 10-6, milli = 10-3 Välimuisti (cache memory) Pieni, nopea muisti / rekisterijoukko CPU:n ja keskusmuistin välissä CPU:n osana ja / tai ulkopuolella Laitetasolla, ei näy ohjelmissa / KJ:ssä CPU tutkii ensin löytyykö viitatun fyys. muistipaikan sisältö välimuistista Jos ei löydy, CPU tuo välimuistiin lohkon, joka sisältää myös viitatun muistipaikan Real Address -> osoitemuunnos tehty MMU:ssa! Osumatodennäköisyys (Hit Ratio) = Todennäköisyys, että viitattu muistipaikka on välimuistissa Kuva 1.18 T1 = saantiaika välimuistista T2 = saantiaika keskusmuistista T2 >> T1 Kun osumatodenn. lähellä arvoa 1, keskim. saantiaika lähellä T1:tä Paikallisuus (locality of references) Ajallinen ja alueellinen paikallisuus: Esim. silmukassa suoritetaan toistuvasti samaa käskyjoukkoa Tietyssä osassa koodia käytetään tyypillisesti vain tiettyjä muuttujia (data) Ł Kun ohjelma viittaa tiettyyn muistipaikkaan (käsky tai data), on tn., että se viittaa pian samaan paikkaan uudelleen tai sen lähellä oleviin muistipaikkoihin Osumatodenn. helposti lähellä arvoa 1 jo pienellä välimuistilla Lohkopuskurit (block cache, disk cache) Keskusmuistialue, jonne puskuroidaan levyltä / levylle siirrettävää dataa ei siis erillinen laitteiston osa Kun tiettyihin tavuihin on viitattu, viitataan pian melko varmasti niitä seuraaviin tavuihin Jos haettavat tavut eivät löydy puskurista, siirtää KJ kokonaisen levylohkon levyltä puskuriin Ennaltanouto Paikallisuus! Syksy 2006, Tiina Niklander 11