HugePages-แƒ˜แƒก แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒฃแƒแƒ แƒงแƒแƒคแƒ˜แƒ—แƒ˜ แƒ›แƒฎแƒแƒ แƒ”แƒ”แƒ‘แƒ˜

HugePages-แƒ˜แƒก แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒฃแƒแƒ แƒงแƒแƒคแƒ˜แƒ—แƒ˜ แƒ›แƒฎแƒแƒ แƒ”แƒ”แƒ‘แƒ˜

แƒ™แƒฃแƒ แƒกแƒ˜แƒก แƒกแƒขแƒฃแƒ“แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒ˜ "แƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ˜".

แƒแƒ“แƒ แƒ” แƒ›แƒ” แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ” แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒกแƒชแƒแƒ“แƒ แƒ“แƒ แƒฉแƒแƒ แƒ—แƒ Hugepages Linux-แƒ–แƒ”.
แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ’แƒแƒฅแƒ•แƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒ˜, แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— Hugepages. แƒ›แƒ” แƒจแƒ”แƒ•แƒฎแƒ•แƒ“แƒ˜ แƒฃแƒแƒ›แƒ แƒแƒ• แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒแƒขแƒงแƒฃแƒ”แƒ‘แƒฃแƒšแƒœแƒ˜ แƒแƒ แƒ˜แƒแƒœ แƒ˜แƒ› แƒžแƒ”แƒ แƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ•แƒ˜แƒ—, แƒ แƒแƒ› Hugepages แƒฏแƒแƒ“แƒแƒกแƒœแƒฃแƒ แƒแƒ“ แƒ’แƒแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒฃแƒšแƒแƒ‘แƒแƒก. แƒ—แƒฃแƒ›แƒชแƒ, แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒžแƒ”แƒ˜แƒฏแƒ˜แƒœแƒ’แƒ˜ แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒกแƒฃแƒ แƒ˜ แƒ—แƒ”แƒ›แƒแƒ แƒ“แƒ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒฅแƒ•แƒ”แƒ˜แƒ—แƒ“แƒ”แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ.

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1: แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ Linux-แƒ–แƒ” (แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒ˜ แƒแƒฅ)

แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ:
แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ—แƒฃ แƒแƒ แƒ HugePages แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜.

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜:
แƒ”แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ:

cat /sys/kernel/mm/transparent_hugepage/enabled

แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒแƒกแƒ”แƒ— แƒ แƒแƒ›แƒ”แƒก:

always [madvise] never

แƒ—แƒฅแƒ•แƒ”แƒœ แƒœแƒแƒฎแƒแƒ•แƒ— แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒ›แƒแƒœแƒแƒ—แƒ•แƒแƒšแƒก (แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก, แƒจแƒ”แƒจแƒšแƒ˜แƒšแƒ˜, แƒแƒ แƒแƒกแƒ“แƒ แƒแƒก), แƒฎแƒแƒšแƒ แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒฉแƒแƒกแƒ›แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒคแƒ แƒฉแƒฎแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ (แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“ แƒจแƒ”แƒจแƒšแƒ˜แƒšแƒ˜).

แƒจแƒ”แƒจแƒšแƒ˜แƒšแƒ˜ แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒ แƒแƒ› transparent hugepages แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒชแƒแƒšแƒกแƒแƒฎแƒแƒ“ แƒ˜แƒ—แƒฎแƒแƒ•แƒ”แƒœ แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก madvise (2).

แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒ แƒแƒ› transparent hugepages แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒงแƒ•แƒ”แƒšแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ”แƒก แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒ›แƒแƒ˜แƒฎแƒ›แƒแƒ แƒก แƒ›แƒชแƒ˜แƒ แƒ” แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒ— แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ™แƒ•แƒ”แƒ—แƒ แƒแƒ“ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒแƒก.

แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒ แƒแƒ› transparent hugepages แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ madvise-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒ”แƒขแƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“, แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ˜แƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ Linux-แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ”แƒ‘แƒ˜.

แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ•แƒชแƒ•แƒแƒšแƒแƒ— แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ

แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ 1: แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒจแƒ”แƒชแƒ•แƒšแƒ sysfs (แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ• แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก):

echo always >/sys/kernel/mm/transparent_hugepage/enabled
echo madvise >/sys/kernel/mm/transparent_hugepage/enabled
echo never >/sys/kernel/mm/transparent_hugepage/enabled

แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ 2: แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒ— แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒ— (แƒ”แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฃ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒš แƒ‘แƒ˜แƒ แƒ—แƒ•แƒก):

  • แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“ แƒ“แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ—:
    CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
    # Comment out CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
  • madvise แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“ แƒ“แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ—:
    CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
    # Comment out CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2: HugePages-แƒ˜แƒก แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒฃแƒแƒ แƒงแƒแƒคแƒ˜แƒ—แƒ˜ แƒ›แƒฎแƒแƒ แƒ”แƒ”แƒ‘แƒ˜

แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒ”แƒชแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒ˜แƒ— แƒแƒ•แƒฎแƒกแƒœแƒแƒ— Hugepages-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ”แƒ‘แƒ˜, แƒฃแƒแƒ แƒงแƒแƒคแƒ˜แƒ—แƒ˜ แƒ›แƒฎแƒแƒ แƒ”แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒฎแƒแƒ แƒ•แƒ”แƒ–แƒ”แƒ‘แƒ˜. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒฃแƒ แƒแƒ“ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ“แƒ แƒžแƒ”แƒ“แƒแƒœแƒขแƒฃแƒ แƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ, แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“, แƒ แƒ—แƒฃแƒšแƒ˜ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ˜แƒ› แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒชแƒ“แƒ”แƒ‘แƒ˜แƒแƒœ, แƒ แƒแƒ› Hugepages แƒžแƒแƒœแƒแƒชแƒ”แƒแƒ, แƒ›แƒ” แƒจแƒ”แƒ•แƒฌแƒ˜แƒ แƒแƒ• แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ”แƒก แƒกแƒ˜แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒก. แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒก, แƒ แƒแƒ› แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ—แƒ”แƒ›แƒ แƒ›แƒแƒ แƒ—แƒšแƒแƒช แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ“แƒ, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜.

แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ•แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘แƒ— 64-แƒ‘แƒ˜แƒขแƒ˜แƒแƒœ x86 แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ–แƒ”, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ”แƒœ Linux-แƒ–แƒ”, แƒ“แƒ แƒ แƒแƒ› แƒ›แƒ” แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ‘, แƒ แƒแƒ› แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒ’แƒแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒ” แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒก (แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒ˜แƒœแƒฃแƒกแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ), แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒฎแƒ“แƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” Linux-แƒจแƒ˜. แƒ’แƒแƒ แƒ”แƒ›แƒ.

แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ  แƒแƒฆแƒฌแƒ”แƒ แƒแƒก แƒ“แƒแƒ•แƒ“แƒ”แƒ‘ แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒ–แƒ”.

แฒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ

แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฎแƒแƒ แƒ— C++ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒ˜, แƒ˜แƒชแƒ˜แƒ—, แƒ แƒแƒ› แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒก แƒแƒฅแƒ•แƒ— แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜ (แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒšแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜).

แƒ—แƒฃแƒ›แƒชแƒ, แƒ”แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜ แƒกแƒฃแƒšแƒแƒช แƒแƒ  แƒแƒกแƒแƒฎแƒแƒ•แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ  แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒก (RAM แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜). แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒแƒ“แƒ’แƒ”แƒœแƒ”แƒœ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒก แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜. แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒก แƒแƒฅแƒ•แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ MMU (แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ˜) แƒ›แƒแƒ“แƒฃแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒก แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ  แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒแƒ–แƒ” แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒแƒจแƒ˜.

แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒก แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ แƒแƒฅแƒ•แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ:

  • แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ (แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜แƒก แƒ’แƒแƒ›แƒ);
  • แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ˜แƒ–แƒแƒšแƒแƒชแƒ˜แƒ, แƒแƒœแƒฃ แƒ•แƒ”แƒ แƒชแƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒ•แƒ”แƒ  แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ.

แƒ แƒ แƒแƒ แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜?

แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ แƒ“แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒแƒ“. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ  แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒ–แƒ”, แƒ›แƒแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒก RAM-แƒ˜แƒก แƒแƒ แƒ”แƒ–แƒ”, แƒแƒœ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒก แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ  แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒ–แƒ” แƒ›แƒ˜แƒœแƒ˜แƒญแƒ”แƒ‘แƒฃแƒš แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ”, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒ‘แƒแƒ แƒแƒ—แƒ˜.

แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒœแƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒกแƒแƒฅแƒ›แƒ”, แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก RAM-แƒ–แƒ” แƒแƒœ แƒแƒ แƒ˜แƒก แƒ’แƒแƒชแƒ•แƒšแƒ˜แƒšแƒ˜, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ›แƒงแƒแƒ  แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” แƒแƒœ SSD-แƒ–แƒ”. แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒ›แƒแƒ แƒ—แƒแƒ•แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ  แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒแƒก. แƒ—แƒฃ แƒ’แƒแƒงแƒแƒšแƒ‘แƒ”แƒ‘แƒฃแƒš แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒแƒฉแƒ”แƒ แƒ”แƒ‘แƒก แƒ—แƒ”แƒ›แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒฌแƒ•แƒ“แƒแƒ›แƒแƒก, แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒก แƒ›แƒงแƒแƒ แƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ˜แƒ“แƒแƒœ/SSD-แƒ“แƒแƒœ RAM-แƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒก แƒœแƒแƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก.

แƒ”แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒ’แƒแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒ”แƒ, แƒ แƒแƒช แƒ˜แƒ›แƒแƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ˜แƒก แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒแƒ  แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  HDD/SSD-แƒ“แƒแƒœ. แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ›แƒแƒ 4096 แƒ‘แƒแƒ˜แƒขแƒ˜. แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ›แƒแƒ 2 แƒ›แƒ”แƒ’แƒแƒ‘แƒแƒ˜แƒขแƒ˜.

แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒ˜แƒก แƒแƒกแƒแƒชแƒ˜แƒแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ‘แƒฃแƒคแƒ”แƒ แƒ˜ (TLB)

แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒฌแƒ•แƒ“แƒ”แƒ‘แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ”, แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ›แƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒชแƒแƒ“แƒ”แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ“แƒแƒœ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ (แƒแƒœแƒฃ แƒแƒฅแƒ•แƒก แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒ แƒฃแƒ™แƒ).

แƒ‘แƒ˜แƒ แƒ—แƒ•แƒก แƒแƒฅแƒ•แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ (แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜), แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ  แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ” แƒ“แƒแƒแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒแƒ—.

แƒ—แƒฃแƒ›แƒชแƒ, แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ“แƒ แƒœแƒ”แƒšแƒ˜แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ•แƒ”แƒ  แƒ’แƒแƒ•แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒ—แƒšแƒ˜แƒแƒœ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒก แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ”, แƒ แƒแƒชแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒก แƒฌแƒ•แƒ“แƒ”แƒ‘แƒ.

แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, แƒฉแƒ•แƒ”แƒœแƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒก แƒแƒฅแƒ•แƒก TLB, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒ แƒฃแƒ™แƒ”แƒ‘แƒก แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ“แƒ แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ  แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ’แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ˜แƒกแƒแƒก, แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ” แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ“แƒ”แƒก TLB-แƒจแƒ˜, แƒ แƒแƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ.

แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ˜แƒšแƒ˜แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ (แƒ แƒแƒช แƒ›แƒแƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜ แƒแƒฉแƒฅแƒแƒ แƒ”แƒ‘แƒก), แƒ›แƒ˜แƒกแƒ˜ แƒขแƒ”แƒ•แƒแƒ“แƒแƒ‘แƒ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒฃแƒšแƒ˜แƒ. แƒแƒกแƒ” แƒ แƒแƒ›, แƒ—แƒฃ แƒ’แƒกแƒฃแƒ แƒ— แƒ›แƒ”แƒขแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒฌแƒ•แƒ“แƒแƒ›แƒ, TLB แƒ•แƒ”แƒ  แƒจแƒ”แƒซแƒšแƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜แƒก แƒ แƒฃแƒ™แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒแƒก, แƒ แƒแƒช แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒœแƒ”แƒš แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก.

แƒฐแƒแƒ˜แƒžแƒ”แƒ˜แƒฏแƒ˜ แƒกแƒแƒ›แƒแƒจแƒ•แƒ”แƒšแƒแƒจแƒ˜ แƒ›แƒแƒ“แƒ˜แƒก

แƒ›แƒแƒจ, แƒ แƒ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— TLB-แƒก แƒ’แƒแƒ“แƒแƒญแƒแƒ แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒกแƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“? (แƒ•แƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ‘แƒ—, แƒ แƒแƒ› แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒก แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ).

แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒฅ แƒจแƒ”แƒ›แƒแƒ“แƒ˜แƒก Hugepages. 4096 แƒ‘แƒแƒ˜แƒขแƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ— TLB แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒก, แƒ”แƒ แƒ—แƒ˜ TLB แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒแƒฎแƒšแƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ“แƒ”แƒก แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ  2 แƒ›แƒ”แƒ’แƒแƒ‘แƒแƒ˜แƒขแƒ–แƒ”. แƒ“แƒแƒ•แƒฃแƒจแƒ•แƒแƒ—, TLB-แƒก แƒแƒฅแƒ•แƒก 512 แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜, แƒแƒฅ Hugepages-แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒแƒ›แƒ—แƒฎแƒ•แƒ˜แƒแƒ—:

4096 bโ‹…512=2 MB

แƒ›แƒแƒจแƒ˜แƒœ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒแƒ“แƒแƒ แƒแƒ— แƒ›แƒแƒ—:

2 MBโ‹…512=1 GB

แƒแƒ›แƒ˜แƒขแƒแƒ›แƒแƒ Hugepages แƒ’แƒแƒกแƒแƒแƒชแƒแƒ แƒ˜แƒ. แƒ›แƒแƒ— แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒœ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒฃแƒšแƒแƒ‘แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒซแƒแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฃแƒ™แƒฃแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜.

แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒงแƒแƒšแƒ‘แƒ”แƒ‘แƒ

แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜. แƒ—แƒฃ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ (RAM), แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒก แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœ (แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš) แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒก แƒ›แƒงแƒแƒ  แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”, แƒ แƒแƒ—แƒ แƒ’แƒแƒแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒแƒก RAM แƒฃแƒคแƒ แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒจแƒ˜, แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ”แƒฎแƒ”แƒ‘แƒ Hugepages-แƒก. แƒ—แƒฃแƒ›แƒชแƒ, แƒ‘แƒ˜แƒ แƒ—แƒ•แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒ แƒ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒšแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒ˜.

แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒกแƒ”แƒ—แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ:

char* mymemory = malloc(2*1024*1024); // ะ’ะพะทัŒะผะตะผ ัั‚ะพ ะทะฐ ะพะดะฝัƒ Hugepage!
// ะ—ะฐะฟะพะปะฝะธะผ mymemory ะบะฐะบะธะผะธ-ะปะธะฑะพ ะดะฐะฝะฝั‹ะผะธ
// ะกะดะตะปะฐะตะผ ะผะฝะพะณะพ ะดั€ัƒะณะธั… ะฒะตั‰ะตะน,
// ะบะพั‚ะพั€ั‹ะต ะฟั€ะธะฒะตะดัƒั‚ ะบ ะฟะพะดะผะตะฝะต ัั‚ั€ะฐะฝะธั†ั‹ mymemory
// ...
// ะ—ะฐะฟั€ะพัะธะผ ะดะพัั‚ัƒะฟ ั‚ะพะปัŒะบะพ ะบ ะฟะตั€ะฒะพะผัƒ ะฑะฐะนั‚ัƒ
putchar(mymemory[0]); 

แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ‘แƒ˜แƒ แƒ—แƒ•แƒก แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒก (แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒก) 2 แƒ›แƒ”แƒ’แƒแƒ‘แƒแƒ˜แƒขแƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ›แƒงแƒแƒ แƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ˜แƒ“แƒแƒœ/SSD แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒ”แƒ แƒ—แƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜. แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒก, แƒ›แƒงแƒแƒ แƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ˜แƒ“แƒแƒœ/SSD-แƒ“แƒแƒœ แƒ›แƒฎแƒแƒšแƒแƒ“ 4096 แƒ‘แƒแƒ˜แƒขแƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ แƒกแƒแƒญแƒ˜แƒ แƒ.

แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ—แƒฃ แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒแƒ™แƒ แƒซแƒแƒšแƒฃแƒšแƒ˜แƒ, แƒ›แƒ˜แƒกแƒ˜ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜แƒ, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒ›แƒ—แƒ”แƒš แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ”. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒจแƒ”แƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒœแƒแƒฌแƒ˜แƒšแƒ–แƒ” แƒ“แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ™แƒ˜แƒšแƒแƒ‘แƒแƒ˜แƒขแƒก, แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒ  แƒ˜แƒœแƒ”แƒ แƒ•แƒ˜แƒฃแƒšแƒแƒ— แƒกแƒฎแƒ•แƒแƒ–แƒ”.

แƒ›แƒ”แƒแƒ แƒ”แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, แƒ—แƒฃ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ“ แƒœแƒแƒฌแƒ˜แƒšแƒ–แƒ” แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒแƒ“ แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—, แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜ แƒ’แƒแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก. แƒ—แƒฃแƒ›แƒชแƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ—แƒ•แƒ˜แƒ—แƒแƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ˜แƒ’แƒ˜ (แƒแƒ แƒ แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒขแƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ˜แƒ—) แƒ“แƒ แƒœแƒแƒฎแƒแƒ— แƒ แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“.

แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜

แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒฌแƒ”แƒ แƒ— C, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ˜แƒชแƒ˜แƒ—, แƒ แƒแƒ› แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒแƒ— แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒแƒ“ แƒ›แƒชแƒ˜แƒ แƒ” (แƒแƒœ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒแƒ“ แƒ“แƒ˜แƒ“แƒ˜) แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒ แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— malloc(). แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— 30 แƒ‘แƒแƒ˜แƒขแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ:

char* mymemory = malloc(30);

แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒ”แƒฉแƒ•แƒ”แƒœแƒแƒก, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ โ€žแƒ˜แƒ—แƒฎแƒแƒ•แƒ—โ€œ 30 แƒ‘แƒแƒ˜แƒข แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ— แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜. แฒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ malloc () แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ C แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒซแƒแƒฎแƒ”แƒ‘แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ“แƒแƒœ แƒ‘แƒ แƒ™ แƒ“แƒ แƒกแƒ‘แƒ แƒ™ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒ“แƒแƒœ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒแƒœ แƒ’แƒแƒœแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ˜แƒ—.

แƒ—แƒฃแƒ›แƒชแƒ, แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ”แƒขแƒ˜ แƒ“แƒ แƒ›แƒ”แƒขแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒแƒ แƒแƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒ; แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“, แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒกแƒ”แƒ’แƒ›แƒ”แƒœแƒขแƒ˜ แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ (free())แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒ˜แƒกแƒ˜ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. malloc() แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ แƒ—แƒฃแƒš แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ”แƒ‘แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก.

แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒจแƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒจแƒ”แƒฃแƒ›แƒฉแƒœแƒ”แƒ•แƒšแƒแƒ“ แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒขแƒแƒ› แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ’แƒแƒฌแƒฃแƒฎแƒ? แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ“แƒ’แƒแƒœ แƒ’แƒแƒ›แƒแƒฌแƒ•แƒ”แƒ•แƒ free() แƒแƒ  แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒแƒ›แƒแƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒš แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก.

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ. แƒฃแƒ™แƒ˜แƒ“แƒฃแƒ แƒ”แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒแƒ แƒ˜แƒก แƒ’แƒ แƒแƒ•แƒ˜แƒก แƒกแƒ”แƒ’แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜, แƒกแƒแƒ“แƒแƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ‘แƒแƒ˜แƒขแƒ˜, แƒฎแƒแƒšแƒ แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ (free()).

แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒฌแƒแƒ แƒ›แƒแƒฃแƒ“แƒ’แƒ”แƒœแƒšแƒแƒ“ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ—แƒ”แƒ›แƒแƒ แƒ“แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒฃแƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ›แƒแƒช แƒ™แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ’แƒแƒ•แƒšแƒ”แƒœแƒ แƒ˜แƒฅแƒแƒœแƒ˜แƒแƒก. แƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœ แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒœแƒ“แƒ แƒ˜แƒชแƒแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒ—แƒฃ แƒ’แƒ แƒแƒ•แƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒฃแƒ‘แƒแƒœแƒจแƒ˜ แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒ, แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ›แƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ›แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒแƒฃแƒแƒ แƒ”แƒกแƒแƒก แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ.

แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒ˜แƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒแƒ“แƒ’แƒ˜แƒœแƒ”แƒ—, แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ แƒแƒ›แƒ”แƒš แƒœแƒแƒฌแƒ˜แƒšแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ˜แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒแƒก แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒแƒ แƒ. แƒแƒกแƒ” แƒ แƒแƒ›, แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜?

แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— madvise()แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒžแƒ”แƒ˜แƒฏแƒ˜แƒœแƒ’แƒ˜แƒก แƒฉแƒแƒ แƒ—แƒ•แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ› แƒฃแƒ‘แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒกแƒแƒ“แƒแƒช แƒ˜แƒก แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ.

แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ—, แƒ แƒแƒ› แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก madvise() แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— madvise()แƒ แƒแƒ› แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒฃแƒ—แƒฎแƒ แƒแƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒก แƒกแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒก แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜.

#include <sys/mman.h>
// ะะปะปะพั†ะธั€ัƒะนั‚ะต ะฑะพะปัŒัˆะพะต ะบะพะปะธั‡ะตัั‚ะฒะพ ะฟะฐะผัั‚ะธ, ะบะพั‚ะพั€ัƒัŽ ะฑัƒะดะตั‚ะต ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ
size_t size = 256*1024*1024;
char* mymemory = malloc(size);
// ะŸั€ะพัั‚ะพ ะฒะบะปัŽั‡ะธั‚ะต hugepagesโ€ฆ
madvise(mymemory, size, MADV_HUGEPAGE);
// โ€ฆ ะธ ะทะฐะดะฐะนั‚ะต ัะปะตะดัƒัŽั‰ะตะต
madvise(mymemory, size, MADV_HUGEPAGE | MADV_SEQUENTIAL)

แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒ”แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ แƒฉแƒ”แƒ•แƒแƒ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ”แƒก แƒแƒ  แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ  แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒก แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ (manpage)madviseแƒ แƒแƒ› แƒ’แƒแƒ˜แƒ’แƒแƒ— แƒ›แƒ”แƒขแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ“แƒ madvise(), แƒแƒ› แƒ—แƒ”แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒฌแƒแƒ แƒ›แƒแƒฃแƒ“แƒ’แƒ”แƒœแƒšแƒแƒ“ แƒชแƒ˜แƒชแƒแƒ‘แƒ แƒกแƒแƒกแƒฌแƒแƒ•แƒšแƒ แƒ›แƒ แƒฃแƒ“แƒ˜. แƒแƒกแƒ” แƒ แƒแƒ›, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ— แƒแƒ›แƒแƒจแƒ˜ แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ™แƒแƒ แƒ’แƒ˜ แƒ’แƒแƒฎแƒ“แƒ”แƒ—, แƒ›แƒแƒ”แƒ›แƒ–แƒแƒ“แƒ”แƒ— แƒฌแƒแƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒแƒ“ แƒ“แƒ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ™แƒ•แƒ˜แƒ แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜, แƒกแƒแƒœแƒแƒ› แƒ แƒแƒ˜แƒ›แƒ” แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒ“แƒ”แƒ’แƒก แƒ›แƒแƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒ—.

แƒ แƒ แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ?

แƒ’แƒแƒฅแƒ•แƒ— แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ? แƒ“แƒแƒฌแƒ”แƒ แƒ”แƒ— แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒจแƒ˜!

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ