[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