Planlegging - Coscheduling

Coscheduling er prinsippet for at samtidige systemer for planlegging av relaterte prosesser skal kjøres på forskjellige prosessorer samtidig ( parallelt ). Det er forskjellige spesifikke implementeringer for å innse dette.

Hvis en applikasjon består av en samling prosesser som jobber tett sammen, og hvis noen, men ikke alle prosessene er planlagt for utførelse, kan utføringsprosessene prøve å kommunisere med de som ikke utføres, noe som får dem til å blokkere. Etter hvert vil de andre prosessene bli planlagt for utførelse, men på dette tidspunktet kan situasjonen reverseres slik at disse prosessene også blokkerer venting på interaksjoner med andre. Som et resultat gjør applikasjonen fremgang med en hastighet på maksimalt én interprosessinteraksjon per tidsskive , og vil ha lav gjennomstrømning og høy latens .

Gjennomføring

Coscheduling består av to ideer:

  • Når du planlegger noen av prosessene i den relaterte gruppen, planlegger du dem alle for utførelse, slik at de kan kommunisere effektivt.
  • Når en prosess i gruppen blokkerer mens du kommuniserer med en annen prosess i gruppen, må du ikke fjerne den fra prosessoren. La i stedet staten være lastet på prosessoren i en kort stund, under forutsetning av at den vil motta et svar snart. Hvis denne tiden går og prosessen fremdeles ikke har blitt kjørbar, må du anta at den vil sove lenge og legge om prosessoren.

Noen co -planleggingsteknikker viser fragmenter av prosesser som ikke kjøres samtidig med resten av det planlagte settet. Forekomsten av disse fragmentene blir vanligvis minimert av disse algoritmene. Gang planlegging er en strengere variant av coscheduling som forbyr fragmenter helt.

Typer av cocheduling

Forskere har klassifisert tre typer co -planlegging: eksplisitt co -planlegging , lokal planlegging og implisitt eller dynamisk co -planlegging .

Eksplisitt co -planlegging krever at all behandling faktisk finner sted samtidig, og implementeres vanligvis ved global planlegging på tvers av alle prosessorer. En spesifikk algoritme er kjent som gjengeplanlegging .

Lokal co -planlegging lar individuelle prosessorer planlegge behandlingen uavhengig.

Dynamisk (eller implisitt) co -planlegging er en form for co -planlegging der individuelle prosessorer fortsatt kan planlegge behandling uavhengig, men de tar planleggingsbeslutninger i samarbeid med andre prosessorer.

Historie

Begrepet "coscheduling" ble introdusert av Ousterhout (1982) . Den opprinnelige definisjonen er at prosessarbeidssettet må planlegges samtidig (planlagt for utførelse samtidig) for at det parallelle programmet skal gå videre .

Se også

Merknader

  • Ousterhout, JK (1982). "Planleggingsteknikker for samtidige systemer" (PDF) . Prosedyrer fra tredje internasjonale konferanse om distribuerte datasystemer : 22–30.