2013年8月23日 星期五

紀錄一下/proc/pid/maps的使用

在跑起來的一支程式,可用cat /proc/pid/maps 來看他的memory layout
(似乎只看的到user space的)

以下是這段code看到的資訊:



  • address - The starting and ending address of the region in the process's address space
  • permissions - rwx就不用講了,p代表的是private(not shared),意義我也不懂@@
  • offset - Where the memory area begins in the file that it is mapped to. An offset of 0
    means that the beginning of the memory area corresponds to the beginning of
    the file.
  • device - If the region was mapped from a file, this is the major and minor device number (in hex) where the file lives.
  • inode - If the region was mapped from a file, this is the file number.
  • pathname - If the region was mapped from a file, this is the name of the file. This field is blank for anonymous mapped regions
reference : http://stackoverflow.com/questions/1401359/understanding-linux-proc-id-maps

其中這三個
應該是由上而下依序代表text(code) section, data section, BSS(uninitialization data) section

64bit的server上跑的@@
改天找個32bit machine跑對我來說比較容易

Related Posts:

  • Kernel Space MemoryReference : http://www.chudov.com/tmp/LinuxVM/html/understand/node28.html Kernel的virtual memory適用linear mapping,physical address 0對應到kernel virtual memory的PAGE_OFFSET(通常是0xC000_0000) 也就是說kernel virtual address - PAGE_OFFSET就… Read More
  • Dynamic vs static library 最想解出的問題就是dynamic library是load在process何處 被老大assign的工作: 他發現他跑程式,不同的process,只要是有同一個dynamic library,point到library的pointer位置都是一樣,我也覺得很好奇 Dynamic library vs static library: Static:   Usually xxx.a.   整個library compile進執… Read More
  • Describing Physical MemoryReference: http://www.chudov.com/tmp/LinuxVM/html/understand/node16.html NUMA(non-uniform memory access)架構下,memory被分成很多的bank(又稱為node),而每個bank被CPU access的cost不同 Linux用struct pg_data_t來代表bank(or node) 而PC是一UMA的架構,所以只有一個p… Read More
  • Allocating and Freeing Page TablesReference : http://www.chudov.com/tmp/LinuxVM/html/understand/node26.html 因為page table的allocation跟free有很大的cost,而且又是很常要執行的操作(process create&delete) 所以Linux kernel使用quicklists來cache住用來當page table的page quicklist包含pgd_quick… Read More
  • Time-sharing vs multitaskingTime-sharing是一把一個CPU的時間做細分,來讓多個程式"看起來"同時執行 Multitasking就是"看起來"有很多個程式同時執行 所以time-sharing一定就是multitasking 但Multitasking一定是time-sharing嗎? 如果三個CPU都各只執行一個程式,那這樣是multitasking卻不是time-sharing了 有點像是multitasking是一種結果,而要達到這種結果有許多技術 其中… Read More

0 意見:

張貼留言