1 / 9

Virtual Memory Area

Virtual Memory Area. Harold Austin Kyle Moore William Pedicone. Introduction. What is the vm_area_struct? What operations are attached to the struct vm_area_struct? Why did we get saddled with the Virtual Memory Struct? (Because we chose last)

mariel
Télécharger la présentation

Virtual Memory Area

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Virtual Memory Area Harold Austin Kyle Moore William Pedicone

  2. Introduction • What is the vm_area_struct? • What operations are attached to the struct vm_area_struct? • Why did we get saddled with the Virtual Memory Struct? (Because we chose last) • Some cool stuff about the Virtual Memory . . .

  3. Overview – Mapping Virtual Memory

  4. Overview – Page/ VM Detail

  5. Overview - Page / VM Generalized duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory

  6. Virtual Memory Flags List • VM_MAYREAD 0x00000010 • VM_MAYWRITE 0x00000020 • VM_MAYEXEC 0x00000040 • VM_MAYSHARE 0x00000080 • VM_GROWSDOWN 0x00000100 • VM_GROWSUP 0x00000000 • VM_NOHUGEPAGE 0x00000200 • VM_PFNMAP 0x00000400 • VM_DENYWRITE 0x00000800 • VM_EXECUTABLE 0x00001000 • VM_LOCKED 0x00002000 • VM_IO 0x00004000 • VM_SEQ_READ 0x00008000 • VM_RAND_READ 0x00010000 • VM_DONTCOPY 0x00020000 • VM_DONTEXPAND 0x00040000 • VM_RESERVED 0x00080000 • VM_ACCOUNT 0x00100000 • VM_NORESERVE 0x00200000 • VM_HUGETLB 0x00400000 • VM_NONLINEAR 0x00800000 • VM_MAPPED_COPY 0x01000000 • VM_HUGEPAGE 0x01000000 • VM_INSERTPAGE 0x02000000 • VM_ALWAYSDUMP 0x04000000 • VM_CAN_NONLINEAR 0x08000000 • VM_MIXEDMAP 0x10000000 • VM_SAO 0x20000000 • VM_PFN_AT_MMAP 0x40000000 • VM_MERGEABLE 0x80000000 • VM_STACK_INCOMPLETE_SETUP (VM_RAND_READ | VM_SEQ_READ) • VM_STACK_DEFAULT_FLAGSVM_DATA_DEFAULT_FLAGS • VM_STACK_FLAGS (VM_GROWSUP | VM_STACK_DEFAULT_FLAGS | VM_ACCOUNT) • VM_STACK_FLAGS (VM_GROWSDOWN | VM_STACK_DEFAULT_FLAGS | VM_ACCOUNT) • VM_READHINTMASK (VM_SEQ_READ | VM_RAND_READ) • VM_ClearReadHint(v) (v)->vm_flags &= ~VM_READHINTMASK • VM_NormalReadHint(v) (!((v)->vm_flags & VM_READHINTMASK)) • VM_SequentialReadHint(v) ((v)->vm_flags & VM_SEQ_READ) • VM_RandomReadHint(v) ((v)->vm_flags & VM_RAND_READ) http://lxr.linux.no/linux+v3.0.4/include/linux/mm.h

  7. Virtual Memory Operations • Open – opening a virtual memory area • Close – closing a virtual memory area • Fault – generating a page fault • Pg_mkwrite – ??? (writes to a file already opened?) • Access - ??? (Security?)

  8. Anonymous Virtual Memory

  9. Resources • kos.enix.org/pub/linux-vmm.html • lxr.linux.no/linux+v3.0.4/linux/mm_types.h • www.makelinux.co.il/books/ikd2/ch14lev1sec2 • lwn.net/Articles/383162 (and others) • kernel.org/doc/Documentation/rbtree.txt • duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory • www.linuxjournal.com/article/10678 (and others)

More Related