Tématické skupiny v rámci předmětu PB173 Tematicky zaměřený vývoj aplikací v jazyce C/C++

Téma 10: Paměť trochu jinak I.

Teoretická část

  • mmap

Praktický úkol pro cvičení

  • Přemapování stránek do procesu
    • Dvěma způsoby

Domácí úkol

  • Přemapujte stránky pomocí fault
    • Poslední úkol z hodiny
  • Mapujte pb173/10/task.bin na adresu 0x800000
    • Je tam unární funkce (unsigned int fun(unsigned int))
    • Je určena pro 64-bitové x86
    • Po mapování ji v uživatelském prostoru zavolejte
      • Zjistěte co dělá (je to goniometrická funkce a akceptuje parametr ve stupních v rozsahu 0..180)
    • Nejprve si musíte task.bin poslat do jádra
      • Např. pomocí ioctl
      • Pozor na vstup od uživatele!
      • Nepoužívejte kernel_read ani podobně špatné způsoby načítaní souborů z jádra
    • Po ioctl zavolejte mmap
      • Addr bude 0x800000
      • fd bude vaše znakové zařízení
      • Jádro namapuje buffer dříve naplněný pomocí ioctl