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