Käyttöjärjestelmät II. SMP, Mikroytimet. Prosessit yleensä. UNIX prosessit. UNIX SVR4 Prosessit. UNIX prosessin kuvaaja

Samankaltaiset tiedostot
KJ-II K2006 / Auvo Häkkinen - Teemu Kerola

Prosessit ja säikeet SMP, Mikroytimet W2K säikeet

Sisältöä SÄIKEET, SMP

Sisältöä SÄIKEET, SMP

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ä

Prosessi perinteisesti

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

Käyttöjärjestelmät II

KJ:n ydin (Fig 4.10 [Stal 05])

KJ:n ydin (Fig 4.10 [Stal 05])

Mikroydin (vs monoliittinen ydin)

Käyttöjärjestelmät II

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

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

Käyttöjärjestelmät: prosessit

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

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

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

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

PROSESSIT JA NIIDEN HALLINTA

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

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

Käyttöjärjestelmän rajapinnat

Jakso 8 Ohjelman toteutus järjestelmässä

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

Jakso 8 Ohjelman toteutus järjestelmässä

Luento 8 Ohjelman toteutus järjestelmässä

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

LUENTO 8. u erillisten koneiden ryväs (cluster) u hajautettu järjestelmä (distributed system) u erilliset I/O-prosessorit

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola II:ssa?

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

VUOROTTAMINEN SMP JA REAALIAIKAJÄRJESTELMÄT Linux, W2000

Tietokoneen toiminta, K Tavoitteet (4)

NYKYAIKAISET KÄYTTÖ- JÄRJESTELMÄT

LUENTO 2. u moniajoa monen käyttäjän ympäristössä, oma KJ versio. u sisältää keskeiset tietoliikenneprotokollat

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

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Arto Salminen,

Luento 3: PROSESSIT JA NIIDEN HALLINTA

2 Konekieli, aliohjelmat, keskeytykset

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

Keskeiset KJ:n osa-alueet

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

Jakso 8 Ohjelman suoritus järjestelmässä

Windows 2000 (eli W2K)

Käyttöjärjestelmät, Luento 6. Windows 2000 (eli W2K) W2K: Säikeet. W2K: Prosessi ja sen resurssit. Säietoteutuksia: Windows, UNIX

Jakso 8 Ohjelman suoritus järjestelmässä

Käyttöjärjestelmän rakenne

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

Processes and threads

KJ:N KEHITTYMINEN JA YLLÄPITO

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

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

Järjestelmän ulkoinen muisti I/O

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

Prosessi (4) Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi. Prosessin vaihto (4) Prosessin elinkaari (9)

Windows 2000 (eli W2K)

Käyttöjärjestelmät. Windows 2000 (eli W2K) W2K: Säikeet. W2K: Prosessi ja sen resurssit. Säietoteutuksia: Windows, Solaris, UNIX

Prosessi (4) Luento 8 Ohjelman toteutus järjestelmässä. Prosessi. Prosessin vaihto (4)

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

Luento 8 Ohjelman toteutus järjestelmässä

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

Kernel (Fig 4.10 [Stal 05]) Operating Systems Examples and Process Management

VUOROTTAMINEN: SMP ja Reaaliaikajärjestelmät Linux, W2000

Moniprosessorijärjestelmä

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

Muistihierarkia Kiintolevyt I/O:n toteutus

Osio 2: Luennot 4-7 Muistinhallinta

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

Stallings, Lukua 2. KJ-I S2004 / Tiina Niklander, kalvot: Auvo Häkkinen 3-2. KJ-I I S2004 / Tiina Niklander, kalvot: Auvo Häkkinen 3-1

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

Moniprosessorijärjestelmä

OSA II: Hajautettu ympäristö. Sisältö, osa II. Ei yhteistä muistia. Sanomanvälitys. Etäproseduurikutsu. Rendezvous. Rio 2004 / Auvo Häkkinen

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

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

KJ:N KEHITTYMINEN JA YLLÄPITO

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

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

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

Jakso 5 Suoritin ja väylä

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

Luento 1 Tietokonejärjestelmän rakenne

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

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

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

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Stallings, Luku

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

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Jakso 5 Suoritin ja väylä

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

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

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

Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI

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

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

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

Transkriptio:

Käyttöjärjestelmät II Prosessit ja säikeet SMP, Mikroytimet W2K säikeet Stallings, Ch 3-4.43 LUENTO 3 Mitä KJ-I:ss I:ssä / KJ-II:ssa II:ssa? KJ I + RIO (luvut 3.1-3, 4.1, 5, 6.1-6) Prosessin tilat, jonot, PCB Luonti, prosessinvaihto, prosessi vs. säie, TCB User-level vs. kernel-level threads Samanaikaisuuden hallinnan perusasiat Seuraavaksi KJ-II:ssa (luvut 3-6 loppuun) UNIX prosessien hallinta Moniprosessorijärjestelmä, SMP Mikrokernel W2K: säikeet, SMP Solaris: säikeet, SMP Linux: prosessit ja säikeet Samanaikaisuuden hallinta eri KJ:ssä (luento 3) (luento 4) 1 2 Käyttöjärjestelmät II Prosessit yleensä UNIX prosessit Ch 3 [Stal 05] Käsite Tilat Resurssit Prosessin tiedot u kuvaaja PCB ks. Fig 3.9 [Stal05] ks. Fig 3.10 [Stal05] ks. Tbl 3.4 [Stal05] ks. Tbl 3.5 [Stal05] 3 4 UNIX SVR4 Prosessit Pääosa KJ-työstä tapahtuu käyttäjätason prosessien sisällä u etuoikeutetussa tilassa (SVC, keskeytys) Osa KJ-työstä tapahtuu KJ-prosesseissa u etuoikeutetussa tilassa Yhdeksän eri prosessin tilaa Etuoikeutettu prosessi ei voi menettää suoritinta u ellei se itse pyydä jotain resurssia, joka ei ole vapaana Prosessi 0 boot Prosessi 1 init (mother of all) (Fig. 3.15 (b) [Stal05] ) ks. Fig. 3.17 [Stal05] UNIX prosessin kuvaaja Kääntäjän tiedoista: User Level Context Suoritinympäristö: Register Context KJ:n tiedot: System Level Context u staattinen F prosessin tilatiedot (Process Table Entry) F prosessin hallintotiedot (U Area) u dynaaminen F muistialueet (Region Table) F oma pino etuoik. tilan koodille (Kernel Stack) Tbl 3.10 [Stal05] Tbl 3.11 [Stal05] Tbl 3.12 [Stal05] 5 6 KJ-II K2006 / Teemu Kerola (lu3) 3-1

UNIX prosessin luonti Ytimen systeemikutsu pid=fork() u varaa paikka prosessitaulusta Process Table u anna uniikki ID (nelinumeroinen) u kopioi vanhemman koko prosessinkuvaaja uudelle prosessille (tai luo ihan uudet rakenteet!) F vain linkki yhteiseen muistialueeseen u lisää aukiolevien tiedostojen käyttäjien määrää yhdellä (jos tavallinen sibling ) u siirrä uusi prosessi RR-jonoon u palauttaa lapsen pid:n vanhemmalle ja pid=0 lapselle (tämä on ainoa ero koodinäkökulmasta) F esimerkki seuraavalla kalvolla 7 UNIX fork() while (TRUE) { /* repeat forever /* type_prompt( ); /* display prompt on the screen */ read_command(command, params); /* read input line */ pid = fork( ); /* fork off a child process */ if (pid < 0) { printf("unable to fork0); /* error condition */ continue; /* repeat the loop */ if (pid!= 0) { /* parent waits for child */ waitpid ( 1, &status, 0); else { /* child does the work */ execve(command, params, 0); Fig. 10-7 [Tane01]. A highly simplified shell. 8 Käyttöjärjestelmät II Säikeet Symmetric MultiProcessors (SMP) Mikroytimet Ch 4 [Stal 05] Prosessit ja säikeets Ennen (kun ei säikeitä) Nyt u prosessi: F resurssien hallinta F suorittava (laskentaa tekevä) yksikkö u prosessi F resurssien hallinta u säie F säikeet toteuttava yksikkö F samanaikainen suoritus usealla suorittimella? ks. Fig 4.1 [Stal05] ks. Fig 4.3 [Stal05] ks. Fig 4.2 [Stal05] ks. Fig 4.6 [Stal05] ks. Fig 4.7 [Stal05] 9 10 Flynnin jaottelu moniprosessorikoneille Michael J. Flynn, 1966 Moniprosessorikoneet cpu mem SISD: Single Instruction - Single Data u yksi käsky, yksi data u normaali CPU: yksi ALU, yksi CU, yksi MEM SIMD: Single Instruction - Multiple Data u yksi käsky, monta data-alkiota u taulukkoprosessori: monta erikoistunutta ALUa u vektorisuoritin: vektorikonekäskyt, vektorirekisterit MISD: Multiple Instruction - Single Data u Ei mielekäs MIMD: Multiple Instruction - Multiple Data u monta käskyä ja monta dataa u tiukasti kytketty: monta CPU:ta, yhteinen MEM u löyhästi kytketty: monta CPU:ta, kullakin oma MEM uniprocessor Cpu1Cpu2Cpu3 mem multiprocessor cpu Lan cpu multicomputer (Fig 4.8 [Stal05]) mem mem 11 12 KJ-II K2006 / Teemu Kerola (lu3) 3-2

Master-slave slave vs. SMP Toinen jaottelu yhteisen muistin moniprosessorikoneille (NUMA) 13 14 http://www.blachford.info/computer/cells/cell1.html KJ-II K2006 / Auvo Häkkinen - Teemu http://www.intel.com/technology/hyperthread/intro_nexgen/ Kerola 13.3.2006 15 16 Kolmas jaottelu yhteisen muistin moniprosessorikoneille SMP: Symmetric Multiprocessing (NUMA) (NUMA) samalla lastulla vai ei? Useita suorittimia (CPU) Yhteinen muisti organisoitu lohkoihin useita yhtäaikaisia viittauksia Yhteiset oheislaitteet Välimuistien yhteneväisyys (coherency)? (Fig. 4.9 [Stal 05]) 17 18 KJ-II K2006 / Teemu Kerola (lu3) 3-3

Huomioitava SMP KJ:ssä Samanaikaisuuden hallinta (Ch 5-6, RIO) u KJ voi olla suoritettavana usealla CPU:lla u KJ:n oltava vapaakäyntinen (re-entrant) u KJ:n tietorakenteiden käsittelyssä tarvitaan poissulkemista Vuorotettavana useita CPU:ita (Ch 10) u KJ:kin voi olla suorituksessa yhtäaikaa eri CPU:illa u saman prosessin säikeiden vuorottaminen Synkronointi, lukot (Ch 5-6, RIO) u poissulkeminen ja tapahtumien järjestys Muistinhallinta (Ch 7-8) Ulkoisten keskeytysten käsittely Vikasietoisuus: joku CPU voi pudota pois u tästä ei tarvinnut murehtia yhden CPU:n kanssa! u ollaanko vikasietoisia vai ei? miten? 19 Käyttöjärjestelmät II Mikroytimet Ch 4.3 [Stal05] 20 KJ:n ydin (Fig 4.10 [Stal[ 05]) Monoliittinen ydin "Kokoelma KJ:hin kuuluvia funktioita", jotka käännetään yhdeksi binäärikoodiksi u koko KJ etuoikeutetussa tilassa u funktio voi kutsua suoraan toista funktiota 21 22 Monoliittinen ydin Periaatteessa kaikki KJ:n osat pääsevät käsiksi kaikkiin tietorakenteisiin u globaalien muuttujien käyttö F ei edes parametrien kopiointi hidastamassa u kopioi itse tieto suoraan paikalleen F ei sanomanvälitystä F ei etuoikeutettu tila käyttäjätila -vaihtoja Sovellus käyttää palvelua palvelupyynnöllä u parametrit esim. pinoon, keskeytys u vastaus suoraan annettuihin muuttujiin tai pinossa Nopeus, tehokkuus, yksinkertaisuus Ongelmat? Mikroydin (mikrokernel) Etuoikeutetussa tilassa toimiva pieni KJ:n ydin (core functions) u tärkeät laitetason liittymät u minimijoukko muita perustoimintoja Muut alijärjestelmät käyttäjätilassa u laiteajurit u tiedostojärjestelmät u virtuaalimuistin hallinta u ikkunoitu käyttöliittymä u turvallisuusosia, mm. käyttäjien tunnistus Alijärjestelmät eivät pääse suoraan käsiksi laitteistoon tai toisiinsa u käyttö sanomanvälityksen kautta 23 24 KJ-II K2006 / Teemu Kerola (lu3) 3-4

Mikroytimen kehuja Yhtenäinen palvelujen käyttötapa u sama mekanismi etuoikeutetussa ja käyttäjätilassa u sanomanvälitys: send ja receive Laajennettavuus u helppo lisätä uusia palveluja (KJ:kin kehittyy ) u helppo lisätä uusia liittymiä vanhoihin moduuleihin Joustavuus u piirteitä poistamalla saadaan räätälöity versio u paikkopaketit voidaan ottaa mukaan boottaamatta konetta u esim: sulautettu järjestelmä - minimijoukko toiminnallisuutta F kännykkä, kämmenmikro, videonauhuri, tv, Siirrettävyys u laitesidonnaiset osat rajattu mikroytimeen u uusi laitteisto vaatii vain mikroytimen ronkkimista 25 Mikroytimen kehuja Luotettavuus u modulaarinen rakenne helpompi toteuttaa ja testata u jos joku palveluosa kaatuu, muut voivat silti toimia Sopii hajautettuun järjestelmään u paikallisen ja etäpalvelun käyttö samanlaista u single microkernel image : jos palvelut ja prosessit nimetty kaikissa koneissa yksikäsitteisesti F eri koneissa sama palveluiden nimentä ja osoitteet Sopii oliopohjaisen KJ:n toteutukseen u mikroydin yksi olio muiden (palvelija)olioiden joukossa u kommunikointi vain tunnettujen rajapintojen kautta F private data, public interfaces 26 Mikroytimen heikkouksia Tehokkuus u yhteiskäytössä oleva vs. paikallinen muisti u sanomanvälitys vs. suora funktiokutsu u paljon user mode kernel mode vaihtoja F viestien käyttö vs. suorat funktiokutsut Apu: enemmän toimintoja takaisin suoritettavaksi etuoikeutettuun tilaan u esim. Mach, Chorus, W2K u laiteajureita takaisin etuoikeutettuun tilaan u muita paljon käytettyjä palveluja u kompromissi - mitä menetetään? Mikroytimen peruspalvelut Mitkä? u ei täysin yleispäteviä sääntöjä u ainakin laitteistoa suoraan ronkkivat osat u tuki käyttäjätilan palveluille ja sovelluksille F kommunikointi Minimi: u muistinhallinnan alimmat tasot (low-level MM) u prosessien välinen kommunikointi (IPC) u siirrännän laitesidonnaiset osat u keskeytysten käsittely u prosessin vaihto (basic scheduling) 27 28 Mikroytimen peruspalvelut Muistinhallinnan alimmat tasot u virtuaalisivujen kuvaus fyysisiksi sivuiksi ytimessä F sivutaulu ja MMU:n asetukset u sivutus ja virtuaalimuistin hallinta mikroytimen ulkopuolella F sivupuutoksen käsittely F sivujen poisto- ja sijoitusalgoritmit (Fig. 4.11 [Stal 05]) Mikroytimen peruspalvelut (jatkuu) Prosessien välinen kommunikointi (IPC) u Perusmekanismina sanomanvälitys F pyyntö / vastaus F jos prosesseilla ei yhteiskäyttöistä muistia, sanomanvälitys muistista muistiin kopiointia (etuoik. tilassa) u Sanoma: (keneltä, kenelle, data) F data = esim. palvelun nimi ( portti ) ja sen parametrit F datan paikalla voi olla osoite, josta data löytyy u Palveluun voi liittyä oikeuksien tarkistus KJ:ssä F kirjanpito porteista ja pääsyoikeuksista F prosessi voi muuttaa pääsyoikeuksia u Poissulkemisen ja synkronoinnin primitiivit 29 30 KJ-II K2006 / Teemu Kerola (lu3) 3-5

Mikroytimen peruspalvelut (jatkuu) Siirräntä u laiteohjaimen rekistereiden käyttäminen, DMA u I/O-porttien sijoittaminen prosessin osoiteavaruuteen Keskeytysten käsittely u mikroydin tunnistaa keskeytykset, mutta erillinen käyttäjätason palvelu käsittelee ne F keskeytysvektori: mikroydin pitää kirjaa keskeytysnumeroista ja niihin liittyvistä palvelijoista F generoi ja lähetä sanoma käsittelijälle (esim. ajurille) välitä tarvittaessa ohjaimen rekistereiden arvot F kuittaa keskeytys huomatuksi F lyhyt ja nopea? 31 Laiteajuri Käyttäjätilassa toimiva prosessi / säie u saa pyyntöjä sovelluksilta ja laitteistolta while (true) do { waitfor (msg,sender); if (sender == my_sw_client) { read/write I/O-ports if (sender == my_hw_interrupt) { read/write I/O-ports reset hardware interrupt u I/O-portit ajurin osoiteavaruudessa (muuten tiedot sanomina) 32 Käyttöjärjestelmät II Windows 2000 (eli W2K) Säikeet ja SMP Ch 4.4 [Stal 05] W2K resurssien ja suorituksen hallinta Työ (job) u prosessien kokoelma, jolla yhteiset rajoitukset u max prosessien lkm, max CPU aika per prosessi,... Prosessi (process) u omistaa resurssit u koostuu useasta säikeestä Säie (thread) u oma access token (saatu esim. asiakkaalta) u suorittava vuorotuksen yksikkö u kaksi pinoa, oma user ja kernel tiloissa suoritusta varten Kuitu (fiber) kevytsäie (nopea vuorotus) u ydin ei tiedä kuiduista mitään Win32 API hoitaa kaiken F hyvin nopea vuorotus user tilassa (Win32 API hoitaa) F jos kuitu blokkaa, niin toinen saman säikeen kuitu vuorotetaan automaattisesti (säie ei siis blokkaannu) 33 34 W2K: Säikeet W2K tukee useita erilaisia ajoympäristöjä (Win16, Win32, Posix?, OS/2?), eroja: u prosessien nimeäminen u säikeitä vai ei u prosessin kuvaaminen u prosessin resurssien suojaus u prosessien välinen kommunikointi u prosessien sukulaisuussuhteet Perusta u prosessit ja säikeet toteutettu olioina u prosessi = yksi tai useampi säie Sekä prosessi- että säieoliolla synkronointiprimitiivejä W2K: Prosessi ja sen resurssit yhteinen muisti 35 (Fig 4.12 [Stal05]) 36 KJ-II K2006 / Teemu Kerola (lu3) 3-6

W2K: Prosessi ja sen resurssit Oliotaulukko (object table) u pääsy olioiden tietorakenteisiin u prosessiin liittyvät säikeet Pääsypoletti (pääsylippu?) istuntoa käynnistettäessä u määrää oletusoikeudet luotaville olioille F esim. säikeille F myöhemmin säie voi saada esim. asiakkaan pääsypoletin, jolloin lisää oikeuksia u rajoittaa / sallii olioiden käyttöä F kuka saa käyttää, kuka ei F käyttötapa: read, write, change, Osa tietorakenteista vain KJ:n hallussa access token u sovelluksella ei suoraa kahvaa (esim. prosessin oma pääsypoletti) W2K Prosessi ja säikeets (Fig 05]) Fig 4.2 [Stal[ Prosessi: yhteisten resurssien kirjanpito, passiivinen Säie: omien resurssien kirjanpito, vuorottamisen yksikkö, aktiivinen 37 38 W2K Säikeiden yhteistyö Yhteiskäyttöinen muisti u saman prosessin säikeet voivat aina käyttää u järjestyy myös eri prosessien säikeiden välille Sanomanvälitys u kuka, kenelle, data Semaforit u poissulkeminen ja synkronointi W2K Prosessi- ja säieoliots prosessiolio u attribuutit: I/O counters, quota limits, debug ports, u palvelut säieolio F create process F terminate process u attribuutit: processor affinity, base priority, u palvelut F create thread F suspend, resume F get context Fig 4.13 [Stal05] 39 40 W2K Säietilat matkalla (pino levyllä?) seuraavana vuorossa tietyllä suorittimella ihan oikeasti suorituksessa vrt. Fig 4.7 [Stal05] monta kuitua? (Fig 4.14 [Stal05]) 41 W2K: SMP Prosessin säikeet voivat olla yhtäaikaa eri prosessoreilla u myös W2K Executive Prosessi/säie voidaan sitoa tietylle prosessorijoukolle (affinity) u tieto kirjattu sekä PCB:hen että TCB:hen u vuorotetaan aina samoille prosessoreille u thread affinity process affinity u pehmeä sidonta (soft affinity) yritä edes (välimuistin vuoksi) u kova sidonta (hard affinity) muu ei kelpaa Pyritään vuorottamaan uudelleen samalle CPU:lle u välimuisti Affinity: kinship by marriage or adoption, the force attracting atoms to each other [hyperdictionary] 42 KJ-II K2006 / Teemu Kerola (lu3) 3-7

Kertauskysymyksiä Miksi Unix prosesseilla on tila zombie? Mitä kyseinen prosessi tekee enää järjestelmässä? Mitkä ovat suurimmat erot mikroydin KJ:llä ja monoliittisella KJ:llä Milloin W2K sovellus olisi parempi toteuttaa usealla kuidulla yhdessä säikeessä kuin usealla säikeellä? Miksi? Mitä hyötyä/haittaa on siitä, että W2K prosessit ja säikeet ovat olioita? Mitä eroa on Linux illa ja W2K lla prosessien ja säikeiden suhteen? 43 KJ-II K2006 / Teemu Kerola (lu3) 3-8