<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://valley.egloos.com/rss/style/style.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>이글루스 'ipc' 태그 최근글</title>
		<link>http://valley.egloos.com/tag/ipc</link>
		<description>ipc</description>
		<language>ko</language>
		<pubDate>Wed, 31 Aug 2011 16:50:20 +0900</pubDate>
		<generator>Egloos</generator>
		<item>
	<title><![CDATA[windows console application 에서 Windows Message 받기]]></title>
	<link>http://muzie.egloos.com/4618614</link>
	<guid>http://muzie.egloos.com/4618614</guid>
	<description>
	<![CDATA[ 
  출처는 위에꺼고..  MFC 응용프로그램이랑 통신하는 콘솔 어플을 하나 만들고 있는데, 둘 사이의 IPC는 WM_COPYDATA에 데이터를 실어서 주거니 받거니 하기로 했었다. 그런데 생각해보니까, MESSAGE MAP에 OnCopyData 가 들어있어야 하는걸 깜빡.. 다이얼로그 기반이 아니면 할 수 있는 방법이 없어보였다.  쨌거나 구글링 하니까 다음과 같은 방법으로 구현이 가능.  1. WNDCLASSEX 데이터를 하나 생성해서 세팅해준다. 2. WNDCLASSEX 에 메세지 콜백 함수를 하나 등록해야하는데 그 메세지 콜백 함수를 구현한다. (여기에서 WM_COPYDATA를 받는 루틴 작성) 3. 날아오는 윈도우 메세지를 가로채는(?) 쓰레드를 하나 생성한다.  제법 간단해보이는데 그냥 아무생각 없	]]>
	</description>
	<pubDate>Wed, 31 Aug 2011 16:50:20 +0900</pubDate>
	<dc:creator><![CDATA[기억의 조각]]></dc:creator>
</item>
<item>
	<title><![CDATA[uC/OS2에서 사용되는 IPC 종류와 매우 간단한 설명]]></title>
	<link>http://gentlesoo.egloos.com/393523</link>
	<guid>http://gentlesoo.egloos.com/393523</guid>
	<description>
	<![CDATA[ 
* IPC(Inter Process Communication)  1. Semaphore : 멀티 프로세스의 Critical Section 보호  2. Mutex : Semaphore의 Priority Inversion 문제 해결 ( Priority Inheritance=Priority Ceiling 이용 )  3. Flag : 이벤트 Flag를 이용한 동기화  4. Mail Box : Mailbox라는 구조체에 포인터 변수를 Post(전송), Pend(수신)   5. Message Queue : Message Queue라는 구조체에 포인터 변수를 Post(전송), Pend(수신)    ( Mail Box와의 차이? Mail Box는 포인터변수 하나 저장, Message Queue는 FIFO Queue에 포인	]]>
	</description>
	<pubDate>Wed, 13 Apr 2011 16:29:15 +0900</pubDate>
	<dc:creator><![CDATA[The day of gentlesoo]]></dc:creator>
</item>
<item>
	<title><![CDATA[프로세스 간 통신(Inter Process Communication)-3]]></title>
	<link>http://avata007.egloos.com/2726037</link>
	<guid>http://avata007.egloos.com/2726037</guid>
	<description>
	<![CDATA[ 
<img 
				src="http://thumb.egloos.net/76x100/http://pds18.egloos.com/pds/201103/06/62/e0036962_4d7381bdd39c0.png"  
				alt="프로세스 간 통신(Inter Process Communicatio.." 
				width="76px"  
				height="100pxpx"
				align="left"
				style="border:1px solid #DDDDDD;margin:0 10px 10px 0px;"
				/> 2. 메시지 큐(Message Queue)- 프로세스들이 함께 사용하는 큐에 메시지를 입출력하면서 서로 데이터를 주고 받음. FIFO(Named Pipe,명명된 파이프)와 같이 손쉽게 사용할 수 있는데다가 프로세스와는 독립적으로 존재하고, 동기화문제도 내부적으로 처리해줌- 장점: FIFO로 메시지를 주고 받을 때처럼 동기화와 블럭킹문제 신경 안써도 된다.    단점: FIFO와 마찬가지로 전송하는 데이터 양에 제한이 있다.int msgget(key_t key, int flag);     // key: 고유한 키 값 // flag: 생성 옵션: 메시지 큐를 얻어옴예) int msgQid = msgget((key_t)8000, 0666 | IPC_CREAT);    // 8000번을 키 값으로 하는 메시지 큐 	]]>
	</description>
	<pubDate>Sun, 06 Mar 2011 21:45:57 +0900</pubDate>
	<dc:creator><![CDATA[인생은 속도가 아니라 방향이다]]></dc:creator>
</item>
<item>
	<title><![CDATA[프로세스 간 통신(Inter Process Communication)-2]]></title>
	<link>http://avata007.egloos.com/2725957</link>
	<guid>http://avata007.egloos.com/2725957</guid>
	<description>
	<![CDATA[ 
<img 
				src="http://thumb.egloos.net/76x100/http://pds21.egloos.com/pds/201103/06/62/e0036962_4d7346e13c127.png"  
				alt="프로세스 간 통신(Inter Process Communicatio.." 
				width="76px"  
				height="100pxpx"
				align="left"
				style="border:1px solid #DDDDDD;margin:0 10px 10px 0px;"
				/> 1. 공유 메모리(Shared Memory)  - 프로세스들이 특정 메모리 영역을 공유. 이 공간을 이용해서 통신을 수행. (공유 메모리를 이용한 통신에서도 메모리 영역에 대한 동기화를 제공하지 않으므로 이부분은 챙겨줘야함)- 공유 메모리 시스템 호출int shmget(key_t key, size_t size, int shmflg);   // key: 공유하는 키값, size:크기, shmflg:생성 및 접근 플래그.: 성공하면 양의 정수, 실패 시 -1 리턴shmget()시스템 호출을 통해 물리적 메모리에 공유 메모리 영역을 생성했다면(혹은 기존에 생성된 공유메모리 정보를 얻어왔다면)프로세스 내부 가상 메모리와 연결 시켜줘야 함.void* shmat(int smId, const void* shm_addr,	]]>
	</description>
	<pubDate>Sun, 06 Mar 2011 18:22:01 +0900</pubDate>
	<dc:creator><![CDATA[인생은 속도가 아니라 방향이다]]></dc:creator>
</item>
<item>
	<title><![CDATA[파이프(Pipe) IPC 통신 소스]]></title>
	<link>http://dakuo.egloos.com/1120102</link>
	<guid>http://dakuo.egloos.com/1120102</guid>
	<description>
	<![CDATA[ 
/*             이름없는 파이프(Anonymous Pipe) */  #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;tchar.h&amp;gt; #include &amp;lt;windows.h&amp;gt;  INT_PTR _tmain(INT_PTR argc, TCHAR *argv[]) {             HANDLE hReadPipe, hWritePipe;                          TCHAR sendString[] = _T(&quot;Anonymous Pipe&quot;);             TCHAR recvString[100] = {0};              ULONG_PTR bytesWritten;             ULONG_PTR bytesRead;            	]]>
	</description>
	<pubDate>Sat, 20 Nov 2010 07:06:30 +0900</pubDate>
	<dc:creator><![CDATA[dakuo]]></dc:creator>
</item>
<item>
	<title><![CDATA[메일슬롯(MailSlot) IPC 통신 소스]]></title>
	<link>http://dakuo.egloos.com/1120098</link>
	<guid>http://dakuo.egloos.com/1120098</guid>
	<description>
	<![CDATA[ 
/*             MailRecevier */  #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;tchar.h&amp;gt; #include &amp;lt;windows.h&amp;gt;#define SLOT_NAME _T(&quot;\\\\.\\mailslot\\mailbox&quot;)INT_PTR _tmain(INT_PTR argc, TCHAR *argv[]) {          HANDLE hMailSlot;          TCHAR messageBox[50];          ULONG_PTR bytesRead;            //DWORD         hMailSlot = CreateMailslot(SLOT_NAME, 0, MAILSLOT_WAIT_FOREVER, NULL);    // mailsl	]]>
	</description>
	<pubDate>Sat, 20 Nov 2010 06:58:47 +0900</pubDate>
	<dc:creator><![CDATA[dakuo]]></dc:creator>
</item>
<item>
	<title><![CDATA[프로세스간 통신(IPC) - 파이프(Pipe)]]></title>
	<link>http://dakuo.egloos.com/1118504</link>
	<guid>http://dakuo.egloos.com/1118504</guid>
	<description>
	<![CDATA[ 
이름없는 파이프(Anonymous Pipe) :  단방향 통신방식이며, 파이프를 통해서 생성된 핸들을 기반으로 통신하기에 프로세스들 사이에 관계가 있어야 한다.  BOOL CreatePipe(           PHANDLE hReadPipe,     // 데이터를 읽기 위한 파이프 끝 핸들           PHANDLE hWritePipe,     // 데이터를 쓰기 위한 파이프 끝 핸들           LPSECURITY_ATTRIBUTES lpPipeAttributtes, // 보안 정보           DWORD nSize                // 파이프의 버퍼 사이즈 );  (참고 : 파이프는 두 개의 끝을 가지고 있다. 한쪽 끝에는 데이터가 들어가고 다른 한쪽에서는 들어간 데이터가 흘	]]>
	</description>
	<pubDate>Fri, 19 Nov 2010 22:26:37 +0900</pubDate>
	<dc:creator><![CDATA[dakuo]]></dc:creator>
</item>
<item>
	<title><![CDATA[프로세스간 통신(IPC) - 메일 슬롯(MailSlot)]]></title>
	<link>http://dakuo.egloos.com/1118480</link>
	<guid>http://dakuo.egloos.com/1118480</guid>
	<description>
	<![CDATA[ 
IPC (Inter-Process Communication) : 프로세스 사이의 통신   메일 슬롯(Mail Slot)의 원리 :  프로세스는 자신에게 할당된 메모리 공간 이외에는 접근할 수가 없다.  따라서 Mail Slot (우체통)을 이용하여 데이터를 송·수신한다.  데이터를 수신하고자 하는 프로세스 A(Receiver)가 Mail Slot 을 생성한다.  데이터를 송신하고자 하는 프로세스 B(Sender)가 프로세스 A의 Mail Slot 의 주소로 데이터를 송신한다.  프로세스 A가 자신의 Mail Slot 을 통해 데이터를 얻게 된다.    메일 슬롯(Mail Slot) 구성 :  Recevier :  Mail Slot 를 생성한다.  HANDLE CreateMailslot(       LPCTS	]]>
	</description>
	<pubDate>Fri, 19 Nov 2010 22:21:08 +0900</pubDate>
	<dc:creator><![CDATA[dakuo]]></dc:creator>
</item>
<item>
	<title><![CDATA[Dell Inspiron 630m 에 MacOS 설치]]></title>
	<link>http://naghgus86.egloos.com/2450563</link>
	<guid>http://naghgus86.egloos.com/2450563</guid>
	<description>
	<![CDATA[ 
요즘은 좋은 배포본이 많이 나온 관계로 넷북이나 일반 노트북에도 MacOS를 많이 깔아서 해킨토시로 쓰는  사람들이 많습니다. 저도 전에 MSI U100에 해킨토시를 깔았던 기억이 새록새록합니다. 그때 당시엔 완벽한  레시피?!가 외국 사이트에 있었기 때문에 아주 편하게 깔았지만 이번엔 완전 모험이었습니다. 약 20번 재설치  끝에 설치가 되긴 했지만 제대로 뭔가는 할 수 없었습니다. 우선적으로 자기 컴퓨터의 사양을 아는 것이 제일  중요하지 않을까 싶습니다. 뭐 이쯤하고... 제가 썼던 배포본은   ipc 10.5.6 intel &amp;amp; AMD SSE2 입니다. 뭐 분명 받을 때는 ipc universal 10.5.6 PFF5 final 이라고 받았는데   막상 실행하니 그건 아닌듯?!;; 개인적인 생각	]]>
	</description>
	<pubDate>Fri, 16 Oct 2009 14:11:14 +0900</pubDate>
	<dc:creator><![CDATA[Santago's strong blog]]></dc:creator>
</item>
<item>
	<title><![CDATA[간단하지만 꼭 알아야 하는 Android 주요 내용들 2 - AIDL (2) ]]></title>
	<link>http://jindog.egloos.com/4240143</link>
	<guid>http://jindog.egloos.com/4240143</guid>
	<description>
	<![CDATA[ 
  (아래의 내용은 Professional Android Application Development에서 무단으로 발췌한 내용입니다.)   AIDL을 구현하려면(해 주려면?) 아래와 같은 단계를 거치면 된다.   A. 주고 받을 객체 만들기   1. 보내야 할 화물 객체를 정의하자. (즉 Parcelable을 구현하도록 수정)   public class Quake implements Parcelable    2. 이 interface에 딸린 3가지 함수를 구현   public void writeToParcel(Parcel out, int flags);  public static final Parcelable.Creater&amp;lt; Quake &amp;gt; Create = 	new Parcelable.Creater&amp;l	]]>
	</description>
	<pubDate>Tue, 22 Sep 2009 12:30:00 +0900</pubDate>
	<dc:creator><![CDATA[진도의 삽질 월드!]]></dc:creator>
</item>
<item>
	<title><![CDATA[간단하지만 꼭 알아야 하는 Android 주요 내용들 2 - AIDL (1)]]></title>
	<link>http://jindog.egloos.com/4240086</link>
	<guid>http://jindog.egloos.com/4240086</guid>
	<description>
	<![CDATA[ 
이미 많은 OS를 두루 거쳐온 사람이라면 IDL에 대해서 잘 알고 있어야 한댄다. 한데 난 모르잖아? 아마 난 안될...;;;   (나는 사실 프로세스간 호출이라는 것도 안지 1년이 채 안된듯 -o-;;;; OS 시간에 잤고, System Programming 시간에도 .. orz)   모르면 하나하나 알면되지 뭐...;;;쥐뿔도 모르면서 나름대로 요약.   AIDL이란 Android에서 IPC를 지원하기 위한, 안드로이드 인터페이스 정의 언어다. (Android Interface Definition Language) 프로세스 간 객체 전달은 OS-Level primitive로 객체를 쪼개야 한다. 무슨 말인고 하니, 프로세스 간에는 내가 정의한 객체가 넘어갈 수 없고 Primitive로 해체했다가 다시 조	]]>
	</description>
	<pubDate>Tue, 22 Sep 2009 10:43:12 +0900</pubDate>
	<dc:creator><![CDATA[진도의 삽질 월드!]]></dc:creator>
</item>
<item>
	<title><![CDATA[POSIX messagequeue]]></title>
	<link>http://purewell.egloos.com/3991234</link>
	<guid>http://purewell.egloos.com/3991234</guid>
	<description>
	<![CDATA[ 
POSIX IPC에서 마지막-IPC는 이것 외에도 많다-으로 소개할 녀석은 메시지큐이다. 간략히 뭐하는 녀석인지 설명하자면, '우선순위가 있는 줄서기'랄까? 일단 Queue라는 말에서 이 녀석은 기본으로 먼저 던져넣은 메시지를 먼저 꺼내올 수 있다. 근데 가끔씩 긴급해 보내야할 메시지가 있을 수도 있을까...해서 메시지에 우선순위를 둘 수 있다. 그래서 때에 따라 우선순위가 높은 녀석이 나중에 큐에 들어갔는데도 먼저 나올 수 있다. 뭐 이런 녀석이다.    이 역시 SysV에서 뛰쳐나온 녀석이라서 SysV용 API가 있다. msgget으로 메시지큐 핸들을 얻어내어, msgsnd/msgrcv 등으로 적당히 메시지를 던지고 받을 수 있다. 이때 우선순위는 정수형으로 줄 수 있다. 다 사용한 메시지큐는 msgct	]]>
	</description>
	<pubDate>Tue, 25 Nov 2008 13:12:10 +0900</pubDate>
	<dc:creator><![CDATA[Purewell.BIZ]]></dc:creator>
</item>
<item>
	<title><![CDATA[POSIX semaphore]]></title>
	<link>http://purewell.egloos.com/3945459</link>
	<guid>http://purewell.egloos.com/3945459</guid>
	<description>
	<![CDATA[ 
POSIX 함수에 대해 글 쓴 지가 너무 오래 전이라 까맣게 잊고 있었다. 오늘은 두서 없이 세마포어라는 놈을 건들여보도록 하자. 일단 세마포어 하면 유명한 예제가 있다. 철학자라는 것들이 가서 포크랑 나이프랑 한 벌 씩 더 가져오면 해결할 수 있는 문제를 굳이 앉아서 남이 썼던 것 더럽게 씻지도 않고 빌려쓰고... 암튼 그런 드러운 문제를 해결하기 위해 세마포어가 탄생했다...라고 하는데 드럽긴 마찬가지고 좀 그렇다. 세마포어 개념은 안드로메다 같은 곳에서 찾아보길 바란다. 그래도 귀찮은 사람은 세마포어를 들어갈 수 있는 사람 수를 한정한 매점(PX?)이라고 생각해도 좋을 것이다. '세마포어 값'은 매장에 들어갈 수 있는 사람 수 여분을 뜻한다.    일단 세마포어도 SysV에서 뛰쳐나온 IPC개념인데, 	]]>
	</description>
	<pubDate>Fri, 17 Oct 2008 14:19:35 +0900</pubDate>
	<dc:creator><![CDATA[Purewell.BIZ]]></dc:creator>
</item>
<item>
	<title><![CDATA[국제특허분류 클러스터링을 이용한 특허 검색 시스템 -논문 정리]]></title>
	<link>http://skyforce.egloos.com/1807678</link>
	<guid>http://skyforce.egloos.com/1807678</guid>
	<description>
	<![CDATA[ 
<img 
				src="http://thumb.egloos.net/100x76/http://pds12.egloos.com/pds/200809/08/56/a0011556_48c4adc7b2574_t.jpg"  
				alt="국제특허분류 클러스터링을 이용한 특허 검색 시스.." 
				width="100px"  
				height="76pxpx"
				align="left"
				style="border:1px solid #DDDDDD;margin:0 10px 10px 0px;"
				/>     논문 : 	]]>
	</description>
	<pubDate>Mon, 08 Sep 2008 13:49:43 +0900</pubDate>
	<dc:creator><![CDATA[NOW or NEVER]]></dc:creator>
</item>
<item>
	<title><![CDATA[[솔라리스] System V IPC 구성]]></title>
	<link>http://shad0w.egloos.com/778215</link>
	<guid>http://shad0w.egloos.com/778215</guid>
	<description>
	<![CDATA[ 
 EtherNet/IP 프로젝트를 진행하면서 SPARC Solaris 5.10 에서 공유 메모리를 사용하게 되었다. 기존에 Windows 에서는 공유 메모리 Key 제약도 char* 형태로 받아서 문제없이 진행되었지만 shmget 같은 경우는 key_t 형태로 Key 를 받기 때문에 기존에 char* 형태의 Key로  유일무일한 key_t 타입으로 변경하기엔 쉽지 않았다. 물론 이것만 보면 가능하겠지만 우리 프로젝트에서는 좀 더 많은 제약사항이 있었기에 힘들었다는 것이다.  이 문제를 해결하고, 당면한 문제는 Solaris 5.10 에서 공유 메모리 할당 받는 부분에서 Segmentation Fault 에러가 난 것이다. Debugging 을 통해서 공유 메모리를 할당받은 것을 memset 하는 부분에서 나	]]>
	</description>
	<pubDate>Tue, 02 Sep 2008 05:30:40 +0900</pubDate>
	<dc:creator><![CDATA[Always as First]]></dc:creator>
</item>
	</channel>
</rss>

