abcd423417984 Skrevet 25. april 2006 Del Skrevet 25. april 2006 (endret) Hei Jeg har tidligere kodet nettverksapplikasjoner i Java og der er det en mulighet for å kunne overføre fra fil til nettverk direkte uten å gå gjennom maskinens minne og prosessoren. Jeg har i det siste begynt å kode C under Linux og lurte derfor på om det finnes noe tilsvarende da jeg ikke har behov for å hente filen jeg skal overføre sitt innhold til minnet først. Noen tanker om dette? Eventuelt da også fra fil til fil uten å gå gjennom minnet/prosessoren. Endret 25. april 2006 av invictus Lenke til kommentar
dayslepr Skrevet 25. april 2006 Del Skrevet 25. april 2006 (endret) sjekk `man 2 mmap' ett google-søk på "zero-copy linux" gir noen treff Endret 25. april 2006 av dayslepr Lenke til kommentar
abcd423417984 Skrevet 25. april 2006 Forfatter Del Skrevet 25. april 2006 (endret) Takker. Tror jeg fant det jeg var ute etter på http://www.ecst.csuchico.edu/~beej/guide/ipc/mmap.html Det den gjør er altså å si at fra nå av skal man late som følgende peker er en vanlig peker mot minnet mens den i realiteten er i en fil? Ser også at på første hit på zero-copy saken så brukes noe som heter sendfile(). Skal også ta en nærmere titt på den. Takk skal du ha. Endret 25. april 2006 av invictus Lenke til kommentar
dayslepr Skrevet 25. april 2006 Del Skrevet 25. april 2006 (endret) eller vent nå litt; man 2 sendfile er kanskje akkurat det du er ute etter her hm, jau .. postet samtidig ... Endret 25. april 2006 av dayslepr Lenke til kommentar
abcd423417984 Skrevet 30. april 2006 Forfatter Del Skrevet 30. april 2006 Ser ikke ut som sendfile var så optimal alikevel. Den virker IKKE fra fil til fil, og er implementert forskjellig i de forskjellige unixene. Synd egentlig fordi den virket perfekt. Lenke til kommentar
Emancipate Skrevet 19. mai 2006 Del Skrevet 19. mai 2006 Hei Jeg har tidligere kodet nettverksapplikasjoner i Java og der er det en mulighet for å kunne overføre fra fil til nettverk direkte uten å gå gjennom maskinens minne og prosessoren. 5983275[/snapback] Uh. Styre bilen med rattet frakoblet? Det der går selvfølgelig ikke an. Du får ikke tak i ting på harddisken uten at det går igjennom prosessoren. Det du ser etter er en funksjon som leser inn fila bak kulissene og bare leser inn små biter som den sender or deretter leser inn nye biter til samme sted i minne. Lenke til kommentar
dayslepr Skrevet 19. mai 2006 Del Skrevet 19. mai 2006 tsg1zzn: ikke at jeg skjønner hva du mener i siste setning, men jo - man kan la en annen "chip" enn CPUen ta seg av oppgaven: http://en.wikipedia.org/wiki/Direct_memory_access#Principle Lenke til kommentar
abcd423417984 Skrevet 20. mai 2006 Forfatter Del Skrevet 20. mai 2006 (endret) Hei Jeg har tidligere kodet nettverksapplikasjoner i Java og der er det en mulighet for å kunne overføre fra fil til nettverk direkte uten å gå gjennom maskinens minne og prosessoren. 5983275[/snapback] Uh. Styre bilen med rattet frakoblet? Det der går selvfølgelig ikke an. Du får ikke tak i ting på harddisken uten at det går igjennom prosessoren. Det du ser etter er en funksjon som leser inn fila bak kulissene og bare leser inn små biter som den sender or deretter leser inn nye biter til samme sted i minne. 6135543[/snapback] DMA f.eks. tillater jo overføring mellom minne og IO-enheter uten at det går gjennom CPU så det er definitivt mulig. Da eksisterer det egne kontroller som har en egen liten CPU for å ta seg av dette. Endret 20. mai 2006 av invictus Lenke til kommentar
PerB Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 DMA f.eks. tillater jo overføring mellom minne og IO-enheter uten at det går gjennom CPU så det er definitivt mulig. Da eksisterer det egne kontroller som har en egen liten CPU for å ta seg av dette. 6140514[/snapback] Nå var det snakk om å hverken benytte CPU eller minne på maskinen. Lenke til kommentar
dayslepr Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 ..og det du skal frem til er..? Lenke til kommentar
JBlack Skrevet 20. august 2006 Del Skrevet 20. august 2006 (endret) DMA står for Direct Memory Access. Det er generelt at man kan ha IO mot minnet, uten at prosesseron gjør mer enn å starte prosessen. SCSI tror jeg også støtter direkte overføring mellom to SCSi-enheter på samme måte. Muligheten for å direkte overføre fra filer generelt (f.x harddisk) til nettverk, det har jeg aldri hørt om. Og det tviler jeg på at finnes noen muligheter for å gjøre... Edit: Some hardware can bypass the main memory altogether and transmit data directly to another device. This feature eliminates a copy in the system memory and is a nice thing to have, but not all hardware supports it. There is also the issue of the data from the disk having to be repackaged for the network, which introduces some complications. Mulig i teorien, men sjelden i praksis. Og neppe å finne i noe generelt OS per idag. Endret 20. august 2006 av JBlack Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå