2023-10 [seminár] sieť
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Seminár sa venuje poslednému laboratórnemu cvičeniu z operačných systémov zameranému na implementáciu sieťového ovládača v xv6, konkrétne funkciám e1000_transmit a e1000_receive. Hlavný dôraz je kladený na vysvetlenie fungovania kruhových bufferov (ring buffer) používaných pri odosielaní a prijímaní paketov cez sieťovú kartu E1000. Vysvetľuje sa štruktúra transmit descriptor (adresa dát, dĺžka, príkazy, status) a význam bitu Descriptor Done (DD), ktorý určuje, či je deskriptor voľný pre softvér alebo ho ešte spracúva hardvér. Na kresbách sa demonštruje pohyb indexov Head (spravovaný hardvérom) a Tail (spravovaný softvérom) pri zapisovaní a odosielaní paketov, vrátane situácie plnej a prázdnej fronty. Odporúča sa naštudovať programátorskú príručku k E1000 a súbor kernel/e1000.c, najmä funkciu e1000_init.
- - Lab vyžaduje implementáciu funkcií e1000_transmit a e1000_receive v kernel/e1000.c
- - Transmit aj receive buffer sú kruhové buffery (ring buffer) obsahujúce deskriptory, nie priamo dáta paketov
- - Deskriptor obsahuje adresu dát, dĺžku, príkazové bity a status bit Descriptor Done (DD)
- - Index Head spravuje hardvér (sieťová karta), index Tail spravuje softvér (jadro) - s Head sa nemanipuluje priamo
- - Bit DD signalizuje, či je deskriptor voľný na použitie softvérom alebo ešte spracovávaný sieťovou kartou
- - Pri odosielaní sa dáta zapíšu do deskriptora na pozícii Tail, následne sa Tail posunie modulo veľkosť fronty
- - Chýbajúci DD bit indikuje, že sieťová karta ešte nedokončila predchádzajúci prenos a fronta je plná
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky