· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Docbook Sgml/Kernel Analysis-HOWTO

Kernel Analysis-HOWTO

Kernel Analysis-HOWTO

Roberto Arcomano

           
        

±è³²Çü

           
        

고친 과정
고침 0.72003-03-26


1. ¼­¹®


1.1. ¼­¹®

ÀÌ ¹®¼­¿¡¼­´Â ¸®´ª½º Ä¿³ÎÀ» ±¸¼ºÇÏ´Â °¢ ºÎºÐÀ» Á¤ÀÇÇÏ°í ±× ºÎºÐÀ» ¼öÇàÇÏ´Â ÁÖµÈ ÇÔ¼ö¿Í ÀÚ·á ±¸Á¶, ±×¸®°í À̵éÀÌ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö (how the "wheel spins") ¸¦ ¼³¸íÇÏ·Á°í ÇÑ´Ù. ÀÌ ¹®¼­ÀÇ ÃֽŠ¹öÀüÀº http://www.bertolinux.com ¿¡¼­ ã¾Æº¼ ¼ö ÀÖ´Ù. ÀÌ ¹®¼­¿¡ ´ëÇÑ °³¼±Á¡À̳ª Á¦¾È »çÇ×ÀÌ ÀÖ´Ù¸é ´ç½ÅÀÇ ¾ÆÀ̵ð¾î¸¦ ´ÙÀ½ÀÇ ¸ÞÀÏ ÁÖ¼Ò¸¦ ÅëÇØ º¸³»Áֱ⠹ٶõ´Ù: . ÀÌ ¹®¼­¿¡ »ç¿ëµÈ ÄÚµåµéÀº ÀÌ HOWTO ¹®¼­°¡ ¾²¿©Áö°í ÀÖ´Â ½ÃÁ¡¿¡¼­ ÃֽŠ¾ÈÁ¤ ¹öÀüÀÎ ¸®´ª½º Ä¿³Î ¹öÀü 2.4.x ¸¦ ÂüÁ¶ÇÏ¿´´Ù.


1.2. ÀúÀÛ±Ç Á¤º¸

Copyright (C) 2000,2001,2002 Roberto Arcomano. Copyright (C) 2003 ±è³²Çü (Çѱ¹¾îÆÇ). º» ¹®¼­´Â ¿©·¯ºÐÀÌ ÀÚÀ¯ ¼ÒÇÁÆ®¿þ¾î Àç´Ü(Free Software Foundation)¿¡¼­ ¹ßÇàÇÑ GNU ¶óÀ̺귯¸® ÀÏ¹Ý °ø°³ »ç¿ë±Ç(GNU Library General Public License)ÀÇ ±ÔÁ¤(Áï »ç¿ë±Ç 2ÆÇÀ̳ª ȤÀº ¿©·¯ºÐÀÇ ¼±Åÿ¡ µû¶ó ´õ ÀÌÈÄÀÇ »ç¿ë±Ç)À» ÁؼöÇÏ´Â ÇÑ ÀçÀ¯Æ÷Çϰųª ¼öÁ¤ÇÒ ¼ö ÀÖ´Â ÀÚÀ¯ ¹®¼­ÀÌ´Ù. º» ¹®¼­´Â ÀÌ°ÍÀÌ À¯¿ëÇÏ°Ô »ç¿ëµÇ±â¸¦ ¹Ù¶ó´Â ¸¶À½À¸·Î ¹èÆ÷ÇÏ´Â °ÍÀÌÁö¸¸, ±×¿¡ ´ëÇÑ ¾î¶°ÇÑ º¸Áõµµ ÇÏÁö ¾Ê´Â´Ù: »ó¾÷ÀûÀÎ ¿ëµµ³ª ƯÁ¤ÇÑ ¸ñÀû¿¡ ¸Â°Ô »ç¿ë ÇßÀ»¶§ Àǹ«ÀûÀ¸·Î µû¶ó ºÙ´Â º¸Áõµµ ¾ø´Ù. ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº GNU ¶óÀ̺귯¸® ÀÏ¹Ý ´ëÁß »ç¿ë±Ç (GPL) ¿¡ ´ëÇØ º¸±â ¹Ù¶õ´Ù. GNU GPL ÀÇ º¹»çº»Àº ¿©±â ¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù.


1.3. ¹ø¿ª¿¡ °üÇÏ¿©

´ç½ÅÀÌ ÀÌ ¹®¼­¸¦ ¹ø¿ªÇÏ´Â °ÍÀº ÀÚÀ¯ÀÌ´Ù. ÇÏÁö¸¸ ±×Àü¿¡ ´ÙÀ½°ú °°Àº »çÇ×µéÀ» Âü°íÇØ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù:

  1. ´ç½ÅÀÌ ¹ø¿ªÇؼ­ ¿Ã¸®°íÀÚ ÇÏ´Â LDP ¿¡ ÀÌ¹Ì ÀÌ ¹®¼­ÀÇ ¹ø¿ªº»ÀÌ ÀÖ´ÂÁö üũÇÑ´Ù.

  2. ÀýÀ» À¯ÁöÇÑ´Ù. (, , , À» Æ÷ÇÔ)

참고: TXT ÆÄÀÏÀ̳ª HTML ÆÄÀÏÀ» Á÷Á¢ ¹ø¿ªÇؼ­´Â ¾ÈµÇ°í LYX ÆÄÀÏÀ» ¼öÁ¤ÇØ¾ß ÇÑ´Ù. ±×·¡¾ß¸¸ À̸¦ ÀÌ¿ëÇØ ´Ù¸¥ ÆÄÀÏ Çü½Ä (TXT, HTML, RIFF µî) À¸·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù. "LyX" ÇÁ·Î±×·¥À» »ç¿ëÇϱâ À§Çؼ­ http://www.lyx.org ¿¡¼­ ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù.

¹ø¿ªÀ» À§Çؼ­ ³ª¿¡°Ô Áú¹®À» ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ±×Àú ´ç½ÅÀÇ ¹ø¿ª¹°¿¡ °üÇØ (´ç½ÅÀÌ ¿øÇÑ´Ù¸é) ³»°¡ ¾Ë ¼ö ÀÖ°Ô¸¸ ÇØÁÖ¸é µÈ´Ù.

´ç½ÅÀÇ ¹ø¿ª¿¡ °¨»çÇÑ´Ù!


1.4. °¨»çÀÇ ±Û

ÀÌ ¹®¼­¸¦ »¡¸® ¿Ã·ÁÁÖ°í ¹ßÇ¥ÇØ ÁØ The Linux Documentation Project ¿¡ °¨»çÇÑ´Ù.

Klaas de Waal ÀÇ Á¦¾È¿¡ °¨»çÇÑ´Ù.


2. »ç¿ëµÈ ¹®¹ý


2.1. ÇÔ¼öÀÇ ¹®¹ý

ÇÔ¼ö¿¡ ´ëÇؼ­ ¼³¸íÇÒ ¶§´Â ´ÙÀ½°ú °°Àº ÇüÅ·Πǥ±âÇÑ´Ù:

	   "ÇÔ¼ö À̸§ [ ÆÄÀÏ À§Ä¡ . È®ÀåÀÚ ]"
	  

¿¹¸¦ µé¾î:

예 1.

"schedule [ kernel/sched.c ]"

¶ó´Â Ç¥ÇöÀÌ ÀÖÀ» ¶§ ÀÌ°ÍÀº ¿ì¸®°¡ Áö±Ý

예 2.

"schedule"

À̶ó´Â ÇÔ¼ö¿¡ °üÇؼ­ ¼³¸íÇÏ°í ÀÖÀ½À» ³ªÅ¸³»¸ç, ÀÌ ÇÔ¼ö´Â

예 3.

[ kernel/sched.c ]

¶ó´Â ÆÄÀÏ¿¡¼­ ã¾Æº¼ ¼ö ÀÖÀ½À» ¶æÇÑ´Ù.

참고: ¿©±â¼­´Â ½ÃÀÛ µð·ºÅ丮°¡ /usr/src/linux ¶ó°í °¡Á¤ÇÏ°í ÀÖ´Â °ÍÀÌ´Ù.


2.2. µé¿©¾²±â

¼Ò½º ÄÚµå ¾È¿¡¼­ÀÇ µé¿©¾²±â¿¡´Â 3°³ÀÇ °ø¹é¹®ÀÚ°¡ »ç¿ëµÇ¾ú´Ù.


2.3. ÇÔ¼ö°£ È£Ã⠺м® (InterCalling Analysis)


2.3.1. °³¿ä

ÀÌ ¹®¼­¿¡¼­´Â Ä¿³Î ÇÔ¼öµéÀÇ È£Ãâ °ü°è¸¦ Ç¥ÇöÇϱâ À§ÇØ (µé¿©¾²±âÀÇ ¹æ½ÄÀ¸·Î) "ÇÔ¼ö°£ È£Ã⠺м® (InterCalling Analysis : ICA)" À» »ç¿ëÇÑ´Ù.

¿¹¸¦ µé¾î sleep_on À̶ó´Â ÇÔ¼ö¸¦ ÇÔ¼ö°£ È£Ã⠺м®À» ÅëÇØ Ç¥ÇöÇÏ¸é ¾Æ·¡¿Í °°´Ù:

		  
|sleep_on
|init_waitqueue_entry      --
|__add_wait_queue            |   enqueuing request  
   |list_add                 |
      |__list_add          -- 
   |schedule              ---     waiting for request to be executed
      |__remove_wait_queue --   
      |list_del              |   dequeuing request
         |__list_del       -- 
 
                          sleep_on ICA
        

µé¿©¾²±â·Î Ç¥ÇöµÈ ÇÔ¼ö°£ È£Ã⠺м® µÚ¿¡´Â ÇÔ¼öÀÇ À§Ä¡°¡ ³ª¿Â´Ù:

  • sleep_on [kernel/sched.c]

  • init_waitqueue_entry [include/linux/wait.h]

  • __add_wait_queue

  • list_add [include/linux/list.h]

  • __list_add

  • schedule [kernel/sched.c]

  • __remove_wait_queue [include/linux/wait.h]

  • list_del [include/linux/list.h]

  • __list_del

참고: ÇÔ¼öÀÇ À§Ä¡°¡ ¹Ù·Î ¾Õ¿¡ Ç¥½ÃÇÑ ÇÔ¼öÀÇ À§Ä¡¿Í °°Àº °æ¿ì¿¡´Â ¸í½ÃÇÏÁö ¾Ê¾Ò´Ù.


2.3.2. ¼¼ºÎ»çÇ×

ÇÔ¼ö°£ È£Ã⠺м®¿¡¼­ ´ÙÀ½°ú °°Àº ÇüÅ°¡ ÀÖÀ» °ÍÀÌ´Ù:

function1 -> function2
		

ÀÌ°ÍÀº function1 Àº ´Ù¸¥ ÇÔ¼ö¸¦ °¡¸®Å°´Â ÀϹÝÀûÀÎ Æ÷ÀÎÅͶó´Â °ÍÀ» ¶æÇÑ´Ù. À§ÀÇ °æ¿ì¿¡¼­ function1 Àº function2 ¸¦ °¡¸®Å²´Ù.

¶Ç ´ÙÀ½°ú °°Àº ÇüÅ¿¡¼­´Â:

function:
		

function Àº ÇÔ¼ö°¡ ¾Æ´ÔÀ» ¶æÇÑ´Ù. ÀÌ°ÍÀº ·¹À̺íÀÌ´Ù (ÀϹÝÀûÀ¸·Î ¾î¼Àºí·¯ ·¹À̺íÀÏ °ÍÀÌ´Ù).

ÀÌ ¹®¼­¿¡¼­´Â ¸¹Àº Àý¿¡¼­ C ÄÚµåÀÇ Çüųª ½´µµ-ÄÚµå ÀÇ ÇüÅ·ΠǥÇöÇÏ¿´´Ù. ½ÇÁ¦ÀÇ ¼Ò½º ÆÄÀÏ¿¡´Â À̰͵éÀÌ ¾î¼Àºí·¯ Äڵ峪 ±¸Á¶È­ µÇÁö ¾ÊÀº ÄÚµåÀÇ ÇüÅ·Πµé¾îÀÖÀ» ¼öµµ ÀÖ´Ù. ÀÌ·¯ÇÑ Â÷ÀÌÁ¡Àº ÇнÀÀ» À§ÇÑ °ÍÀÌ´Ù.


2.3.3. ÇÔ¼ö°£ È£Ã⠺м®ÀÇ ÀåÁ¡

ÇÔ¼ö°£ È£Ã⠺м® (ICA) ¸¦ »ç¿ëÇϴµ¥ À־ ´ÙÀ½°ú °°Àº ¸¹Àº ÀåÁ¡µéÀÌ ÀÖ´Ù:

  • Ä¿³Î ÇÔ¼ö¸¦ È£ÃâÇÏ¿´À» ¶§ ¾î¶² ÀÏÀÌ ÀϾ´Â °¡¸¦ ÀüüÀûÀ¸·Î ¾Ë ¼ö ÀÖ´Ù.

  • ÇÔ¼öÀÇ µÚ¿¡ ÇÔ¼öÀÇ À§Ä¡°¡ ³ª¿À¹Ç·Î, ÇÔ¼ö°£ È£Ã⠺м®À» ÇϳªÀÇ ÇÔ¼öÀÇ ·¹ÆÛ·±½º ·Îµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

  • ÇÔ¼ö°£ È£Ã⠺м®Àº sleep/awake ¸ÞÄ«´ÏÁò¿¡¼­ À¯¿ëÇÏ´Ù. À̸¦ ÀÌ¿ëÇØ ÇÁ·Î¼¼½º°¡ sleep µÇ±â Àü¿¡ ¾î¶² ÀÏÀ» ÇÏ´ÂÁö¿Í (½ºÄÉÁÙ ÀÌÈÄ¿¡) wake up ÀÌÈÄ¿¡ ¹«½¼ ÀÏÀ» ÇÒ °ÍÀÎÁö¸¦ º¼ ¼ö ÀÖ´Ù.


2.3.4. ÇÔ¼ö°£ È£Ã⠺м®ÀÇ ´ÜÁ¡

ÇÔ¼ö°£ È£Ã⠺м® (ICA) ¸¦ »ç¿ëÇϴµ¥ À־ ´ÙÀ½°ú °°Àº ´ÜÁ¡µéÀÌ ÀÖ´Ù:

  • ¸ðµç ÀÌ·ÐÀûÀÎ ¸ðµ¨¿¡ À־, ½ÇÁ¦ ¼Ò½ºÄÚµå¿Í ƯÁ¤ÇÑ Á¶°Çµé°ú °°Àº ÀÚ¼¼ÇÑ »çÇ×µéÀ» Á¦¿ÜÇÏ°í ´Ü¼øÈ­ ½ÃÄ×´Ù.

  • ½ºÅÃÀÇ »óÅÂ, µ¥ÀÌŸÀÇ °ª µîÀ» Ç¥ÇöÇϱâ À§Çؼ­´Â Ãß°¡ÀûÀΠǥÇöÀÌ Ãß°¡µÇ¾î¾ß ÇÑ´Ù.


3. ±âÃÊÀûÀÎ ³»¿ë


3.1. Ä¿³ÎÀ̶õ ¹«¾ùÀΰ¡?

Ä¿³ÎÀ̶õ ÄÄÇ»ÅÍ ½Ã½ºÅÛÀÇ ÇÙ½É(core) ºÎºÐÀ» ¸»ÇÑ´Ù. Áï, ÄÄÇ»ÅÍÀÇ ÀÚ¿øµéÀ» »ç¿ëÀÚ°¡ °øÀ¯ÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â ¼ÒÇÁÆ®¿þ¾î ÀÌ´Ù.

Ä¿³ÎÀº (±×·¡ÇÈÀ» ÀÌ¿ëÇÑ °ü¸® ÇÁ·Î±×·¥µµ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â) ¿î¿µÃ¼Á¦ÀÇ ÁÖ¿ä ¼ÒÇÁÆ®¿þ¾î¶ó°í »ý°¢ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

¿¹¸¦ µé¾î, (´Ù¸¥ Unix ±â¹ÝÀÇ ¿î¿µÃ¼Á¦¿Í °°ÀÌ) ¸®´ª½º¿¡¼­´Â X À©µµ¿ì ȯ°æÀº Ä¿³Î¿¡ ¼ÓÇØÀÖÁö ¾Ê´Ù. ¿Ö³ÄÇϸé X À©µµ¿ì ȯ°æÀº ¿ÀÁ÷ ±×·¡ÇÈ ¿¬»ê ¸¸À» °ü¸®Çϱ⠶§¹®ÀÌ´Ù. (ºñµð¿À Ä«µå ÀåÄ¡¿¡ Á¢±ÙÇϱâ À§Çؼ­ »ç¿ëÀÚ ¸ðµåÀÇ I/O ¸¦ »ç¿ëÇÑ´Ù.)

´ëÁ¶ÀûÀ¸·Î À©µµ¿ìÁî ȯ°æ (Win9x, WinME, WinNT, Win2K, WinXP µî) ¿¡¼­´Â Ä¿³Î°ú ±×·¡ÇÈ È¯°æÀÌ È¥ÇյǾî ÀÖ´Ù.


3.2. »ç¿ëÀÚ ¸ðµå¿Í Ä¿³Î ¸ðµå


3.2.1. °³¿ä

(ÄÄÇ»ÅÍ°¡ ¹æ ÇÑ°³¸¦ Â÷ÁöÇÒ ¸¸Å­ÀÇ Å©±â¿´´ø) ¿¹Àü¿¡´Â »ç¿ëÀÚµéÀÌ ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°´Â °Íµµ ¹«Ã´ Èûµç ÀÏÀ̾ú°í, ¶§¶§·Î ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÄÄÇ»Å͸¦ ¸Á°¡¶ß¸®±âµµ ÇÏ¿´´Ù.


3.2.2. µ¿ÀÛ ¸ðµå

À§¿Í °°ÀÌ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ½Ã½ºÅÛÀ» ¸Á°¡¶ß¸®´Â °ÍÀ» ¹æÁöÇϱâ À§ÇØ, ÀÌÈÄÀÇ ¿î¿µÃ¼Á¦µéÀº 2 °¡ÁöÀÇ ´Ù¸¥ µ¿ÀÛ ¸ðµå¸¦ °®µµ·Ï µðÀÚÀεǾú´Ù.

  1. Ä¿³Î ¸ðµå: Áß¿äÇÑ ÀڷᱸÁ¶³ª Á÷Á¢ÀûÀÎ Çϵå¿þ¾î Á¢±Ù (I/O ȤÀº memory mapped), Á÷Á¢ÀûÀÎ ¸Þ¸ð¸® Á¢±Ù, IRQ, DMA µîÀÇ Ã³¸®

  2. »ç¿ëÀÚ ¸ðµå: »ç¿ëÀÚ°¡ ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼ö ÀÖÀ½


ID
Password
Join
Like winter snow on summer lawn, time past is time gone.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2012-12-30 05:26:46
Processing time 0.0028 sec