2021-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 z predmetu Operačné systémy sa venuje mapovaniu súborov do pamäte (mmap) v systéme XV6, teda kombinácii virtuálnej pamäte a súborového systému. Vysvetľujú sa systémové volania mmap a munmap, ich parametre (adresa, dĺžka, ochrana čítania/zápisu, príznaky MAP_SHARED a MAP_PRIVATE, súborový deskriptor, offset) a zásady lenivého mapovania cez výpadok stránky. Prednášajúci postupne implementuje deklarácie systémových volaní, štruktúru VMA na uchovanie metadát o mapovaní (adresa, dĺžka, offset, flagy, smerník na súbor) a jej uloženie priamo v štruktúre proc ako pole s pevnou veľkosťou. Zavádza pomocnú funkciu FindEmptyVMA na hľadanie voľného záznamu a rieši výber pevnej virtuálnej adresy pre oblasť mmap mimo rastúcej haldy procesu. Zvyšné úlohy — obsluha výpadku stránky, munmap, úprava fork a exit — ponecháva ako samostatnú prácu poslucháčov s odporúčaním inšpirovať sa mechanizmom Copy-on-Write.

  • - mmap mapuje súbor do virtuálnej adresy procesu, čítanie/zápis prebieha priamym prístupom do pamäte
  • - Parametre mmap: adresa (vždy 0, volí jadro), dĺžka, ochrana (read/write), flagy MAP_SHARED/MAP_PRIVATE, deskriptor súboru, offset
  • - MAP_SHARED zapisuje zmeny späť do súboru pri odmapovaní, MAP_PRIVATE nie
  • - Štruktúra VMA uchováva adresu, dĺžku, offset, flagy a smerník na súbor mapovania
  • - Mapovania sa v XV6 ukladajú ako pole VMA priamo v struct proc, prázdny záznam sa hľadá pomocou FindEmptyVMA
  • - Súbory sa mapujú lenivo — reálna alokácia stránky a kopírovanie dát prebieha až pri page faulte, podobne ako pri Copy-on-Write forku
  • - Pre oblasť mmap sa vyhradzuje pevná adresa v adresnom priestore mimo rastúcej haldy procesu
  • - Zostáva doimplementovať obsluhu výpadku stránky, munmap, a úpravu fork/exit pre dedenie a uvoľnenie mapovaní

Zhrnutie pripravené s pomocou AI z prepisu videa.