2023-09 [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 systémového volania mmap a munmap v operačnom systéme xv6, čo je označené za najnáročnejšiu úlohu semestra kombinujúcu znalosti virtuálnej pamäte a súborového systému. Vysvetľuje sa princíp mapovania súboru do pamäte pomocou lenivej alokácie, kedy sa fyzické stránky priraďujú až pri výpadku stránky po skutočnom prístupe. Rozoberajú sa argumenty volania mmap (addr, length, prot, flags, fd, offset) so zameraním na príznaky MAP_SHARED a MAP_PRIVATE a ochrany PROT_READ/PROT_WRITE. Na konkrétnom príklade sa demonštruje vytvorenie štruktúry VMA uloženej v procese, ktorá obsahuje adresu, dĺžku, ochranu, typ mapovania a offset, a jej umiestnenie vo virtuálnom adresnom priestore medzi haldou a trap frame.

  • - mmap je kombináciou konceptov virtuálnej pamäte a súborového systému, mapovanie je spočiatku len logické (lenivá alokácia)
  • - Skutočné mapovanie stránky prebehne až pri výpadku stránky (page fault) pri prístupe procesu
  • - Argumenty mmap: addr, length, prot (PROT_READ/PROT_WRITE), flags (MAP_SHARED/MAP_PRIVATE), fd, offset
  • - MAP_SHARED zapisuje zmeny späť do súboru, MAP_PRIVATE zmeny nezapisuje
  • - Informácie o mapovaní sa ukladajú do štruktúry VMA priradenej k procesu (pole VMA štruktúr)
  • - Vhodné miesto pre namapovanie súboru je vo virtuálnom adresnom priestore medzi haldou a trap frame
  • - Treba kontrolovať konflikty medzi ochranou, typom mapovania a právami súboru (napr. zápis do súboru len na čítanie so shared mapovaním)

Zhrnutie pripravené s pomocou AI z prepisu videa.