31.01.2015 Views

Prosessit ja säikeet

Prosessit ja säikeet

Prosessit ja säikeet

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Käyttöjärjestelmät:<br />

rinnakkaisuus <strong>ja</strong> <strong>säikeet</strong><br />

Teemu Saarelainen<br />

Tietotekniikka<br />

teemu.saarelainen@kyamk.fi<br />

Lähteet<br />

Stallings, W. ”Operating Systems”<br />

Haikala, Järvinen, ”Käyttöjärjestelmät”<br />

Eri Web-lähteet


<strong>Prosessit</strong> <strong>ja</strong> <strong>säikeet</strong><br />

Prosessin liittyy<br />

• Resursse<strong>ja</strong> (muistiosoitteet, etc.)<br />

• Suoritus <strong>ja</strong> skedulointi<br />

Käyttöjärjestelmä hallinnoi näitä molempia<br />

Suoritukseen liittyvää osaa sanotaan usein säikeeksi<br />

(thread)<br />

Resursse<strong>ja</strong> kutsutaan tehtäväksi (task) tai prosessiksi


Monisäikeisyys<br />

Käyttöjärjestelmä<br />

voi tukea<br />

monisäikeisyyttä<br />

Sama prosessi:<br />

monta yhtäaikaista<br />

säiettä ajossa


Yksisäikeisyys<br />

Esim.<br />

MS-DOS tukee yhtä<br />

käyttäjän prosessia <strong>ja</strong> yhtä<br />

säiettä<br />

Jotkut UNIX-järjestelmät<br />

tukevat montaa käyttäjän<br />

prosessia, mutta vain yhtä<br />

säiettä / prosessi


Monisäikeisyys<br />

Javassa (JRE) käytetään<br />

yhden prosessin sisällä<br />

montaa säiettä<br />

Moniprosessi- <strong>ja</strong><br />

monisäie-järjestelmiä on<br />

uudemmat Windows:t,<br />

Solaris <strong>ja</strong> uudemmat<br />

UNIX:t<br />

Huom! Linux:ssa ei ole<br />

eroa prosessien <strong>ja</strong><br />

säikeiden välillä


Säikeet prosesseissa<br />

Jokaisella säikeellä on<br />

• suoritustila (säikeillä samantyyppisiä tilo<strong>ja</strong> kuin prosesseilla:<br />

spawn, block, unblock, finish)<br />

• konteksti (kun ei suorituksessa)<br />

• pino<br />

• muistia paikallisia muuttujia varten<br />

• pääsy (omista<strong>ja</strong>-)prosessin muistiin <strong>ja</strong> resursseihin


Säikeet vs. prosessit


Säikeiden tuomat hyödyt<br />

Vähemmän aikaa uuden säikeen luontiin kuin prosessin<br />

Vähemmän aikaa säikeen lopettamiseen kuin prosessin<br />

Suorituksen vaihto kahden säikeen välillä nopeampaa<br />

Säikeet voivat viestiä toistensa kanssa – ilman ytimen<br />

väliintuloa


Säikeiden kanssa huomioonotettavaa<br />

Toimenpiteet prosessitasolla vaikuttavat kaikkiin säikeisiin<br />

Esim.<br />

Prosessin suorituksen keskeyttäminen<br />

keskeytetään prosessin kaikki <strong>säikeet</strong><br />

Prosessin lopettaminen<br />

lopetetaan prosessin kaikki <strong>säikeet</strong>


SMP – symmetric multiprocessing<br />

Perinteisesti tietokoneen on a<strong>ja</strong>teltu suorittavan toiminto<strong>ja</strong><br />

peräkkäisrakenteena (sekventiaalisesti)<br />

Vaihtoehtona on rinnakkaisuus<br />

• SMP<br />

• Klusterit


Prosessorien käskymallit<br />

SISD (Single Instruction Single Data)<br />

• Yksi data, yksi prosessointiyksikkö<br />

SIMD (Single Instruction Multiple Data)<br />

• Monta dataa, voi olla monta prosessointiyksikköä<br />

MISD (Multiple Instruction Single Data) <br />

• Yksi data, monta eri prosessointiyksikköä suorittaa eri<br />

käskyjä<br />

• Ei toteutettu koskaan…<br />

MIMD (Multiple Instruction Multiple Data)<br />

• Monta dataa, monta prosessointiyksikköä


Rinnakkaisarkkitehtuurit


SMP<br />

Ytimen koodia voidaan suorittaa millä tahansa<br />

prosessorilla<br />

Rinnakkaisesti suoritettava KJ:n ydin<br />

Tyypillisesti jokainen prosessori ”valitsee itse” seuraavaksi<br />

suoritettavan prosessin tai säikeen<br />

Samaa prosessia tai säiettä ei voi valita (!)


SMP-malli


Moniprosessori-KJ:n suunnittelu<br />

Suunnitteluongelmia<br />

• Yhtäaikaiset prosessit tai <strong>säikeet</strong><br />

• Skedulointi<br />

• Synkronointi<br />

• Muistinhallinta<br />

• Luotettavuus <strong>ja</strong> vikasietoisuus


Mikrokernel


Mikrokernelin suunnittelu<br />

Mitä ongelmia tulee vastaan<br />

• Prosessien suhteen<br />

• I/O:n <strong>ja</strong> keskeytysten suhteen


SMP: Windows, Linux<br />

In English…

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!