由showmem命令引出的内存分配问题

XTANG,我算过,所有Total内存相加,等于系统使用内存82M.
问题是procnto的数值为何是0?有些不能理解。

还有一个相关的问题,如在X86,procnto的虚拟内存范围是3.5G到4G。
我记得你说过内核在每个进程的3.5G到4G,请问你指的是内核还是procnto进程?
不是说procnto进程和其它进程一样么?为何感觉又有些特别。

结合上面内存使用的问题,就有些分不清方向了。望XTANG有空指点迷津。谢谢!

# showmem -S
System RAM:      255M (     267974656) 
Total Used:       82M (      86540288) 
 Used Private:    79M (      83783680) 
 Used Shared:   2692K (       2756608) 
# showmem -P 
Process listing (Total, Code, Data, Heap, Stack, Other)
        0          0          0          0          0          0           1 procnto
   143360       8192      20480     106496       8192          0           2 tinit
   192512      61440      20480     102400       8192          0        4099 pci-bios
   176128      12288      20480     135168       8192          0        4100 slogger
   434176     159744      36864     208896      28672          0        4101 io-usb
   278528      94208      49152     102400      32768          0        4102 io-hid
   274432     102400      24576     135168      12288          0        4103 devc-con-hid
 44478464     159744      49152   44134400     135168          0        8200 devb-eide
   196608      16384      20480     106496      53248          0       20489 pipe
   155648      12288      20480     114688       8192          0       24586 mqueue
   208896      32768      24576     102400      49152          0       53259 mcd
   512000      69632      53248     368640      20480          0       57356 random
   229376      28672      20480     172032       8192          0       61453 enum-devices
   192512      24576      36864     122880       8192          0      143374 devb-fdc
   229376      65536      20480     135168       8192          0      143375 devc-ser8250
   163840      16384      32768     102400      12288          0       77840 enum-usb
   217088      40960      36864     102400      32768       4096       98321 io-display
  1744896     962560      53248     651264      77824          0      114706 io-pkt-v4-hc
   303104     102400      28672     135168      36864          0      266259 devi-hid
   241664      49152      57344     122880      12288          0      143380 dhcp.client
   425984      61440      20480     335872       8192          0      151573 devc-pty
   258048      57344      24576     139264      36864          0      163862 dumper
   536576     118784      49152     348160      20480          0      167959 qconn
   131072          0      20480     102400       8192          0      192536 login
   364544     114688      49152     184320      16384          0     1101849 telnetd
   131072          0      20480     102400       8192          0      192538 login
   131072          0      20480     102400       8192          0      192539 login
   131072          0      20480     102400       8192          0      278556 login
   917504      49152     106496     749568      12288          0      446493 pterm
   241664      73728      20480     139264       8192          0      221214 Photon
 22904832     913408     147456    1351680      28672   20463616      241695 io-graphics
   167936          0      24576     135168       8192          0      446496 sh
   372736     110592      81920     167936      12288          0      360481 pwm
  1409024     675840     217088     495616      20480          0      389154 shelf
  4145152     114688      81920     135168      12288    3801088      409635 bkgdmgr
   299008      12288      73728     200704      12288          0      409636 wmswitch
   319488      20480      86016     200704      12288          0      409637 saver
   167936          0      24576     135168       8192          0     1105958 sh
   208896      40960      49152     106496      12288          0      966695 inetd
   147456      16384      20480     102400       8192          0     1167400 showmem
Shared shared objects (Total, Code, Data, Heap, Stack, Other)
   462848     462848          0          0          0          0          -1 proc/boot/libc.so.3
    24576      24576          0          0          0          0          -1 proc/boot/libhiddi.so.1
    40960      40960          0          0          0          0          -1 proc/boot/libusbdi.so.2
    61440      61440          0          0          0          0          -1 proc/boot/libcam.so.2
   139264     139264          0          0          0          0          -1 proc/boot/io-blk.so
   176128     176128          0          0          0          0          -1 libm.so.2
    40960      40960          0          0          0          0          -1 devg-vmware.so
    69632      69632          0          0          0          0          -1 libffb.so.2
   163840     163840          0          0          0          0          -1 libsocket.so.2
    20480      20480          0          0          0          0          -1 bin/login
   184320     184320          0          0          0          0          -1 libphexlib.so.3
    57344      57344          0          0          0          0          -1 libimg.so.1
    61440      61440          0          0          0          0          -1 libAp.so.3
  1077248    1077248          0          0          0          0          -1 libph.so.3
    28672      28672          0          0          0          0          -1 libfont.so.1
   147456     147456          0          0          0          0          -1 bin/sh

两个都是。

从文件上来看,procnto是一个文件;它包括了,内核、进程管理器、内存管理器、路径名管理器等重要的管理器。所有这些,都在同一个空间内。

procnto在内核的意义上是一个进程,它的调度,fd资源都受“进程”的制约。但在内存使用上,它是同内核同一空间的特殊进程。

那procnto 数值为0如何解释呢?因为所有命令都显示为0。
如pidin mem,sin,showmem等。

是分摊到各进程中了?
还是说procnto 是有使用内存的。只是不能被计算出来?

对。