2023-10 [seminár] sieť

Zdroj
ručne priradené
Pridané

Pozrieť na YouTube →

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.

Otvoriť AI: ChatGPT · Claude · Gemini

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.