Pipeline (datalogi)
Inden for datalogi består et rør ( pipeline eller kanal) af en kæde af processer forbundet på en sådan måde, at output fra hvert element i kæden er input fra det næste. De tillader kommunikation og synkronisering mellem processer. Det er almindeligt at bruge databuffring mellem på hinanden følgende elementer.
Pipeline kommunikation er baseret på producent/forbruger interaktion, producent processer (dem der sender data) kommunikerer med forbruger processer (modtager data) efter en FIFO ordre . Når data er modtaget af den forbrugende proces, fjernes de fra pipelinen.
Implementering
Pipelines implementeres meget effektivt i multitasking -operativsystemer , starter alle processer på samme tid og servicerer automatisk datalæseanmodninger for hver proces, når data er skrevet af den tidligere proces. På denne måde vil korttidsplanlæggeren give brugen af CPU'en til hver proces, som den kan udføres, hvilket minimerer dødtider.
For at forbedre ydeevnen implementerer de fleste operativsystemer pipelines ved hjælp af buffere, som tillader udbyderprocessen at generere flere data, end forbrugerprocessen umiddelbart kan betjene.
Unavngivet rør
Navnløse rør har en fil i hovedhukommelsen tilknyttet , så de er midlertidige og fjernes, når de ikke bliver brugt af hverken producenter eller forbrugere. De tillader kommunikation mellem den proces, der skaber en pipeline, og underordnede processer efter oprettelsen af pipelinen.
Navngivet rør
Dens forskel fra unavngivne rør er, at røret er oprettet på filsystemet og derfor ikke er midlertidigt. De håndteres af systemkald ( åbn , luk , læs og skriv ) ligesom resten af systemfilerne. De tillader kommunikation mellem de processer, der bruger nævnte rør, selvom der ikke er nogen hierarkisk forbindelse mellem dem.
Det kaldes også FIFO på grund af dets adfærd, som er en udvidelse af det traditionelle pipeline -koncept, der bruges i POSIX -operativsystemer , og er en af metoderne til interprocess communication (IPC). Dette koncept findes også i Windows , omend implementeret med forskellig semantik. Et traditionelt rør har ikke noget "navn", fordi det eksisterer anonymt, mens processen kører . Et navngivet rør oprettes eksplicit af en operativsystemkommando og fortsætter efter processen slutter og skal slettes, når det ikke længere er i brug. På Unix er kommandoen til at oprette navngivne rør . [ 1 ]
mkfifo
Se også
Referencer
- ^ "12.4 mkfifo: Lav FIFO'er (navngivne rør)" . gnu.org (på engelsk) . Hentet 16. juni 2014 .