Tässä artikkelissa ymmärrämme käyttöjärjestelmän monisäikeisen mallin.
Monisäikeinen malli:
Monisäikeistyksen avulla sovellus voi jakaa tehtävänsä yksittäisiin säikeisiin. Monisäikeissä sama prosessi tai tehtävä voidaan tehdä säikeiden lukumäärän mukaan tai voidaan sanoa, että monisäikeisessä tehtävässä on useampi kuin yksi säie. Monisäikeen avulla voidaan saavuttaa moniajo.
heittää poikkeusten käsittely javassa
Yksisäikeistysjärjestelmien suurin haittapuoli on, että vain yksi tehtävä voidaan suorittaa kerrallaan, joten tämän yksittäisen säikeyden haitan voittamiseksi on olemassa monisäikeistys, joka mahdollistaa useiden tehtävien suorittamisen.
Esimerkiksi:
Yllä olevassa esimerkissä asiakas1, asiakas2 ja asiakas3 käyttävät verkkopalvelinta ilman odottelua. Monisäikeisessä käytössä useita tehtäviä voidaan suorittaa samanaikaisesti.
Käyttöjärjestelmässä säikeet on jaettu käyttäjätason säikeeseen ja ydintason säikeeseen. Käyttäjätason säikeet käsittelivät itsenäistä muotoa ytimen yläpuolella, joten niitä hallittiin ilman ytimen tukea. Sitä vastoin käyttöjärjestelmä hallitsee suoraan ydintason säikeitä. Siitä huolimatta käyttäjätason ja ydintason säikeiden välillä on oltava jonkinlainen suhde.
On olemassa kolme vakiintunutta monisäikeistä mallia, jotka luokittelevat nämä suhteet seuraavasti:
- Monista yhteen monisäikeinen malli
- Yksi yhdelle monisäikeinen malli
- Monista moniin monisäikeiset mallit
Monista yhteen monisäikeinen malli:
Useita yhteen -malli kartoittaa useita käyttäjätason säikeitä yhteen ytimen säiettä. Tämäntyyppinen suhde mahdollistaa tehokkaan kontekstinvaihtoympäristön, joka on helppo toteuttaa jopa yksinkertaisessa ytimessä ilman säiettä tukea.
yleisyys javassa
Tämän mallin haittana on, että koska kernelitasolla on vain yksi säikeen aikataulu kerrallaan, tämä malli ei voi hyödyntää monisäikeisten prosessien tai moniprosessorijärjestelmien tarjoamaa laitteistokiihdytystä. Tässä kaikki säikeiden hallinta tapahtuu käyttäjätilassa. Jos esto tulee, tämä malli estää koko järjestelmän.
Yllä olevassa kuvassa useat yhteen -malli liittää kaikki käyttäjätason säikeet yhteen ydintason säikeisiin.
Yksi yhteen monisäikeinen malli
Yksittäinen malli yhdistää yhden käyttäjätason säikeen yhdeksi ydintason säikeeksi. Tämäntyyppinen suhde helpottaa useiden säikeiden ajamista rinnakkain. Tähän etuun liittyy kuitenkin haittapuoli. Jokaisen uuden käyttäjäsäikeen luomiseen tulee sisältyä vastaavan ytimen säikeen luominen, joka aiheuttaa ylimääräisiä kustannuksia, jotka voivat haitata emoprosessin suorituskykyä. Windows-sarja ja Linux-käyttöjärjestelmät yrittävät ratkaista tämän ongelman rajoittamalla säikeiden määrän kasvua.
Yllä olevassa kuvassa yksi malli liittää kyseisen käyttäjätason säikeen yhteen ydintason säikeeseen.
ota java käyttöön
Monien monien mallien monisäikeinen malli
Tämän tyyppisessä mallissa on useita käyttäjätason säikeitä ja useita ydintason säikeitä. Luotujen ytimen säikeiden määrä riippuu tietystä sovelluksesta. Kehittäjä voi luoda niin monta säiettä molemmille tasoille, mutta ne eivät välttämättä ole samoja. Monesta moneen -malli on kompromissi kahden muun mallin välillä. Tässä mallissa, jos jokin säikeestä tekee estävän järjestelmäkutsun, ydin voi ajoittaa toisen säikeen suoritukseen. Lisäksi useiden säikeiden käyttöönoton myötä monimutkaisuus ei ole läsnä kuten aiemmissa malleissa. Vaikka tämä malli mahdollistaa useiden ydinsäikeiden luomisen, todellista samanaikaisuutta ei voida saavuttaa tällä mallilla. Tämä johtuu siitä, että ydin voi ajoittaa vain yhden prosessin kerrallaan.
Monet monisäikeisen mallin versiot yhdistävät useita käyttäjätason säikeitä samaan tai paljon pienempään valikoimaan ydintason säikeitä yllä olevassa kuvassa.