1993.1.3
SUBJECT: UNIXÀÇ Kernel
DESCRIPTION:
0. KernelÀ̶õ ?
* UNIX ½Ã½ºÅÛ Áß Ç×»ó ÁÖ±â¾ï ÀåÄ¡(Main Memory)¿¡ »óÁÖÇÏ´Â UNIXÀÇ ÇÙ½ÉÀÌ´Ù.
* KernelÀº ÄÄÇ»ÅÍ ÀÛµ¿¿¡ °üÇÑÇÑ ¸ðµç °ÍÀ» °ü¸®Çϴ Ưº°ÇÑ ÇÁ·Î±×·¥ÀÌ´Ù.
KernelÀº ½ÇÇàµÇ´Â ¸ðµç utility¸¦ Á¶È½ÃÄÑ ¼·Î¸¦ ¹æÇØÇÏÁö ¸øÇϵµ·Ï Çϸç,
½Ã½ºÅÛÀÇ ¸ðµç resource(process, file, I/O device ....)¸¦ °ü¸®ÇÑ´Ù.
* UNIXÀÇ KernelÀº ´Ù¸¥ ¿î¿µÃ¼Á¦¿¡ ºñÇØ¼ ºñ±³Àû ÀûÀº ¼ºñ½º¸¦ Á¦°øÇÑ´Ù.
* Kernel ÀÚü´Â Á÷Á¢ »ç¿ëÀÚ¿Í Á¢ÇÏ´Â ÀÏÀÌ ¾ø°í
¸ðµç ÀÏÀº Kernel°ú »ç¿ëÀÚ »çÀÌ¿¡ Á¸ÀçÇÏ´Â utility program(ÁÖ·Î shell)µéÀ» ÅëÇØ¼
ÀÌ·ç¾î Áø´Ù.
* Ãʱâ UNIX KernelÀº ¾à 10,000ÁÙÀÇ C¾ð¾î¿Í 1,000ÁÙÀÇ ¾î¼Àºí¸®¾î·Î µÇ¾î ÀÖ´Ù.
1. Kernel¿¡ ÀÇÇØ Á¦°øµÇ´Â ¼ºñ½º
1) ProcessÀÇ ½ÇÇà¿¡ ´ëÇÑ Á¦¾î:
ProcessÀÇ »ý¼º/Á¾·á/ÁßÁö/Åë½Å µî, ProcessÀÇ ½ÇÇà¿¡ ´ëÇÑ °ü¸®
2) CPU¿¡ ÀÇÇÑ ½ÇÇàÀ» À§ÇØ ProcessµéÀ» °øÆòÇÏ°Ô scheduleÇÏ´Â ±â´É:
ProcessµéÀº ½ÃºÐÇÒ ±â¹ý¿¡ ÀÇÇØ CPU¸¦ °øÀ¯ÇÏ°Ô µÈ´Ù.
Áï CPU°¡ ÇÑ Process¸¦ ½ÇÇàÇÒ ¶§ KernelÀº ÁÖ¾îÁø ½Ã°£ ÇÒ´ç·®ÀÌ Áö³ª¸é
±× Process¸¦ ÁߴܽÃŰ°í ´Ù¸¥ Process¸¦ scheduleÇÏ¿© ½ÇÇàÇÑ´Ù.
KernelÀº ÈÄ¿¡ Áß´ÜµÈ Process¸¦ ´Ù½Ã scheduleÇÑ´Ù.
3) ½ÇÇà Process·ê À§ÇÑ ÁÖ±â¾ï ÀåÄ¡ÀÇ ÇÒ´ç:
KernelÀº ProcessµéÀÌ ±×µéÀÇ ÁÖ¼Ò °ø°£ ÀϺθ¦ ÁÖ¾îÁø Á¶°ÇÇÏ¿¡ ¼·Î °øÀ¯ÇÒ ¼ö ÀÖ°Ô ÇÏÁö¸¸,
°¢ ProcessÀÇ »çÀ¯ ÁÖ¼Ò °ø°£À» ¿ÜºÎ °£¼·À¸·ÎºÎÅÍ º¸È£ÇØ ÁØ´Ù.
¸¸¾à ½Ã½ºÅÛÀÌ ÀÚÀ¯ ¸Þ¸ð¸® ¿µ¿ªÀÌ ¸ðÀÚ¶ó¸é, KernelÀº Process¸¦ Àӽ÷ΠswapÀåÄ¡¶ó ºÒ¸®´Â
º¸Á¶ ±â¾ï ÀåÄ¡¿¡ ±â·ÏÇÔÀ¸·Î½á ¸Þ¸ð¸®¸¦ ¿©À¯ÀÖ°Ô ¸¸µç´Ù.
¸¸¾à KernelÀÌ 'ÇÑ Process Àüü'¸¦ swap ÀåÄ¡¿¡ ±â·ÏÇÑ´Ù¸é
±× UNIX ½Ã½ºÅÛÀÇ ±¸ÇöÀº "swapping sytem"ÀÌ µÇ´Â °ÍÀ̰í,
¸¸ÀÏ '¸Þ¸ð¸®ÀÇ page'¸¦ swap ÀåÄ¡¿¡ ±â·ÏÇÑ´Ù¸é "paging system"À̶ó ºÒ¸®´Â °ÍÀÌ´Ù.
4) ÈÀÏ ½Ã½ºÅÛ °ü¸®:
»ç¿ëÀÚ µ¥ÀÌŸÀÇ È¿°úÀûÀÎ ÀúÀå°ú °Ë»öÀ» À§ÇÑ º¸Á¶±â¾ï ÀåÄ¡ÀÇ ÇÒ´çÀ» °ü¸®ÇÑ´Ù.
KernelÀº º¸Á¶±â¾ï ÀåÄ¡¸¦ »ç¿ëÀÚ ÈÀÏ¿¡ ÇÒ´çÇϰí, »ç¿ëµÇÁö ¾Ê´Â °ø°£À» ¹Ý³³¹Þ°í
ÈÀÏ ½Ã½ºÅÛÀ» Àß ÀÌÇØµÉ ¼ö ÀÖµµ·Ï ±¸¼ºÇÏ¿© »ç¿ëÀÚ ÈÀÏÀ» ºÒ¹ýÀûÀÎ Á¢±ÙÀ¸·ÎºÎÅÍ º¸È£ÇÑ´Ù.
5) ÁÖº¯ ÀåÄ¡¿¡ ´ëÇÑ ProcessÀÇ Á¢±ÙÀ» °ü¸®:
Å͹̳Î, Å×ÀÌÇÁ µå¶óÀ̺ê, µð½ºÅ© µå¶óÀ̺ê, ³×Æ®¿÷ µð¹ÙÀ̽º µîÀÇ ÁÖº¯ÀåÄ¡¸¦ À§ÇÑ
device driver¶ó´Â moduleÀ» °¡Áö°í ÀÖ¾î À̵é device¸¦ »ç¿ëÇÏ·Á´Â ProcessÀÇ ¿ä±¸¸¦ °ü¸®ÇÑ´Ù.
6) »ç¿ëÀÚ Â÷¿øÀÇ ProcessµéÀÌ ¹Ýµå½Ã Á¦°øÇØ¾ß ÇÏ´Â ¼ºñ½º¸¦ ÇÒ ¼ö ÀÖµµ·Ï Áö¿ø:
¿¹¸¦ µé¾î, KernelÀº shellÀÌ command interpreterÀÇ ¿ªÇÒÀ» ¼öÇàÇÒ ¶§ ÇÊ¿ä·ÎÇÏ´Â ¼ºñ½º¸¦
Á¦°øÇÑ´Ù. keybord ÀÔ·ÂÀ» Àд ±â´É, ProcessÀÇ µ¿Àû »ý¼º, Process½ÇÇàÀÇ µ¿±âÈ,
ÆÄÀÌÇÁÀÇ »ý¼º, ÀÔÃâ·Â ÀçÁöÁ¤ µîÀÇ ±â´ÉÀ» ÀǹÌÇÑ´Ù.
7) System CallÀÇ Á¦°ø:
»ç¿ëÀÚ ÇÁ·Î±×·¥À̳ª ¶óÀ̺귯¸®¿¡ ÀÇÇØ building-blockÀ¸·Î »ç¿ëµÇ´Â
system callÀ» Á¦°øÇÑ´Ù.
8) InterrutÀÇ Ã³¸®
Revision History
Created on Jan. 3 ,1993