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

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

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

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ä

Sisältöä SÄIKEET, SMP

Prosessi perinteisesti

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

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

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ä

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

Käyttöjärjestelmät: prosessit

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

PROSESSIT JA NIIDEN HALLINTA

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

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

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

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

VUOROTTAMINEN SMP JA REAALIAIKAJÄRJESTELMÄT Linux, W2000

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

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ä

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ä

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

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

Järjestelmän ulkoinen muisti I/O

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

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

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 0. Tervetuloa! Käyttöjärjestelmät II 2 ov Teemu Kerola. Helsingin yliopisto Tietojenkäsittelytieteen laitos

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.

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

Muistihierarkia Kiintolevyt I/O:n toteutus

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

Jakso 5 Suoritin ja väylä

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

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

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

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

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

Jakso 5 Suoritin ja väylä

Stallings, Luku

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

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

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

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

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

Palvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät

Transkriptio:

LUENTO 3 Käyttöjärjestelmät II Prosessit ja säikeet SMP, Mikroytimet W2K säikeet Stallings, Ch 3-4.4 1

Mitä KJ-I:ssä / KJ-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) 2

Käyttöjärjestelmät II UNIX prosessit Ch 3 [Stal 05] 3

Prosessit yleensä 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] 4

UNIX SVR4 Prosessit (Fig. 3.15 (b) [Stal05] ) 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 ks. Fig. 3.17 [Stal05] 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) 5

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] 6

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] 9

Prosessit ja säikeet Ennen (kun ei säikeitä) Nyt u prosessi: F resurssien hallinta F suorittava (laskentaa tekevä) yksikkö u prosessi u säie F resurssien hallinta 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] 10

Flynnin jaottelu moniprosessorikoneille 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 Michael J. Flynn, 1966 11

Moniprosessorikoneet cpu mem cpu mem Lan uniprocessor Cpu1 Cpu2 Cpu3 cpu mem mem multiprocessor multicomputer (Fig 4.8 [Stal05]) 12

Master-slave vs. SMP [Tane 01] [Tane 01] 13

Toinen jaottelu yhteisen muistin moniprosessorikoneille (NUMA) [Tane 01] 14

KJ-II K2006 / Auvo Häkkinen - Teemu http://www.intel.com/technology/hyperthread/intro_nexgen/ Kerola 13.3.2006 15

http://www.blachford.info/computer/cells/cell1.html 16

Kolmas jaottelu yhteisen muistin moniprosessorikoneille (NUMA) (NUMA) [Tane 01] 17

SMP: Symmetric Multiprocessing 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]) 18

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]) 21

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 [Tane 01] 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? 23

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 24

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? 27

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) 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]) 29

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 30

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] 33

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) 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ä 35

W2K: Prosessi ja sen resurssit yhteinen muisti (Fig 4.12 [Stal05]) 36

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) 37

W2K Prosessi ja säikeet (Fig 4.2 [Stal 05]) Prosessi: yhteisten resurssien kirjanpito, passiivinen Säie: omien resurssien kirjanpito, vuorottamisen yksikkö, aktiivinen 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 39

W2K Prosessi- ja säieoliot prosessiolio u attribuutit: I/O counters, quota limits, debug ports, u palvelut F create process F terminate process säieolio u attribuutit: processor affinity, base priority, u palvelut F create thread F suspend, resume F get context Fig 4.13 [Stal05] 40

W2K Säietilat vrt. Fig 4.7 [Stal05] seuraavana vuorossa tietyllä suorittimella monta kuitua? ihan oikeasti suorituksessa matkalla (pino levyllä?) (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 Affinity: kinship by marriage or adoption, the force attracting atoms to each other [hyperdictionary] 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 42

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