Pipeline (programvare)

Pipelines er ofte implementert i en multitasking OS, ved å lansere alle elementer på samme tid som prosesser, og automatisk betjene data lese forespørsler av hver prosess med data skrevet av oppstrøms prosess-dette kan kalles en multi prosessert pipeline – PÅ denne måten BLIR CPUEN naturlig byttet mellom prosessene av planleggeren for å minimere tomgangstiden. I andre vanlige modeller, er elementer implementert som lette tråder eller som coroutines å redusere OS overhead ofte involvert med prosesser. Avhengig AV OS, tråder kan planlegges direkte AV OS eller av en tråd manager. Coroutines er alltid planlagt av en coroutine leder av noen form.vanligvis blokkerer lese – og skriveforespørsler operasjoner, noe som betyr at utførelsen av kildeprosessen, ved skriving, er suspendert til alle data kan skrives til destinasjonsprosessen, og på samme måte er utførelsen av destinasjonsprosessen, ved lesing, suspendert til minst noen av de forespurte dataene kan hentes fra kildeprosessen. Dette kan ikke føre til en dødlås, hvor begge prosessene vil vente på ubestemt tid for hverandre å svare, siden minst en av de to prosessene snart vil få sin forespørsel betjent av operativsystemet, og fortsette å kjøre.

for ytelse bruker de fleste operativsystemer som implementerer rør, rørbuffere, noe som gjør at kildeprosessen kan gi mer data enn destinasjonsprosessen for øyeblikket er i stand til eller villig til å motta. Under De Fleste unices og Unix-lignende operativsystemer, er en spesiell kommando også tilgjengelig som implementerer en rørbuffer av potensielt mye større og konfigurerbar størrelse, vanligvis kalt «buffer». Denne kommandoen kan være nyttig hvis målprosessen er betydelig tregere enn kildeprosessen, men det er likevel ønskelig at kildeprosessen kan fullføre oppgaven så snart som mulig. F. eks, hvis kilden prosessen består av en kommando som leser et lydspor FRA EN CD og målet prosessen består av en kommando som komprimerer bølgeform lyddata til et format SOM MP3. I dette tilfellet vil buffering av hele sporet i en rørbuffer tillate AT CD-stasjonen spinner ned raskere, og gjør det mulig for brukeren å fjerne CDEN fra stasjonen før kodingsprosessen er ferdig.

en slik bufferkommando kan implementeres ved hjelp av systemkall for å lese og skrive data. Sløsing opptatt venter kan unngås ved å bruke fasiliteter som avstemning eller velg eller multithreading.

noen bemerkelsesverdige eksempler på rørledningssystemer inkluderer:

  • RaftLib – C/C++ Apache 2.0 License

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.