[so2] [Tema3][Win] Buffered I/O vs. Direct I/O

Laura Vasilescu vasilescu.laura at gmail.com
Mon Apr 30 14:15:36 EEST 2012


2012/4/30 Razvan Deaconescu <razvan.deaconescu at cs.pub.ro>:
> Laura Vasilescu <vasilescu.laura at gmail.com> writes:
>> Am căutat în documentație, în laborator, în enunțul temei și chiar și
>> la [1] și nu înțeleg de ce.
>> Ar putea să explice cineva care este logica acestei restricții?
>>
>> [1] - http://elf.cs.pub.ro/so2/wiki/teme/tema3/faq
>
> Opinia mea, confirmată și de MSDN[1] este "din motive de eficiență". Ai
> nevoie de transfer rapid de date, unele dintre ele vor fi memory mapped
> (pentru zero-copy) și nu vrei să intermediezi printr-un system
> buffer. Probabil nucleul Windows ține atât de mult la asta încât nu te
> lasă să folosești Buffered I/O.
>
> http://msdn.microsoft.com/en-us/library/windows/hardware/ff565372(v=vs.85).aspx

Da, păi înțeleg de ce atunci când se lucrează cu date mari (motivație
pentru dispozitive bloc) nu este recomandat să bufferezi. Problema mea
e că nicăieri în documentație nu am văzut scris clar că nu poți să
folosești buffered I/O în astfel de situații și nu înțeleg de ce ar
returna atunci NULL.

-- 
Laura


More information about the so2 mailing list