INtime Tech

INtime Top


  INtime ¾îÇø®ÄÉÀÌ¼Ç °³¹ßÀÇ ±âº»


 

óÀ½¿¡

º»¹®¼­´Â Sample12ÀÇ INtime ¾îÇø®ÄÉÀ̼Ç(ntxsemRt)À» ¿¹·Î ÇØ ¼³¸íÇÕ´Ï´Ù.
¿©±â¿¡¼­´Â, 2°³ÀÇ semaphore¸¦ »ý¼ºÇØ, ¼ö½ÅÇÑ À¯´Ö(À̺¥Æ®)¿¡ ´ëÇØ¼­ 󸮸¦ ÇàÇϱâ À§ÇÑ INtime ¾îÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.

°³¹ß »ùÇÃÀÇ ¼Ò°³

°³¹ßÇÏ´Â INtime ¾îÇø®ÄÉÀ̼ǿ¡¼­´Â, INtime ¾îÇø®ÄÉÀ̼dz»¿¡ ±Û·Î¹ú º¯¼ö¡±iRecvNum¡±¸¦ ¼±¾ðÇØ, ¼ö½ÅÇÑ À¯´Ö¼ö¸¦ ±Û·Î¹ú º¯¼ö¡±iRecvNum¡±¿¡ Ãß°¡ÇÏ´Â semaphore(À¯´Ö Áõ°¡ semaphore)¿Í À¯´Ö ¼ö½Å ÈÄ¿¡ ±Û·Î¹ú º¯¼ö¡±iRecvNum¡±¸¦ 0¿¡ ÃʱâÈ­ÇÏ´Â semaphore(À¯´Ö Ŭ¸®¾î semaphore)¸¦ »ý¼ºÇÕ´Ï´Ù. ±×¸®°í, ¼ö½ÅÇÑ À¯´Ö¿¡ ÀÇÇØ¼­, ±Û·Î¹ú º¯¼ö¡±iRecvNum¡±ÀÇ Áõ°¡·Å¬¸®¾î¸¦ ½Ç½ÃÇÏ´Â °ÍÀ» ¿¹·Î ÇÕ´Ï´Ù.

Áö±ÝºÎÅÍ °³¹ßÇÏ´Â »ç¾çÀº ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÕ´Ï´Ù.

INtime ¾îÇø®ÄÉÀ̼Ǹí ÇÁ·ÎÁ§Æ®¸í
ntxSemRt.rta ntxSemRt


¶Ç, °¢ semaphoreÀÇ Á¤º¸¿¡ ´ëÇØ¼­´Â, ÀÌÇÏ¿Í °°ÀÌ µÇ¾î ÀÖ½À´Ï´Ù.

  À¯´Ö Áõ°¡¿ë semaphore À¯´Ö Ŭ¸®¾î¿ë semaphore
ÆÄÀϸí SSemAdd.c SSemClr.c
īŻ·Î±×¸í SemAdd SemClr
Ãʱâ À¯´Ö¼ö 0 0
ÃÖ´ë À¯´Ö¼ö 128 128

°³¹ßÀÇ ½Ç¿¹

  • 1.[Microsoft Visual C++]¸¦ ±âµ¿ÇÕ´Ï´Ù.
  • 2.[Microsoft Visual C++]°¡ ±âµ¿Çϸé,[ÆÄÀÏ]£¾[½Å±Ô ÀÛ¼º]À» Ŭ¸¯ÇÕ´Ï´Ù.
  • 3.[ÇÁ·ÎÁ§Æ®]ÅÇÀ» Ŭ¸¯ÇØ,[INtime RT Process]¸¦ Ŭ¸¯ÇÕ´Ï´Ù. [ÇÁ·ÎÁ§Æ®¸í],[À§Ä¡]ÀÇ ¼³Á¤ÀÌ ³¡³ª¸é,[OK]¸¦ Ŭ¸¯ÇÕ´Ï´Ù.
  • 4.À¯´Ö Áõ°¡¿ë semaphoreÀÇ ¼³Á¤À» ½Ç½ÃÇÕ´Ï´Ù.[¸ÞÀÏ ¹Ú½º·semaphore¸¦ °¡Áö´Â ½º·¿µå]¸¦ üũÇÑ »óÅ·Î[¿ä¼ÒÀÇ Ãß°¡]¸¦ Ŭ¸¯ÇÕ´Ï´Ù.

  • 5.[½º·¹µå°¡ °¡Áö´Â ¿ÀºêÁ§Æ®Çü]À»[semaphore]¿¡ ¼±ÅÃÇØ, [¿ÀºêÁ§Æ®´Â ´ÙÀ½ÀÇ À̸§À¸·Î īŻ·Î±× µÇ°í ÀÖ´Â]¿¡ īŻ·Î±×¸íÀ» ÀÔ·ÂÇÕ´Ï´Ù.¼³Á¤ÀÌ ³¡³ª¸é,[OK]¸¦ Ŭ¸¯ÇÕ´Ï´Ù.

 

  • 6.À¯´Ö Ŭ¸®¾î¿ë semaphoreÀÇ ¼³Á¤À» ½Ç½ÃÇÕ´Ï´Ù. ¼ø¼­¡±4¡±,¡±5¡±ÀÇ µ¿ÀÛÀ» ½Ç½ÃÇØ ÁÖ¼¼¿ä.
  • 7.À¯´Ö Áõ°¡¿ë semaphore, À¯´Ö Ŭ¸®¾î¿ë semaphoreÀÇ ¼³Á¤ÀÌ ³¡³ª¸é, À¯´Ö Áõ°¡¿ë semaphore, À¯´Ö Ŭ¸®¾î¿ë semaphore°¡ ¼³Á¤µÇ¾î ÀÖ´Â °ÍÀ» È®ÀÎÇØ ÁÖ¼¼¿ä.

      

 

  • 8.È®ÀÎÀÌ ¿Ï·áÇϸé,[ÇÁ·Î¼¼½ºÀÇ »ý¼º]À» Ŭ¸¯ÇÕ´Ï´Ù.
  • 9.È®ÀÎ ¸Þ¼¼Áö°¡ Ç¥½ÃµÇ±â ¶§¹®¿¡,[³×]¸¦ Ŭ¸¯ÇÕ´Ï´Ù.

    devbase6.jpg

 

  • 10.ÇÁ·Î¼¼½º Àüü¿¡ °üÇÑ ¼³Á¤ È­¸é¿¡ ´ëÇØ¼­´Â, µðÆúÆ®ÀΠä·Î[OK]¸¦ Ŭ¸¯ÇÕ´Ï´Ù.

 

  • 11.È®ÀÎÀÌ ¿Ï·áÇϸé,[ÇÁ·Î¼¼½ºÀÇ »ý¼º]À» Ŭ¸¯ÇÕ´Ï´Ù.
  • 12.½Å±Ô ÇÁ·ÎÁ§Æ® Á¤º¸ È­¸é¿¡¼­, ¼³Á¤ ³»¿ëÀ» È®ÀÎÇϸé,[OK]¸¦ Ŭ¸¯ÇÕ´Ï´Ù.

 

  • 13.½Å±Ô ÇÁ·ÎÁ§Æ®ÀÇ ÀÛ¼ºÀÌ ¿Ï·áÇϸé, ±Û·Î¹ú º¯¼ö¡±iRecvNum¡±ÀÇ ¼³Á¤À» ½Ç½ÃÇÕ´Ï´Ù.
    • ¨ç¼Ò½º ÆÄÀÏ¡±ntxSemRt.c¡±ÀÇ¡±// ±Û·Î¹ú º¯¼ö¡±¿¡ º¯¼ö¸¦ Ãß°¡ÇÕ´Ï´Ù.
      int      iRecvNum = 0;

      devbase9.jpg

    • ¨èÀüÆÄÀÏ·Î ÂüÁ¶ÇÒ ¼ö ÀÖµµ·Ï, Çì´õ ÆÄÀÏ¡±ntxSemRt.h¡±ÀÇ¡±// global variables¡±¿¡ º¯¼ö¸¦ Ãß°¡ÇÕ´Ï´Ù.
      extern int    iRecvNum;

      devbase10.jpg

  • 14.À¯´Ö Áõ°¡¿ë semaphore 󸮸¦ ÀÛ¼ºÇÕ´Ï´Ù. ¼Ò½º ÆÄÀÏ ¡±SSemAdd.c¡±ÀÇ ÇÔ¼ö¡±ThreadSemAdd()¡± ¾È¿¡ Ãß°¡ÇÕ´Ï´Ù.
    iRecvNum++;
     printf("À¯´Ö ¼ö½Å %d °³\n", iRecvNum);

    devbase11.jpg

  • 15.À¯´Ö Ŭ¸®¾î¿ë semaphore 󸮸¦ ÀÛ¼ºÇÕ´Ï´Ù. ¼Ò½º ÆÄÀÏ¡±SSemClr.c¡±ÀÇ ÇÔ¼ö¡±ThreadSemClr()¡± ¾ÈÃß°¡ÇÕ´Ï´Ù.
    iRecvNum = 0;
     printf("À¯´Ö ¼ö½Å °³¼ö Ŭ¸®¾î \n");

    devbase12.jpg

  • 16.ºôµå¸¦ ½Ç½ÃÇÕ´Ï´Ù. compile error°¡ ¹ß»ýÇÏÁö ¾Ê°í, Debug ¶Ç´Â Releace Æú´õ³»¿¡¡±nxtSemRt.rta¡±°¡  ÀÛ¼ºµÇ°í ÀÖ´Â °ÍÀ» È®ÀÎÇØ ÁÖ¼¼¿ä.
  • 17.¡±nxtSemRt.rta¡±°¡ ÀÛ¼ºµÇ¸é, ¡±nxtSemRt.rta¡±¸¦ ±âµ¿ÇØ, WindowsÃøÀÇ ¾îÇø®ÄÉÀ̼ǡ± nxtSemNt.exe¡±µµ ±âµ¿, µ¿ÀÛ È®ÀÎÇØ ÁÖ¼¼¿ä.

HOME | INtime