Työsarja - Working set

Työskentely sarja on käsite tietotekniikassa , joka määrittää, kuinka paljon muistia, että prosessi vaatii tietyllä aikavälillä.

Määritelmä

Peter Denning (1968) määritellään "työ joukko tietoa , joka menetelmä on aikaa olla tietojen kerääminen viittaa prosessin aikana aikaväli ". Kyseisiä tietoyksiköitä pidetään tyypillisesti muistisivuina . Tämän ehdotetaan olevan likimääräinen arvio sivuista, joita prosessi käyttää tulevaisuudessa (esimerkiksi seuraavien aikayksiköiden aikana ), ja tarkemmin ehdotetaan, että se viittaa siihen, mitä sivuja tulisi pitää päämuistissa, jotta eniten edistymistä prosessin toteuttamisessa.

Perustelu

Päämuistissa säilytettävien sivujen valinnan vaikutus (erillään sivutietojen hakemisesta ) on tärkeä: jos prosessin sivuja pidetään päämuistissa, niin vähemmän muita prosesseja voi olla valmis milloin tahansa kerran. Jos liian sivuilla prosessin pidetään päämuistiin, sitten sen sivu vika taajuus on kasvanut huomattavasti, ja määrä aktiivisia (ei keskeytetty) prosessit parhaillaan suoritettavan järjestelmän lähestyy nollaa.

Käyttöjoukon mallissa todetaan, että prosessi voi olla RAM , jos ja vain jos kaikki sivut, että se on tällä hetkellä käytössä (usein arvioida viimeksi käytetyt sivut) voi olla RAM. Malli on kaikki tai ei mitään -malli, mikä tarkoittaa, että jos sen tarvitsemat sivut kasvavat eikä RAM-muistissa ole tilaa, prosessi vaihdetaan muistista vapauttamaan muisti muiden prosessien käyttöön.

Usein raskaasti lastattu tietokone on niin monta prosessia jonottivat, että jos kaikki prosessit saivat juosta yhden aikataulujen aikaa viipale , he viittaavat enemmän sivuja kuin on RAM, jolloin tietokone " thrash ".

Vaihtamalla joitain prosesseja muistista, tuloksena on, että prosessit - jopa prosessit, jotka väliaikaisesti poistettiin muistista - päättyvät paljon aikaisemmin kuin ne tekisivät, jos tietokone yrittäisi suorittaa ne kaikki kerralla. Prosessit päättyvät myös paljon nopeammin kuin jos tietokone suoritetaan vain yksi prosessi kerrallaan, koska se antaa muiden prosessien ajaa ja edistyä aikana, jolloin yksi prosessi odottaa kiintolevyä tai muuta globaalia resurssia.

Toisin sanoen, työryhmästrategia estää kaatumisen ja pitää samalla moniohjelmoinnin asteen mahdollisimman korkealla. Siten se optimoi suorittimen käytön ja läpimenon.

Toteutus

Suurin este työryhmämallin toteuttamisessa on seurata työryhmää. Työsarjaikkuna on liikkuva ikkuna. Jokaisessa muistiviitteessä uusi viite ilmestyy toiseen päähän ja vanhin viite putoaa toisesta päästä. Sivu on työryhmässä, jos siihen viitataan työryhmän ikkunassa.

Viimeisten k viitattujen sivujen luettelon ylläpitämisen välttämiseksi työjoukko toteutetaan usein seuraamalla viimeisen viitteen aikaa t ja pitämällä työjoukkoa kaikilla sivuilla, joihin viitataan tietyn ajan kuluessa.

Työsarja ei ole sivun korvaava algoritmi , mutta sivun korvaavat algoritmit voidaan suunnitella poistamaan vain sivut, jotka eivät ole tietyn prosessin työjoukossa. Yksi esimerkki on modifioitu versio kellon algoritmin kutsutaan WSClock.

Vaihtoehdot

Työskentely joukko voidaan jakaa koodia käyttöjoukon ja tietojen käyttöjoukon. Tämä ero on tärkeä, kun koodi ja data ovat erillään muistihierarkian asiaankuuluvalla tasolla, ikään kuin kumpikaan työjoukko ei sovi hierarkian kyseiselle tasolle, tapahtuu kaatumista. Lisäksi koodin ja datan itsensä, järjestelmissä, joissa on virtuaalinen muisti , muisti kartta (virtuaalisen muistin fyysisen muistin) merkinnät sivujen työ- laite pitää välimuistissa käännös Lookaside puskuri (TLB) varten prosessin edistymistä tehokkaasti. Tämä ero on olemassa, koska koodi ja tiedot välimuistiin tallennetaan pieninä lohkoina ( välimuistiriveinä ), ei kokonaisia ​​sivuja, mutta osoitteen haku tapahtuu sivutasolla. Näin ollen vaikka koodi- ja datatyösarjat sopisivat välimuistiin, jos työjoukot on jaettu monille sivuille, virtuaalisen osoitteen työjoukko ei välttämättä sovi TLB: hen, mikä aiheuttaa TLB: n kaatumisen.

Työsarjan analogeja on olemassa muille rajallisille resursseille, merkittävimmin prosesseille . Jos prosessijoukko vaatii usein vuorovaikutusta useiden prosessien välillä, sillä on prosessin työjoukko , joka on ajoitettava edistykseksi:

rinnakkaisohjelmissa on prosessityösarja, joka on ajoitettava (ajoitettava suoritettavaksi samanaikaisesti), jotta rinnakkainen ohjelma voi edistyä.

Jos prosesseja ei ole ajoitettu samanaikaisesti - esimerkiksi jos on olemassa kaksi prosessia, mutta vain yksi ydin, jolla ne voidaan suorittaa - prosessit voivat edetä vain yhden vuorovaikutuksen nopeudella viipaletta kohti.

Muita resursseja ovat tiedostokahvat tai verkkopistorasiat - esimerkiksi yhden tiedoston kopioiminen toiseen tapahtuu yksinkertaisesti kahdella tiedostokahvalla: yksi syötteelle, toinen tulostukselle, ja siten "tiedostokahvan työskentelyjoukko" on kaksi. Jos käytettävissä on vain yksi tiedostokahva, kopiointi voidaan silti tehdä, mutta vaatii tiedostokäden hankkimisen syötteelle, lukemisen siitä (esimerkiksi puskuriin), vapauttamisen ja sitten tiedostokahvan hankkimisen lähdölle, kirjoittamisen siihen, vapauttamalla se, hankkimalla sitten syötetiedoston kahva uudelleen ja toistamalla. Vastaavasti palvelin voi vaatia useita pistorasioita, ja jos se on rajoitettu, sen on toistuvasti vapautettava ja hankittava liitännät. Näitä resursseja ei tarvitse tuhota, vaan niitä tarvitaan tyypillisesti ohjelmalle, ja jos se ei voi hankkia tarpeeksi resursseja, se yksinkertaisesti epäonnistuu.

Katso myös

Viitteet

  • Tanenbaum, Andrew (2009). Nykyaikaiset käyttöjärjestelmät, kolmas painos. s. 209–210
  • Denning, PJ (1980). Työsarjat menneisyys ja nykyisyys. IEEE Transactions on Software Engineering, 1/1980, osa SE-6, s. 64–84. [1]
  • Silberschatz, A., Galvin, PB ja Gagne, G. (2005). Käyttöjärjestelmän käsitteet, 7. painos. Palatino: Wiley. s. 346.