¸®´ª½º Ä¿³Î °øºÎÇϱâ
by flyduck 2001/10/19
¸¹Àº ºÐµéÀÌ Ä¿³Î °øºÎÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¹¯½À´Ï´Ù.
±×·¯³ª ¸ðµç °øºÎ°¡ ±×·¯ÇÏµí ½±°í ºü¸¥ ¹æ¹ýÀº ¾ø½À´Ï´Ù.
´õ±¸³ª ¸®´ª½º Ä¿³ÎÀ̶ó´Â º¹ÀâÇÑ µ¢¾î¸®¸¦ ÀÌÇØÇÏ·Á¸é ¸¹Àº Áö½Ä°ú °æÇèÀÌ ÇÊ¿äÇÏÁÒ.
±×Àú ¿À·£ ½Ã°£µ¿¾È ¿©·¯ ÀڷḦ Àаí, ¼Ò½º¸¦ ºÐ¼®Çϰí, ¸Ó¸®¼Ó¿¡ ü°èȽÃŰ´Â °úÁ¤À» °Þ¾î¾ß ÇÕ´Ï´Ù.
¸¶À½À» ±ÞÇÏ°Ô ¸ÔÁö ¸»°í Àç¹Õ°Ô °øºÎ¸¦ ½ÃÀÛÇØº¸½Ã±â ¹Ù¶ø´Ï´Ù.
¸ñÂ÷
°øºÎ¸¦ ½ÃÀÛÇϱâ Àü¿¡ ¸ÕÀú ÀÚ½ÅÀÌ °ü½ÉÀÌ ÀÖ´Â ºÎºÐÀÌ ¾îµðÀ̰í, ¹«¾ùÀ» ¾Ë°í ½ÍÀ¸¸ç, ¹«¾ùÀ» °øºÎÇÏÁö¸¦ Á¤ÇØ¾ß ÇÕ´Ï´Ù.
ÀüüÀûÀ¸·Î µ¿ÀÛÇÏ´Â ¹æ¹ýÀ» ¾Ë°í ½ÍÀ» »ÓÀ̶ó¸é Çϵå¿þ¾îÀûÀÎ ³»¿ëÀ» º¼ Çʿ䰡 ¾øÀ» °ÍÀ̰í,
ÆÄÀÏ ½Ã½ºÅÛÀÇ ½ÇÁ¦ ±¸Çö¿¡ °ü½ÉÀÌ ¾ø´Ù¸é EXT2 ÆÄÀÏ ½Ã½ºÅÛÀÇ ³»ºÎ ±¸Á¶°°Àº °ÍÀ» º¼ Çʿ䰡 ¾øÀ» °ÍÀÔ´Ï´Ù.
±×¸®°í ÀÚ½ÅÀÌ ´õ °ü½ÉÀÖ´Â ºÐ¾ß¿¡ ÁýÁßÇÏ´Â °ÍÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù.
³×Æ®¿÷ ±¸Á¶¿¡ °ü½ÉÀÌ Àִµ¥, ¸Þ¸ð¸® ±¸Çö Äڵ带 º¼ ÇÊ¿ä´Â ¾øÀ» °ÍÀÔ´Ï´Ù.
´ÙÀ½À¸·Î ÀÚ½ÅÀÌ °¡Áö°í ÀÖ´Â Áö½ÄÀÌ ¾î´ÀÁ¤µµÀÎÁö¸¦ ÆÄ¾ÇÇÏ´Â°Ô ÇÊ¿äÇÕ´Ï´Ù.
¸®´ª½º Ä¿³ÎÀ» °øºÎÇÒ ¶§ ²À ÇÊ¿äÇÑ Áö½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.
- À¯´Ð½º(UNIX) ½Ã½ºÅÛ°ú ¸®´ª½º(LINUX) ½Ã½ºÅÛ¿¡ ´ëÇÑ ÀÌÇØ
- ¿î¿µÃ¼Á¦¿¡ ´ëÇÑ ÀÌÇØ
- C ¾ð¾î¿¡ ´ëÇÑ ±âº»ÀûÀÎ Áö½Ä
- ÀڷᱸÁ¶(Data Structure)
- ¾à°£ÀÇ Çϵå¿þ¾îÀûÀÎ Áö½Ä
¹«¾ùº¸´Ùµµ ¿ì¼± À¯´Ð½º/¸®´ª½º ½Ã½ºÅÛ¿¡ ´ëÇØ¼ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù.
À¯´Ð½º¿¡¼ ÇÁ·Î¼¼½º »çÀÌ¿¡ ºÎ¸ð ÀÚ½ÄÀÇ °ü°è°¡ ÀÖ´Ù´Â »ç½ÇÀ» ¸ð¸£°í¼ ÇÁ·Î¼¼½º »çÀÌÀÇ Ä£Á· °ü°è³ª zombi ÇÁ·Î¼¼½º¸¦ ÀÌÇØÇÒ ¼ö ¾øÀ» °ÍÀÔ´Ï´Ù.
±×¸®°í ¿î¿µÃ¼Á¦°¡ ¹«¾ùÀ» ÇÏ·Á´Â °ÍÀ̸ç, ¿î¿µÃ¼Á¦¿¡¼ Áß¿äÇÑ °ÍÀÌ ¹«¾ùÀÎÁö¸¦ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù.
´ÙÀ½À¸·Î Á÷Á¢ Äڵ带 º¸Áö ¾Ê´Â´Ù°í ÇÏ´õ¶óµµ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀûÀÎ °³³ä°ú ÀڷᱸÁ¶¿¡ ´ëÇÑ ÀÌÇØ´Â ÇʼöÀûÀÔ´Ï´Ù.
´õ±º´Ù³ª Ä¿³ÎÀº º¹ÀâÇÑ ÀڷᱸÁ¶¸¦ À¯Áö °ü¸®ÇϹǷΠÀڷᱸÁ¶¿¡ Àͼ÷ÇØÁ®¾ß ÇϰڽÀ´Ï´Ù.
¸¶Áö¸·À¸·Î Á¶±ÝÀÇ Çϵå¿þ¾îÀûÀÎ Áö½ÄÀÌ ÇÊ¿äÇÕ´Ï´Ù.
´ÙÀ½À¸·Î ¸®´ª½º Ä¿³Î Àü¹Ý¿¡ ´ëÇØ¼ ÆÄ¾ÇÀ» ÇØ¾ß ÇÕ´Ï´Ù.
¸®´ª½º Ä¿³ÎÀ» ±¸¼ºÇϰí ÀÖ´Â ÁÖ¿ä ±¸¼º¿ä¼Òµé°ú °¢°¢ÀÇ ¿ªÇÒ, ±×¸®°í ÀÌÀÇ ÇÙ½ÉÀûÀÎ °³³äµéÀ» ÀÌÇØ¸¦ ÇØ¾ß ÇÒ °ÍÀÔ´Ï´Ù.
¿©±â¼´Â ƯÁ¤ Çϵå¿þ¾î ±¸Çö°ú °ü·ÃµÈ ³»¿ëÀ» »ìÆìº¼ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.
¸®´ª½º Ä¿³ÎÀº Å©°Ô ´ÙÀ½°ú °°Àº ±¸¼º¿ä¼Ò·Î ³ª´©¾î º¼ ¼ö ÀÖ½À´Ï´Ù.
- ¸Þ¸ð¸® °ü¸®(Memory Management)
- ÇÁ·Î¼¼½º °ü¸®(Process Management)
- ÆÄÀϽýºÅÛ(Filesystem)
- ³×Æ®¿÷(Networking)
- I/O ½Ã½ºÅÛ(I/O System) ¶Ç´Â µð¹ÙÀ̽º µå¶óÀ̹ö(Device Driver)
- ÇÁ·Î¼¼½º°£ Åë½Å(Interprocess Communication)
- ÀÎÅÍ·´Æ®(interrupt), ¿¹¿Ü(exception) µîÀÇ Çϵå¿þ¾îÀûÀΠó¸®
- ±âŸ Ä¿³Î ¸ÞÄ¿´ÏÁò
ÀÌ Áß¿¡¼ °¡Àå Áß¿äÇÏ°Ô ÀÌÇØÇØ¾ß ÇÏ´Â °ÍÀº Ä¿³ÎÀÇ °¡Àå ÇÙ½ÉÀÎ ¸Þ¸ð¸® °ü¸®¿Í ÇÁ·Î¼¼½º °ü¸®ÀÔ´Ï´Ù.
ÀÌ ºÎºÐÀÌ Áß¿äÇϱ⵵ Çϰí, ¾î·Æ±âµµ ÇÕ´Ï´Ù.
ÆÄÀϽýºÅÛÀ̳ª ³×Æ®¿÷, µð¹ÙÀ̽º µå¶óÀ̹ö´Â °ü½ÉÀÌ ÀÖ´Â ºÐµé¸¸ º¸¼Åµµ »ó°ü ¾ø½À´Ï´Ù.
±×¸®°í ÇÁ·Î¼¼½º°£ Åë½ÅÀ̳ª ÀÎÅÍ·´Æ® ó¸® µîÀº ±âº»ÀûÀÎ Áö½Ä¸¸ ¾Ë¾ÆµÎ¸é µÇ°Ú½À´Ï´Ù.
°¢°¢ÀÇ ±¸¼º¿ä¼Ò¸¦ °øºÎÇÏ¸é¼ ¾Ë¾Æ¾ß ÇÏ´Â °³³äµéÀ» Á¤¸®Çϸé
- Ä¿³Î ¸ðµå(kernel mode)¿Í »ç¿ëÀÚ ¸ðµå(user mode)ÀÇ ±¸º°
- ÇÁ·Î±×·¡¹Ö ¸ðµ¨ : ¸ð³î¸®Æ½(monolithic) Ä¿³Î ±¸Á¶¿¡ ´ëÇÑ ÀÌÇØ
- °¡»ó ¸Þ¸ð¸®(virtual memory)ÀÇ °³³ä :
- °¡»ó ¸Þ¸ð¸®ÀÇ °³³ä°ú ¸ñÀû
- ¹°¸®ÀûÀÎ ¸Þ¸ð¸®(physical memory)¿Í °¡»ó ¸Þ¸ð¸®(virtual memory)ÀÇ ±¸º°
- ÁÖ¼Ò°ø°£(address space)¿¡ ´ëÇÑ ÀÌÇØ
- ÆäÀÌ¡(paging)ÀÇ °³³ä :
- ÆäÀÌ¡ÀÇ ¸ñÀû°ú ±¸Çö¹æ¹ý
- ¹°¸®ÀûÀÎ ÆäÀÌÁö(page frame)°ú °¡»ó ¸Þ¸ð¸®ÀÇ ÆäÀÌÁöÀÇ ±¸º°
- ÆäÀÌÁö Å×À̺í(page table)¿¡ ´ëÇÑ ÀÌÇØ
- ÇÙ½É ¸Þ¸ð¸® °ü¸® ¸ÞÄ¿´ÏÁò :
- ¸Þ¸ð¸® ¸ÅÇÎ(memory mapping)
- ¿ä±¸ ÆäÀÌ¡(demand paging)
- ¾²±â½Ã º¹»ç(copy on write)
- ½º¿ÍÇÎ(swapping)
- °øÀ¯ ¸Þ¸ð¸®(shared memory)
- Á¢±Ù ±ÇÇÑ(access right)
- ¸Þ¸ð¸® ÇÒ´ç°ú ÇØÁ¦ :
- RAMÀÇ ÆäÀÌÁöµéÀ» °ü¸®ÇÏ´Â ¹æ¹ý
- page ´ÜÀ§ÀÇ ÇÒ´ç°ú ÇØÁ¦ ¹æ¹ý
- ½½·¦ ÇÒ´çÀÚ(slab allocator)¿¡ ´ëÇÑ ÀÌÇØ
- ¸Þ¸ð¸®°¡ ºÎÁ·ÇÒ ¶§ ó¸®ÇÏ´Â ¹æ¹ý
- (Optional) Çϵå¿þ¾î ij½Ã¿¡ ´ëÇÑ ÀÌÇØ
- ÇÁ·Î¼¼½º(process)ÀÇ °³³ä
- ÇÁ·Î¼¼½º »óÅ : °¢°¢ÀÇ »óÅÂ¿Í »óÅ ÀüÀ̵µ(transition diagram)
- ¸ÖƼ ŽºÅ·(multitasking)ÀÇ ±¸Çö :
- ¼±Á¡Çü ¸ÖƼ ŽºÅ·(preemptive multitasking)¿¡ ´ëÇÑ ÀÌÇØ
- ½ºÄÉÁÙ¸µ(scheduling)¿¡ ´ëÇÑ ÀÌÇØ
- ½ºÄÉÁÙ¸µ ¾Ë°í¸®Áò(scheduling algorithm)
- ÄÁÅØ½ºÆ®(context)¿¡ ´ëÇÑ ÀÌÇØ
- ÇÁ·Î¼¼½º Àüȯ(task switch/context swich)
- ÇÁ·Î¼¼½ºÀÇ »ý¼º°ú ¼Ò¸ê :
- fork¸¦ ÅëÇÑ ÇÁ·Î¼¼½º »ý¼º
- exec¸¦ ÅëÇÑ ÇÁ·Î±×·¥ ½ÇÇà
- cloneÀ» ÅëÇÑ ¾²·¹µå(thread) »ý¼º
- exit¸¦ ÅëÇÑ ÇÁ·Î¼¼½º Á¾·á¿Í ¼Ò¸ê
- ÇÁ·Î¼¼½º¿Í °¡»ó ¸Þ¸ð¸®ÀÇ °ü°è
- (Optional) ÇÁ·Î±×·¥ÀÇ ±¸Á¶ : ELF binary¿Í °øÀ¯ ¶óÀ̺귯¸®(shared library)
- °¡»ó ÆÄÀϽýºÅÛ(virtual filesystem; VFS)ÀÇ ±¸¼º :
- VFS ÀÎÅÍÆäÀ̽º
- °³º° ÆÄÀϽýºÅÛÀÇ ÀÎÅÍÆäÀ̽º
- ¹öÆÛ ij½Ã(buffer cache)
- ºí·° µð¹ÙÀ̽º µå¶óÀ̹ö(block device driver)
- °³º° ÆÄÀϽýºÅÛÀ» °ü¸®ÇÏ´Â ¹æ¹ý
- ÆÄÀÏÀÇ Á¾·ù¿Í µð·ºÅ丮¿¡ ´ëÇÑ °³³ä
- inodeÀÇ °³³ä°ú open fileÀÇ °³³ä
- superblockÀÇ °³³ä
- ÆÄÀϽýºÅÛ ¸¶¿îÆ®(mount)
- ¹öÆÛ ij½Ã(buffer cache)ÀÇ °³³ä°ú ¿ªÇÒ, writeback
- ij½Ã : directory cache, inode cache
- Ư¼ö ÆÄÀϽýºÅÛ : /proc ÆÄÀϽýºÅÛ, ÀåÄ¡ ÆÄÀϽýºÅÛ(device filesystem)
- (Optional) EXT2 ÆÄÀϽýºÅÛÀÇ ±¸Á¶
- TCP/IP ³×Æ®¿öÅ·¿¡ ´ëÇÑ °³³ä
- ¸®´ª½º ³×Æ®¿÷ ½Ã½ºÅÛÀÇ ±¸¼º :
- ÆÄÀϽýºÅÛ
- BSD ¼ÒÄÏ ÀÎÅÍÆäÀ̽º(socket interface)
- °³º° ÇÁ·ÎÅäÄÝ °è¿(protocol family)ÀÇ ÀÎÅÍÆäÀ̽º : INET ÀÎÅÍÆäÀ̽º
- ½ÇÁ¦ ÇÁ·ÎÅäÄÝ : TCP, UDP, IP
- Çϵå¿þ¾î ÀåÄ¡ : ethernet, ...
- ¼ÒÄÏ ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º : bind, listen, accept, connect, send, receive
- ¼ÒÄÏ ¹öÆÛ(socket buffer)ÀÇ ¿ªÇÒ
- ÆÐŶÀÇ Àü¼Û°úÁ¤
- µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ¿ªÇÒ
- ÀåÄ¡ÀÇ Á¾·ù, µð¹ÙÀ̽º µå¶óÀ̹ö¿Í ÀåÄ¡ ÆÄÀÏ(device file)°úÀÇ °ü°è
- ÆÄÀϰú µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ¿¬°è
- ½Ã±×³Î(signal)
- ÆÄÀÌÇÁ(pipe)
- ½Ã½ºÅÛ V IPC :
- ½Ã½ºÅÛ V IPC °´Ã¼ : IPC °´Ã¼(object)ÀÇ »ý¼º°ú °ü¸®¿Í ã±â
- ¼¼¸¶Æ÷¾î(semaphore)
- ¸Þ½ÃÁö Å¥(message queue)
- °øÀ¯ ¸Þ¸ð¸®(shared memory)
- ÀÎÅÍ·´Æ®(interrupt) :
- ÀÎÅÍ·´Æ®ÀÇ °³³ä
- ÀÎÅÍ·´Æ® Çڵ鷯ÀÇ °ü¸®
- ÀÎÅÍ·´Æ® ¹ß»ý½Ã ó¸® °úÁ¤
- ¿¹¿Ü(exception/trap) :
- ¿¹¿ÜÀÇ °³³ä
- ¿¹¿Ü ¹ß»ý½Ã ó¸® °úÁ¤
- ½Ã½ºÅÛ ÄÝ(system call) :
- ½Ã½ºÅÛ ÄÝÀÇ °³³ä
- ½Ã½ºÅÛ ÄÝÀÌ ºÒ·ÈÀ» ¶§ ó¸® °úÁ¤
- ŸÀ̸Ó(timer)
- ÀÛ¾÷ ÈÄó¸® ¸ÞÄ¿´ÏÁò : softirq, ¼ÒÀÛ¾÷(tasklet), ÀÛ¾÷Å¥(task queue), ÇϹݺΠÇڵ鷯(bottom half)
- ´ë±âÅ¥(wait queue)
- (Optional) SMP(´ëĪÇü ¸ÖƼ ÇÁ·Î¼¼¼; symmetric multiprocessor)
- SMP ½Ã½ºÅÛÀÇ ÀÌÇØ
- SMP ½Ã½ºÅÛ locking : ÀÎÅÍ·´Æ® ±ÝÁö, spinlock
- SMP ½Ã½ºÅÛ ½ºÄÉÁÙ¸µ
- Ä¿³Î ¶ôÅ·(kernel locking) ¸ÞÄ¿´ÏÁò : ÀÎÅÍ·´Æ® ±ÝÁö, semaphore
ÀÌÁ¦ Ä¿³Î Àü¹ÝÀûÀÎ ºÎºÐ¿¡ ´ëÇØ ÀÌÇØ¸¦ Çß´Ù¸é Á÷Á¢ Ä¿³Î ÄÚµå·Î º¸°í, º¸´Ù °ü½ÉÀÖ´Â ºÎºÐÀ» »ìÆìº¼ Â÷·ÊÀÔ´Ï´Ù.
¿©±â¼´Â °ü½É¿¡ µû¶ó¼ Á÷Á¢ÀûÀÎ Çϵå¿þ¾î ƯÀ¯ÀÇ ±¸¼ºÀ» º¼ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
- Ä¿³Î À̹ÌÁöÀÇ ±¸¼º
- ¸®´ª½º Ä¿³ÎÀÇ ºÎÆÃ °úÁ¤
- ½ºÄÉÁÙ·¯ÀÇ Çϵå¿þ¾îÀûÀÎ ±¸Çö
- ÆäÀÌ¡ÀÇ Çϵå¿þ¾îÀûÀÎ ±¸Çö
- ÆÄÀϽýºÅÛÀÇ ½ÇÁúÀûÀÎ ±¸Çö
- TCP/IP ÇÁ·ÎÅäÄÝÀÇ ±¸Çö
- ÀÎÅÍ·´Æ®, ¿¹¿Ü, ½Ã½ºÅÛ ÄÝÀÇ Çϵå¿þ¾îÀûÀΠó¸®
- ±âŸ, ...
Last Updated : 2001/10/19
First Written : 2001/10/19