2020-10 [seminár] mmap

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 implementácii posledného labu z Operačných systémov zameraného na systémové volania mmap a munmap, ktoré fungujú na podobnom princípe ako predtým preberaná lenivá alokácia pamäte, rozšírená o čítanie a zapisovanie dát zo súboru. Vysvetľujú sa zjednodušené podmienky zadania (nulová adresa aj offset) a dôležité parametre ako dĺžka, súbor, ochrana pamäte (protection) a príznaky MAP_PRIVATE/MAP_SHARED. Lektor postupne implementuje štruktúru mmap_vma obsahujúcu adresu, dĺžku, práva, ukazovateľ na súbor a prepojenie do zreťazeného zoznamu, ktorý sa ukladá per proces. Ďalej vytvára statické pole VMA štruktúr s voľným zoznamom (freelist), zámok (spinlock) na synchronizáciu prístupu viacerých procesov a pomocné funkcie get_vma a vloženie späť do freelistu vrátane inicializačnej funkcie vma_init volanej po zapnutí stránkovania. Zvyšná implementácia (obsluha výpadku stránky a samotné systémové volania mmap/munmap) zostáva na dokončenie študentom.

  • - Lab mmap nadväzuje na lenivú alokáciu pamäte, pridáva čítanie/zapisovanie súboru pri výpadku stránky
  • - Zjednodušené zadanie: addr aj offset sú vždy 0, dôležité sú length, súbor, protection a flags (MAP_PRIVATE/MAP_SHARED)
  • - Systémové volania mmap a munmap aj ich deklarácie/čísla sú už predpripravené v kostre kódu
  • - Definuje sa štruktúra mmap_vma (adresa, dĺžka, ochrana, ukazovateľ na file) s prepojením do dvojito zreťazeného zoznamu
  • - Vytvára sa statické pole VMA štruktúr (16 položiek) s jednosmerným freelistom a spinlockom pre synchronizáciu
  • - Implementujú sa pomocné funkcie vma_init, get_vma (vybratie zo zoznamu) a vloženie VMA späť do freelistu
  • - Obsluha výpadku stránky a doplnenie logiky mmap/munmap zostáva na samostatné dokončenie študentmi

Zhrnutie pripravené s pomocou AI z prepisu videa.