¹Ù·Î°¡±â ¸Þ´º
º»¹® ¹Ù·Î°¡±â
ÁÖ¸Þ´º ¹Ù·Î°¡±â

Programming Academy

±³À°°³¿ä
±³À° Ä¿¸®Å§·³°ú °­»ç´Â »çÁ¤¿¡ ÀÇÇØ º¯°æµÉ ¼ö ÀÖ½À´Ï´Ù.
±³À°¸í,¸¦ Æ÷ÇÔÇÑ ±³À°°úÁ¤ Ç¥
±³À°¸í °í±Þ Advanced C Programming 1Â÷
±³À°±â°£ 2017-10-23 ~ 2017-10-27
±³À°½Ã°£ 40 ½Ã°£
±³À°Àå ¿¡Æ¼¹ö½º·¯´×(°­³²)  Áöµµº¸±â
°­»ç
Á¤¿ø 15¸í
±³À°ºñ 800,000


±³À°¼Ò°³
¡Û ¿î¿µÃ¼Á¦¿Í CPUÀÇ ±¸Á¶ ¹× cache, memory ¸ðµ¨¿¡ ´ëÇÑ ÀÌÇØ °í±Þ C Ȱ¿ë±â¹ý, Æ®·¯ºí½´ÆÃ, ¾Ë°í¸®ÁòÀ» Àû¿ëÇÑ C ÃÖÀûÈ­ ¹æ¾ÈÀ» ÇнÀ
±³À°¸ñÇ¥
¡Û ¿î¿µÃ¼Á¦¿Í CPU±¸Á¶¿Í Cache, Memory ¸ðµ¨ÀÇ ÀÌÇØ
¡Û C ¾ð¾î¸¦ Ȱ¿ëÇÑ °í±Þ°³¹ß±â¹ý°ú Æ®·¯ºí½´ÆÃ
¡Û ¾Ë°í¸®ÁòÀ» Àû¿ëÇÑ C ÃÖÀûÈ­ ¹æ¾È ±¸Çö
±³À°´ë»ó
¡Û C ¾ð¾î¸¦ »ç¿ëÇÏ´Â ½Ã½ºÅÛ ÇÁ·Î±×·¡¸Ó
¡Û C ¾ð¾î¸¦ »ç¿ëÇÏ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¡¸Ó
±³À°³»¿ë

 

ÀÏÂ÷

´Ü¿ø¸í

¼¼ºÎ³»¿ë

½Ã°£

¹æ¹ý

1Â÷

¿î¿µÃ¼Á¦¿Í

ÇÁ·Î±×·¡¹ÖÀÇ °ü°è 

¿î¿µÃ¼Á¦¿Í API, ABI¿¡ ´ëÇÑ ÀÌÇØ
CPU ±¸Á¶ ¹× ÄÄÇ»ÅÍ ¾ÆÅ°ÅØÃ³¿¡ ´ëÇÑ ÀÌÇØ

4H

°­ÀÇ

½Ç½À

¿î¿µÃ¼Á¦¿Í

ÇÁ·Î±×·¡¹ÖÀÇ °ü°è

Cache ±¸Á¶¿¡ ´ëÇÑ ÀÌÇØ
cache aligned ÀÚ·á ±¸Á¶
Pipeline ±¸Á¶¿¡ ´ëÇÑ ÀÌÇØ
¼º´É ÃøÁ¤ ±âÁذú ÆÛÆ÷¸Õ½º ÃøÁ¤ À¯Æ¿¸®Æ¼

4H

°­ÀÇ

½Ç½À

2ÀÏÂ÷

¸Þ¸ð¸® ÃÖÀûÈ­

ÀÚ·á ±¸Á¶¿¡ µû¸¥ ¼º´É Çâ»ó
mmap ¹× TLB / LargeTLB¿¡ ´ëÇÑ ÀÌÇØ
fork¿¡ ÀÇÇÑ TLB miss rate¿Í ¸Þ¸ð¸® ´ÜÆíÈ­

4H

°­ÀÇ

½Ç½À

¸Þ¸ð¸® ÃÖÀûÈ­

Æ÷ÀÎÅÍ Ã³¸®¿Í ¼º´ÉÀÇ °ü°è
Memory fence¿¡ ´ëÇÑ ÀÌÇØ
POSIX.1ÀÇ advisory ±â´É
Disk access latency °³¼± (file/cache buffer)

4H

°­ÀÇ

½Ç½À

3ÀÏÂ÷

IPC ÃÖÀûÈ­

C ¾ð¾î¿¡¼­ »ç¿ëµÇ´Â x86 assembly ÄÚµå
GCC builtin function

4H

°­ÀÇ

½Ç½À

IPC ÃÖÀûÈ­

SIGEV¸¦ ÀÌ¿ëÇÑ À̺¥Æ® ó¸® ±â¹ý
Event driven architectureÀÇ ±¸Çö
AIO ºñµ¿±â Ã³¸®¿Í SIGEV¿ÍÀÇ ¿¬°á

4H

°­ÀÇ

½Ç½À

4ÀÏÂ÷

³×Æ®¿öÅ© ÃÖÀûÈ­

³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝ ¹× ¼³°è
¸®Ä¿¹ö¸®¸¦ À§ÇÑ ±¸Á¶

4H

°­ÀÇ

½Ç½À

³×Æ®¿öÅ© ÃÖÀûÈ­ 

¸®´ª½º¿¡ Å¾ÀçµÈ TCP ¾Ë°í¸®Áò
Edge trigger¸¦ ÀÌ¿ëÇÑ À̺¥Æ® ±¸Á¶ ±¸Çö

4H

°­ÀÇ

½Ç½À

5ÀÏÂ÷

½º·¹µå ÃÖÀûÈ­

Decomposition º´·ÄÈ­ ÆÐÅÏ
false sharing°ú cache hit, MESI ÇÁ·ÎÅäÄÝ

4H

°­ÀÇ

½Ç½À

½º·¹µå ÃÖÀûÈ­

lock ¸ðµ¨¿¡ µû¸¥ ¼º´É ºÒÀÌÀÍ
ÀӰ迵¿ªÀÇ Ã³¸® ¹× ±¸Çö ¹æ¹ý

4H

°­ÀÇ

½Ç½À

 

ÇпøÀÇ ¼³¸³¤ý¿î¿µ ¹× °ú¿Ü±³½À¿¡ °üÇÑ ¹ý·ü ½ÃÇà·É¿¡ µû¶ó ´ÙÀ½°ú °°ÀÌ ¼ö°­·á¸¦ ȯºÒÇØµå¸³´Ï´Ù.

  1. ¹Ýȯ±âÇÑ : ¹Ýȯ»çÀ¯°¡ ¹ß»ýÇÑ °æ¿ì ¹Ýȯ±âÁØ¿¡ µû¶ó ¹Ýȯ»çÀ¯ ¹ß»ýÀϷκÎÅÍ 5ÀÏ À̳»¿¡ ±³½ÀºñµîÀ» ȯºÒÇØ µå¸®°Ú½À´Ï´Ù.
  2. ¹Ýȯ±âÁØ
    • 1) ±³½ÀÀ» ÇÒ ¼ö ¾ø°Å³ª ±³½ÀÀå¼Ò¸¦ Á¦°øÇÒ ¼ö ¾ø°Ô µÈ ³¯À» ±âÁØÀ¸·Î ÀÌ¹Ì ³³ºÎÇÑ ±³½ÀºñµîÀ» ÀÏÇÒ °è»êÇÑ ±Ý¾×À» ȯºÒÇØ µå¸®°Ú½À´Ï´Ù.
    • 2) ±³½À±â°£ÀÌ 1°³¿ù À̳»ÀÎ °æ¿ì, ´ÙÀ½°ú °°ÀÌ È¯ºÒÇØ µå¸®°Ú½À´Ï´Ù.
      - ±³½À½ÃÀÛ Àü : ÀÌ¹Ì ³³ºÎÇÑ ±³½ÀºñµîÀÇ Àü¾×
      - ÃÑ ±³½À½Ã°£ 1/3 °æ°ú Àü : ÀÌ¹Ì ³³ºÎÇÑ ±³½ÀºñµîÀÇ 2/3¿¡ ÇØ´çÇÏ´Â ±Ý¾×
      - ÃÑ ±³½À½Ã°£ 1/2 °æ°ú Àü : ÀÌ¹Ì ³³ºÎÇÑ ±³½ÀºñµîÀÇ 1/2¿¡ ÇØ´çÇÏ´Â ±Ý¾×
      - ÃÑ ±³½À½Ã°£ 1/2 °æ°ú ÈÄ : ¹ÝȯÇÏÁö ¾ÊÀ½
    • 3) ±³½À±â°£ÀÌ 1°³¿ùÀ» ÃʰúÇÏ´Â °æ¿ì, ´ÙÀ½°ú °°ÀÌ È¯ºÒÇØ µå¸®°Ú½À´Ï´Ù.
      - ±³½À½ÃÀÛ Àü : ÀÌ¹Ì ³³ºÎÇÑ ±³½ÀºñµîÀÇ Àü¾×
      - ±³½À½ÃÀÛ ÈÄ : ¹Ýȯ»çÀ¯°¡ ¹ß»ýÇÑ ÇØ´ç¿ùÀÇ ¹Ýȯ ´ë»ó ±³½Àºñµî(±³½À±â°£ 1°³¿ù À̳» ±âÁØ »êÃâ±Ý¾×)°ú ³ª¸ÓÁö ¿ùÀÇ ±³½Àºñµî Àü¾×À» ÇÕ»êÇÑ ±Ý¾×