[pso] [tema 3][lin] Handler cereri la nivel de bio
Razvan Deaconescu
razvan.deaconescu at cs.pub.ro
Sun Apr 24 16:55:28 EEST 2011
2011/4/23 Razvan Deaconescu <razvan.deaconescu at cs.pub.ro>:
> E vorba de cereri de scriere? Ai verificat dacă sectorul corespunde ceor
> două afișări? De obicei un bio este o coagulare de mai multe sectoare.
Atenție la operațiile de write. O operație de write din userspace
declanșează _și_ o operație de read.
Spre exemplu, presupunând o scriere în sectorul 3 în user space. În
kernel space, la nivelul block I/O layer se creează un bio care va
citi o pagină ce include sectorul 3. În mod obișnuit, va fi vorba de o
pagină ce cuprinde sectoarele 0-7. Modulul/driver-ul vostru va primi
un bio de citire în acest sens.
După ce se încheie operația de citire, block I/O layer-ul completează
în pagina bio-ului în poziția asignată sectorului 3. Un bio nou, de
scriere, este transmis cu ajutorul acestei informații. Modulul
primește, așadar, un bio de scriere conținând 8 sectoare, printre care
și sectorul 3. Se vor calcula CRC-uri pentru toate sectoare (nu se
știe pentru ce sector este necesară actualizarea CRC-ului) și sunt
submise către dispozitivul real cererile respective.
Răzvan
More information about the pso
mailing list