理解Linux中virtual memory

  • Virtual memory

    wikipedia

    virtual memory (also virtual storage) is a memory management technique that provides an “idealized abstraction of the storage resources that are actually available on a given machine”, which “creates the illusion to users of a very large (main) memory”.

    The computer’s operating system, using a combination of hardware and software, maps memory addresses used by a program, called virtual addresses , into physical addresses in computer memory.

    The primary benefits of virtual memory include freeing applications from having to manage a shared memory space, increased security due to memory isolation, and being able to conceptually use more memory than might be phsically available, using the technique of paging.

  • History and usage

    Virtual memory is an integral part of modern computer architechture; implementations usually require hardware support, typically in the form of a memory management unit built into the CPU.

    During the 1960s and early 70s, comuter memory was very expensive. The introduction of virtual memory provided an ability for software systems with large memory demands to run on computers with less real memory.

    Modern operating systems that support virtual memory also run each process in its own dedicated address space.

  • 前情回顧

    從上文可知,想要進一步理解virtual memory,需要先了解:

    • 《理解Computer中address space》
    • 《理解Computer中memory management》
  • Paged virtual memory

    Nearly all current implementations of virtual memory divide a virtual address space into pages, blocks of contiguous virtual memory addresses.

    Pages on contemporary systems are usually at least 4 kilobytes in size, systems with large virtual address ranges or amounts of real memory generally use larger page sizes.

    • Page tables
    • Paging supervisor
    • Pinned pages
    • Thrashing
  • Segmented virtual memory

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章