Ò»¸öC³ÌÐòµÄÄÚ´æ²¼¾Ö(memory layout)
Ò»¸öC³ÌÐòµÄÄÚ´æ²¼¾Ö(memory layout)
2009-09-09 15:19
Ò»¸öC³ÌÐòÒ»Ö±ÒÔÀ´¶¼ÊÇÓÉÒÔÏÂ5¸ö¶Î(pieces)×é³É£º
´úÂë¶Î(text segment)£º´æ·ÅCPUÖ´ÐеĻúÆ÷Ö¸Áî(machine instructions)¡£Í¨³£Çé¿öÏ£¬´úÂë¶ÎÊǿɹ²ÏíµÄ£¬Ê¹Æä¿É¹²ÏíµÄÄ¿µÄÊǶÔÓÚÆµ·±±»Ö´ÐеijÌÐò£¬Ö»ÐèÒªÔÚÄÚ´æÖÐÓÐÒ»·Ý¿½±´¼´¿É£¬±ÈÈçÎı¾±à¼Æ÷(text editors)£¬C±àÒëÆ÷£¬shellµÈµÈ¡£ÁíÍ⣬´úÂë¶ÎҲͨ³£ÊÇÖ»¶ÁµÄ£¬Ê¹ÆäÖ»¶ÁµÄÔÒòÊÇ·ÀÖ¹Ò»¸ö³ÌÐòÒâÍâµØÐÞ¸ÄÁËËüµÄÖ¸Áî(prevent a program from accidentally modifying its instructions)¡£
³õʼ»¯Êý¾Ý¶Î/Êý¾Ý¶Î(initialized data segment/data segment):¸Ã¶Î°üº¬ÁËÔÚ³ÌÐòÖÐÃ÷È·±»³õʼ»¯µÄ±äÁ¿¡£ÀýÈ磬һ¸ö²»ÔÚÈκκ¯ÊýÄÚµÄCÉùÃ÷(C declaration)
int maxcount = 99;
ʹµÃ±äÁ¿maxcount¸ù¾ÝÆä³õʼֵ±»´æ´¢µ½³õʼ»¯Êý¾Ý¶Î¡£
δ³õʼ»¯Êý¾Ý¶Î/bss¶Î(uninitialized data segment/"bss" segment):bssÕâ¸ö½Ð·¨ÊǸù¾ÝÒ»¸öÔçÆÚµÄ»ã±àÔËËã·û¶øÀ´£¬Õâ¸ö»ã±àÔËËã·û±êÖ¾×ÅÒ»¸ö¿éµÄ¿ªÊ¼(stood for "block started by symbol")¡£ÔÚ³ÌÐò¿ªÊ¼Ö´ÐÐ֮ǰ£¬bss¶ÎµÄÊý¾Ý±»kernel³õʼ»¯Îª0»òÕß¿ÕÖ¸Õë(null pointers)¡£Ò»¸ö²»ÔÚÈκκ¯ÊýÄÚµÄCÉùÃ÷
long sum[1000];
ʹµÃ±äÁ¿sum±»´æ´¢µ½Î´³õʼ»¯Êý¾Ý¶Î/bss¶ÎÖС£
Õ»¶Î(stack)£ºwhere automatic variables are stored, along with information that is saved each time a function is called. ÿ´Îµ±Ò»¸öº¯Êý±»µ÷Ó㬸ú¯ÊýµÄ·µ»ØµØÖ·ºÍһЩ¹ØÓÚcallerµÄÐÅÏ¢£¬±ÈÈçijЩ¼Ä´æÆ÷µÄÄÚÈÝ£¬½«±»Ê×ÏÈ´æ´¢µ½Õ»¶Î¡£È»ºóÕâ¸ö±»µ÷Óõĺ¯Êý(caller)ÔÙΪËüµÄ×Ô¶¯±äÁ¿ºÍÁÙʱ±äÁ¿(automatic and temporary variables)ÔÚÕ»¶ÎÉÏ·ÖÅä¿Õ¼ä¡£Õâ¾ÍÊÇCÈçºÎʵÏÖº¯ÊýµÄµÝ¹éµ÷Óá£Ã¿´ÎÒ»¸öµÝ¹éº¯Êýµ÷ÓÃÆä±¾Éí£¬Ò»¸öеÄÕ»¿ò¼Ü(stack frame)¾Í»á±»Ê¹Óã¬ÕâÑùÕâ¸öÐÂʵÀýÕ»ÀïµÄÒ»×é±äÁ¿¾Í²»»áºÍ¸Ãº¯ÊýµÄÁíÒ»¸öʵÀýÕ»ÀïÃæµÄ±äÁ¿»¥Ïà¸ÉÈÅ¡£
¶Ñ¶Î(heap)£ºÓÃÓÚ¶¯Ì¬ÄÚ´æ·ÖÅä(dynamic memory allocation)¡£Ò»Ö±ÒÔÀ´£¬¶ÑÔÚÄÚ´æÖеÄλÖÃÊǽéÓÚbss¶ÎºÍÕ»¶ÎÖ®¼ä¡£
ͼ7.6ÏÔʾÁËÕâ5¸ö¶ÎÔÚÄÚ´æÖеĵäÐÍÅÅÁС£ÕâÊÇÒ»ÕÅÂ߼ͼ£¬±íʾÁËÒ»¸ö³ÌÐòÔÚÄÚ´æÖп´ÆðÀ´ÊÇÔõôÑùµÄ¡£¶ÔÓÚÒ»¸ö¸ø¶¨µÄʵÏÖ£¬Ã»ÓÐÇ¿ÖÆµÄÒªÇó˵±ØÐë°´ÕÕÕâÖÖ·½Ê½À´ÅÅÁÐÕâ5¸ö¶Î¡£È»¶ø£¬Õâ¸øÁËÎÒÃÇÒ»ÖÖµäÐ͵ıãÓÚÃèÊöµÄÅÅÁз½Ê½¡£ÔËÐÐÔÚIntel x86´¦ÀíÆ÷ÉϵÄlinux£¬´úÂë¶Î(text segment)´ÓµØÖ·0x08048000¿ªÊ¼(ÍùÉÏ)£¬Õ»µ×´ÓµØÖ·0xC0000000ÍùÏ£¨ÔÚÕâ¸öÌØ¶¨µÄ±íʾ½á¹¹ÖУ¬Õ»¶Î´Ó¸ßµØÖ·Ïòµ
Ïà¹ØÎĵµ£º
˵Ã÷: ÔÚ±àÒëÏò¸ÃÇëÇóÌṩ·þÎñËùÐè×ÊÔ´µÄ¹ý³ÌÖгöÏÖ´íÎó¡£Çë¼ì²éÏÂÁÐÌØ¶¨´íÎóÏêϸÐÅÏ¢²¢Êʵ±µØÐÞ¸ÄÔ´´úÂë¡£
±àÒëÆ÷´íÎóÐÅÏ¢: CS0016: δÄÜдÈëÊä³öÎļþ“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\5bad199f\ab65559a\App_Web_index.aspx.cdcab7d2.anxmasko.dll”--“ ......
×î½üÔÚ×ösamsung
s3c2416
ÔÚlinuxϵÄspiÇý¶¯³ÌÐò£¬²âÊÔÁËÏÂsamsung·¢²¼µÄspiµÄÄÚºËÔ´´úÂ룬ÎÞÂÛÊDzÉÓÃdma»òÕß·Çdmaģʽ¶¼ÎÞ·¨¹¤×÷¡£ÔĶÁ¸ÃÇý¶¯´úÂ룬·¢ÏÖ
ÕâÂëÓ¦¸ÃÊÇÒ»¸öδÍê³ÉµÄ°æ±¾£¬´æÔںܶàµÄbug¡£ÓÚÊÇÔÚÕâ¸ö°æ±¾µÄ»ù´¡ÉϽøÐÐÐ޸ģ¬ÖØÐ´Ò»¸ö¿ÉÓõġ¢Ö§³Öȫ˫¹¤µÄͨѶ ......
Python
µÄ
C/C++
À©Õ¹
By phidoit@gmail.com
¿ÉÀ©Õ¹ÐÔÊÇ
Python
µÄÒ»´óÌØÉ«£¬Ò»·½Ã棬ÓÉÓÚ
Python
ÊǽâÊÍÖ´Ðеģ¬Õâµ¼ÖÂÔËÐÐËÙ ......
¶ÔÓÚxenµÄÐéÄ⻯¹ÜÀí£¬´ó¼Ò¶¼ÔÚÓÃÊ²Ã´ÄØ£¿ÎÒÕæµÄÏëÖªµÀÊDz»ÊÇ´ó¼Ò¶¼ÓÃxmÀ´½øÐйÜÀíÄØ£¿ÖÁÉÙÎÒÏë´ó¶àÊý½ö½öÏëÁ˽âһϵÄÅóÓÑ¿ÉÄÜÓÃÏÂxmÒ²¾ÍËãÊÇÁ˽âÁË¡£¶øÇÒÔÚxenµÄÓû§ÊÖ²áÀïÃæÒ²½ö½ö½éÉÜÁËÒ»ÏÂxmµÄʹÓ÷½·¨£¬¹ØÓÚÔõôʹÓÃËüµÄc½Ó¿ÚÀ´¹ÜÀíÐéÄ⻯·½ÃæµÄ½éÉÜÖ»×ÖδÌá¡£
ÎÒ²»½ö½öÏëÓÃxmÕâ¸ö¹¤¾ßÀ´´ ......