5.6. sched_init()

init ŽºÅ©°¡ »ç¿ëÇÏ´Â CPU ¹ø·Î¸¦ ÇÒ´çÇØ ÁÖ°í pid hash tableÀ» ÃʱâÈ­ ÇÑ´Ù. À̾î ŸÀÌ¸Ó ÀÎÅÍ·´Æ® º¤Å͸¦ ÃʱâÈ­ ÇÑ´Ù.

ÀÎÅÍ·´Æ® ó¸® ·çƾÀº µÇµµ·ÏÀÌ¸é °£°áÇÏ°í »¡¶ó¾ßÇÒ Çʿ䰡 ÀÖ´Ù. ÇÁ·Î±×·¥ÀÌ ½ÇÇà Áß¿¡ ÀÎÅÍ·´Æ®°¡ °É¸®¸é ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» ¸ØÃß°í ÀÎÅÍ·´Æ®¸¦ ó¸®ÇϹǷΠÀÎÅÍ·´Æ® ó¸® ½Ã°£ÀÌ ¸¹ÀÌ °É¸°´Ù¸é ´Ù¸¥ ÇÁ·Î±×·¥ÀÇ ½ÇÇà¿¡ ¿µÇâÀ» ¹ÌÄ¡°ÔµÈ´Ù. ¸®´ª½º¿¡¼± ±ä ó¸® ½Ã°£À» ÇÊ¿ä·Î ÇÏ´Â ÀÎÅÍ·´Æ® ·çƾ ÀÇ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ÀÎÅÍ·´Æ® ·çƾÀ» µÑ·Î ³ª´² ÀÌ ¹®Á¦¸¦ ÇØ°áÇÑ´Ù.

ÀÌ µÑÀ» top-half, bottom-half¶ó°í ºÎ¸¥´Ù. top-half´Â request_irq·Î µî·ÏµÇ´Â ºÎºÐÀ̰í bottom-half(ÁÙ¿©¼­ bh)´Â ³ªÁß¿¡ ½Ã°£ÀÌ ÃæºÐÇÒ ¶§ ½ÇÇàµÇµµ·Ï top-half¿¡ ÀÇÇØ ½ºÄÉÁì µÈ´Ù.

top-half¿Í bhÀÇ Â÷À̶ó¸é bh°¡ ½ÇÇàµÇ´Â µ¿¾È¿£ ´Ù¸¥ ¸ðµç ÀÎÅÍ·´Æ®°¡ °¡´É »óÅÂÀÎ °ÍÀÌ´Ù. Áï top-half´Â ÀÎÅÍ·´Æ®°¡ °É¸®¸é óÀ½ ½ÇÇàµÇ°í µð¹ÙÀ̽ºÀÇ µ¥ÀÌÅ͸¦ ƯÁ¤ ¹öÆÛ¿¡ ÀúÀåÇØ ³õ°í ÀÚ½ÅÀÇ bh¿¡ Ç¥½Ã¸¦ ÇÑ´ÙÀ½ ºüÁ®³ª°£´Ù. ÀÌ·¸°Ô Çϸé top-half´Â ¸Å¿ì ºü¸£°Ô ½ÇÇàµÇ±â ¶§¹®¿¡ ´Ù¸¥ °Í¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê°Ô µÈ´Ù.

±×·¯³ª ¸¸¾à top-half°¡ µ¿ÀÛÇÏ´Â Áß¿¡ ´Ù¸¥ ÀÎÅÍ·´Æ®°¡ °É¸®¸é ÀÌ °ÍÀº ¹«½ÃµÈ´Ù. ¿Ö³Ä¸é top-half°¡ ½ÇÇàµÇ´Â µ¿¾È¿£ ÀÎÅÍ·´Æ® ÄÁÆ®·Ñ·¯ÀÇ IRQ ¶óÀÎÀÌ ºÒ°¡´É »óÅÂÀ̱⠶§¹®ÀÌ´Ù.

°¡Àå ´ëÇ¥ÀûÀÎ ÀÎÅÍ·´Æ® ·çƾÀÎ ³×Æ®¿öÅ© ÀÎÅÍ·´Æ® ·çƾÀº »õ·Î¿î ÆÐŶÀÌ µµÂøÇϸé Çڵ鷯°¡ µµÂøÇÑ µ¥ÀÌÅ͸¸À» Àоî ÇÁ·ÎÅäÄÝ ·¹À̾ Àü´ÞÇÏ°í ½ÇÁ¦ÀÇ Ã³¸®´Â ³ªÁß¿¡ bh¿¡ ÀÇÇØ ³ªÁß¿¡ ½ÇÇàµÈ´Ù.

½ºÄÉÁì·¯ÀÇ ÃʱâÈ­¿¡¼± °¡Àå ±Ùº»ÀûÀÎ 3°³ÀÇ bh¸¦ ÃʱâÈ­ÇÑ´Ù. TIMER_BH, TQUEUE_BH, IMMEDIATE_BHÀÇ 3°³ÀÌ´Ù.