INtime Tech

 

¡¸INtime documentary¡¹~INtime ÃʽÉÀÚ Ã¼Çè±â


NTÃø ±×·¡ÇÁ Ç¥½Ã ¾îÇø®ÄÉÀ̼Ç

10¿ù 28ÀÏ···NTX ¾îÇø®ÄÉÀÌ¼Ç ÀÛ¼º

INtimeÃø ¾îÇø®ÄÉÀ̼Ç/NTÃø ¾îÇø®ÄÉÀ̼ǰ£, ȤÀº INtime ¾îÇø®ÄÉÀ̼Ç/ INtime ¾îÇø®ÄÉÀ̼ǰ£¿¡ ¸ÞÀÏ ¹Ú½º¸¦ ÅëÇØ¼­ Åë½ÅÀ» ½Ç½ÃÇÏ´Â °æ¿ì, ¾î´À ÂÊÀÎÁö ÇÑÆí¿¡ ¼ÓÇÏ´Â ¸ÞÀÏ ¹Ú½ºÀÇ ÇÚµéÀ» ÃëµæÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.


INtime·NTX°£ Åë½ÅÀÇ ¼ö¹ý
¸ÞÀÏ ¹Ú½ºÀÇ ¿ÀºêÁ§Æ® ÇÚµéÀÇ Ãëµæ ¹æ¹ý
¡¡CatalogRtHandle¿Í LookupRtHandle 
  ·¸ÞÀÏ ¹Ú½º¸¦ Æ÷ÇÔÇÑ ¾îÇø®ÄÉÀ̼ÇÀº ÀÎÅÍÆäÀ̽º¿ëÀÇ ¸ÞÀÏ ¹Ú½ºÀÇ Çڵ鷯ġ¸¦ ÀÖ´Â À̸§À¸·Î  
        īŻ·Î±× ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. īŻ·Î±× ÇÏ´Â À§Ä¡´Â, ·çÆ® µð·ºÅ丮³ª,
    ±× ·çÆ® µð·ºÅ丮¿¡ ¼ÓÇÏ´Â ÇÁ·Î¼¼½ºÀÇ µð·ºÅ丮 µî, ÀÓÀÇ·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
  ·¸ÞÀÏ ¹Ú½º¸¦ °Ë»öÇÏ´Â ÃøÀÇ ¾îÇø®ÄÉÀ̼ÇÀº ¸ÞÀÏ ¹Ú½º ¿ÀºêÁ§Æ®°¡ īŻ·Î±× µÇ¾î
    ÀÖ´Â µð·ºÅ丮¿Í īŻ·Î±× À̸§À» ¾Ë¾Æ µÑ Çʿ䰡 ÀÖ½À´Ï´Ù.
 
CatalogRtHandle()
BOOL CatalogRtHandle(                      
  RTHANDLE hProcess, // RTÇÁ·Î¼¼½ºÀÇ ÇÚµé                       
  RTHANDLE hObject, // īŻ·Î±× ÇÏ´Â ¿ÀºêÁ§Æ®ÀÇ ÇÚµé                      
  LPSTR lpszName                      // īŻ·Î±×¸í 
);
                     
LookupRtHandle()                      
RTHANDLE LookupRtHandle( 
  RTHANDLE hProcess, // RTÇÁ·Î¼¼½º ÇÚµé                       
  LPSTR lpszName, // ¿ÀºêÁ§Æ®ÀÇ Ä«Å»·Î±×¸í                      
  DWORD dwMilliseconds // °Ë»öÇϱâ À§ÇÑ Å¸ÀÓ ¾Æ¿ôÄ¡
); 
WindowsÃø(NTX ¾îÇø®ÄÉÀ̼Ç)¿¡¼­´Â ntxCatalogRtHandle()¿Í ntxLookupRtHandle()°¡ µË´Ï´Ù.
                     
¾Æ³¯·Î±× µ¥ÀÌÅÍ  º¯È¯Ä¡ Ãëµæ ½º·¿µå¸¦ Æ÷ÇÔÇÑ RTÇÁ·Î¼¼½º¿¡ Æ÷ÇԵǴ ¸ÞÀÏ ¹Ú½º¸¦ °Ë»öÇÑ´Ù. 
                   
 
¸ÞÀÏ ¹Ú½º ¿ÀºêÁ§Æ® ÇÚµéÀÇ Ãëµæ

¡¡¸ÞÀÏ ¹Ú½º ¿ÀºêÁ§Æ® ÇÚµéÀ» ÃëµæÇϱâ À§ÇØ´Â ¿ì¼± ·çÆ® RtÇÁ·Î¼¼½º ÇÚµéÀÇ Ãëµæ (ntxGetRootRtProcess) ¡é
RTÃøÀÇ ÇÁ·Î¼¼½º ¿ÀºêÁ§Æ®ÀÇ Ãëµæ(ntxLookupNtxHandle)
¡é
»ç¿ëÇÏ´Â ¸ÞÀÏ ¹Ú½º ¿ÀºêÁ§Æ® ÇÚµéÀÇ Ãëµæ(nyxLookupNtxHandle)
 
ÄÚµå»ó

//·çÆ® ÇÁ·Î¼¼½º Çڵ鷯¸¦ ÃëµæÇÏ´Â

if( (m_RootProcess = ntxGetRootRtProcess(NTX_LOCAL)) == NTX_BAD_NTXHANDLE )
{ AfxMessageBox(
"·çÆ® ÇÁ·Î¼¼½º ÇÚµé Ãëµæ ¿¡·¯" ,MB_ICONERROR | MB_OKCANCEL,0); exit(0); } //·çÆ® ÇÁ·Î¼¼½ºÇÏ¿¡ ÀÖ´Â INtimeÃøÀÇ ÇÁ·Î¼¼½º¸¦ °Ë»öÇØ Çڵ鷯¸¦ ÃëµæÇÑ´Ù if ( (m_InTimeDocProcess = ntxLookupNtxhandle(m_RootProcess,rt_process, 0xffff)) == NTX_BAD_NTXHANDLE) { AfxMessageBox("INtimeDoc ÇÁ·Î¼¼½º ÇÚµé Ãëµæ ¿¡·¯" , MB_ICONERROR | MB_OKCANCEL,0); exit(0); } //ÃëµæÇÑ INtimeÃøÀÇ Çڵ鷯¸¦ »ç¿ëÇØ µ¥ÀÌÅÍÀÇ ¼ö¼ö·Î »ç¿ëÇÏ´Â ¸ÞÀÏ ¹Ú½º¸¦ °Ë»ö //ÇÚµéÀ» ÃëµæÇÑ´Ù. If((m_RtGraphMailbox=ntxLookupNtxhandle(m_InTimeDocProcess,rt_nt_mbx, 0xffff)) == NTX_BAD_NTXHANDLE) { AfxMessageBox("¸ÞÀÏ ¹Ú½º ÇÚµé Ãëµæ ¿¡·¯" , MB_ICONERROR | MB_OKCANCEL,0); exit(0); }
 
Åë½Å ŸÀ̹Ö
INtimeÃø¿¡¼­ ¼Û½ÅµÈ ¸ÞÀÏ ¹Ú½º¸¦ ¼ö½ÅÇϴ ŸÀ̹ÖÀº »ùÇÿ¡ ÀÖ´ø ŸÀ̸Ó(OnTimer())¸¦ »ç¿ëÇϸé ÁÁÀº °ÍÀ̶ó°í »ý°¢ÇØ, ŸÀ̸Ӹ¦ »ç¿ëÇØ ¼ö½ÅÇϴ ŸÀ̹ÖÀ» ÀÛ¼ºÇß½À´Ï´Ù.±×·¯³ª, À̰ÍÀ¸·Î´Â RTÃø°ú µ¿±â¸¦ ÃëÇÏÁö ¾Ê°í , NTÃøÀÇ µ¶ÀÚ Æú¸µ ÁÖ±â(ŸÀÌ¸Ó ÁÖ±â)¿¡ ¸ÞÀÏ ¹Ú½º¸¦ °Ë»öÇϴ ó¸®°¡ µÇ¾î ¹ö¸®±â À§ÇØ ½º·¹µå¸¦ »ý¼ºÇØ ±× ½º·¹µåÀÇ ¼±µÎ¿¡¼­ ¸ÞÀÏ ¹Ú½º¿¡ ¿ÀºêÁ§Æ®¸¦ ¼ö½ÅÇϴ ó¸®·Î º¯°æÇß½À´Ï´Ù.
ÀÌ ½º·¹µå ÀÛ¼º¿¡ °í»ýÇß½À´Ï´Ù.
NTÃø¿¡¼­ÀÇ ½º·¹µå¸¦ ¾î¶»°Ô ÀÛ¼ºÇϸé ÁÁÀº °ÍÀÎÁö ¸ô¶ú´ø ¶§¹®, VCÀÇ ÇïÇÁ¿¡¼­"½º·¹µå"·Î °Ë»öÇØ Á¶»çÇß½À´Ï´Ù.
³ª¿Â ÇÔ¼ö´Â, _beginthread ÇÔ¼ö°¡ ³ª¿Ô½À´Ï´Ù. ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇØ ÀÛ¼ºÇÏ´Â ÀÏ·Î Çß½À´Ï´Ù. ÀÌ ÇÔ¼öÀÇ Á¦1 Àμö(»õ·Î¿î ½º·¹µåÀÇ ½ÇÇà °³½Ã ÁÖ¼Ò)ÀÇ ¼³Á¤ÀÌ ´É¼÷ÇÏ°Ô ÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ü³ä CreateThread ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ÀÏ¿¡ ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇØµµ °°Àº ¿¡·¯·Î ¾î¶»°Ôµµ ¾ÈµÇ¾ú½À´Ï´Ù.
´ÙÀ½¿¡ CWinThread Ŭ·¡½º¸¦ »ç¿ëÇØ º¸¾Ò½À´Ï´Ù. CWinThred Ŭ·¡½ºÀÇ »ó¼Ó Ŭ·¡½º¸¦ ¿ì¼± ÀÛ¼ºÇß½À´Ï´Ù.
»ç¿ë¹ý(ÇÔ¼öÀÇ »ç¿ë ¹æ¹ý)µî ¾î¶»°Ô ÇÏ¸é ¸ô¶ú´ø ¶§¹®, À̹øÀº ÀÎÅͳÝÀ¸·Î Á¶»çÇØ º¸´Â ÀÏ·Î Çß½À´Ï´Ù. °Å±â¿¡ Á¶±Ý Âü°í¿¡ ÇÒ ¼ö ÀÖÀ» °Í °°Àº °£´ÜÇÑ °ÍÀ» ã¾Æ³Â½À´Ï´Ù. ÀÛ¼ºÇÑ, ½º·¹µå¸¦ ±âµ¿Çϱâ À§ÇØ´Â
afxBeginThread ÇÔ¼ö¸¦ ÄÝ Çϸé ÁÁÀº °Í °°¾Ò½À´Ï´Ù.
afxBeginThread ÇÔ¼ö°¡ ÄÝ µÇ´Â ÀÏ¿¡ ÀÇÇØ CWinThread ¿ÀºêÁ§Æ®¸¦ ½Å±Ô¿¡ ÀÛ¼ºÇØ CreateThread¸¦ È£ÃâÇÏ°Ô µÇ¾î ÀÖ´Â °Í °°½À´Ï´Ù.

½ÇÁ¦, ±×·¡ÇÁÀÇ ¹¦È­¸¦ ÇàÇϰí Àִ Ŭ·¡½º¿Í À̹ø ½º·¹µå³»¿¡¼­ µ¥ÀÌÅ͸¦ ÃëµæÇÑ´Ù°í ¸»ÇÏ´Â ÀÏ·Î, ÃëµæÇÑ µ¥ÀÌÅÍÀÇ ±³È¯À» ¾î¶»°Ô ÇÏ´ÂÁö°¡ ¹®Á¦°¡ µÇ¾ú½À´Ï´Ù.
½º·¹µå³»¿¡ ´ÙÀ̾ó·Î±×ÃøÀÇ µ¥ÀÌÅ͸¦ °Ç³×ÁÖ´Â ¹æ¹ýÀÌ ÀüÇô ¸ð¸£´Â »óÅ¿´½À´Ï´Ù.
Ŭ·¡½ºÀÇ ¸â¹ö º¯¼ö·Î¼­ Ãë±ÞÇÏ´Â ÀÏ·Î µ¥ÀÌÅÍÀÇ ±³È¯À» ½Ç½ÃÇϵµ·Ï ¼öÁ¤Çß½À´Ï´Ù¸¸, À̶ó°í ¸Þ¸ð¸® ÆÄ±«¸¦ ÀÏÀ¸Å°´Â »óȲÀ̾ú½À´Ï´Ù.
À̰Ϳ¡´Â °ï¶õÇß½À´Ï´Ù. ÀÌ ±³È¯À» ÇÒ ¼ö ¾øÀ¸¸é ±×·¡ÇÁÀÇ Ç¥½Ã¸¦ ÇÒ ¼ö ¾ø±â ¶§¹®¿¡ÀÔ´Ï´Ù.
ÃÖÁ¾ÀûÀ¸·Î, ¿øÀÎÀ» ¾Ë ¼ö ÀÖ¾ú½À´Ï´Ù. ³»°¡, ½º·¹µåÅ©¶ó½ºÆ÷ÀΟ·Î¼­ Ãë±ÞÇϰí ÀÖ´ø °ªÀÌ ¿ÏÀüÈ÷ ´Ù¸¥ °ÍÀ̾ú±â ¶§¹®¿¡ÀÔ´Ï´Ù.
AfxbeginThread() ÄÝ·Î ÃëµæÇÑ °ªÀÌ, ½º·¹µåÅ©¶ó½ºÀÇ Æ÷ÀÎÅÍ·Î, ±× °ªÀ» »ç¿ëÇØ ½º·¹µåÅ©¶ó½ºÀÇ ¸â¹ö º¯¼öµî¿¡ ¾×¼¼½º ÇÏÁö ¾ÊÀ¸¸é ¾È µÇ´Â °ÍÀ», RUNTIME_CLASS(XXXX¡çŬ·¡½º¸í)·ÎÀÇ °ªÀ¸·Î ¾×¼¼½º ÇÏ·Á°í Çϰí ÀÖ¾ú½À´Ï´Ù.
À̰ÍÀ» °íÄ¡´Â °ÍÀ¸·Î, ½º·¹µåÅ©¶ó½ºÀÇ ¸â¹ö º¯¼ö µî¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ°Ô µÇ¾î, ¼öÁß¿¡ ³ÖÀº µ¥ÀÌÅ͸¦ ´ÙÀ̾ó·Î±× ÇÔ¼ö·Î »ç¿ëÇÒ ¼ö ÀÖ¾î ±×·¡ÇÁÀÇ ¹¦È­¸¦ ÇàÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.


HOME | INtime