<?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>이글루스 '세마포어' 태그 최근글</title>
		<link>http://valley.egloos.com/tag/세마포어</link>
		<description>세마포어</description>
		<language>ko</language>
		<pubDate>Wed, 13 Apr 2011 16:29:15 +0900</pubDate>
		<generator>Egloos</generator>
		<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[동기화(System V 세마포어 중심)]]></title>
	<link>http://avata007.egloos.com/2728821</link>
	<guid>http://avata007.egloos.com/2728821</guid>
	<description>
	<![CDATA[ 
목표- 세마포어를 이용해서 프로세스(스레드) 간의 협업에서 발생하는 동기화 문제를 해결하는 방법을 학습. 임계구역(Critical Section)문제- 두 개 이상의 프로세스가 공유자원에 접근하고 할 때 발생할 수 있는 문제예) 두 개의 프로세스가 4바이트의 정수가 저장된 메모리 세그먼트를 공유한다고 할 때, 이 값을 v라고 하자. 프로세스 1(P1)과 프로세스2(P2)는 아래 코드라인을 접근한다. 	if ( 0 &amp;lt; v )	   v--; 이 코드는 임계 구역이 될 수 있다. 각 프로세스는 다른 프로세스의 방해없이 코드라인을 접근 할 수 있기 때문이다.과정을 정리해보면,v값이 1이다.P1이 0 &amp;lt; v 를 검사한다. 결과는 참이다.P1이 CPU에 의해서 제거되고 P2로 대체된다.P2가 0 &amp;lt; v	]]>
	</description>
	<pubDate>Sun, 13 Mar 2011 22:18:30 +0900</pubDate>
	<dc:creator><![CDATA[인생은 속도가 아니라 방향이다]]></dc:creator>
</item>
<item>
	<title><![CDATA[쓰레드(Thread) 동기화 예제 소스]]></title>
	<link>http://dakuo.egloos.com/1122158</link>
	<guid>http://dakuo.egloos.com/1122158</guid>
	<description>
	<![CDATA[ 
메모리 접근 동기화 :  1. 크리티컬 섹션(Critical Section) 기반의 동기화 - 유저 모드   Critical_SectionEx.cpp 2. 인터락 함수(Interlocked Family Of Function) 기반의 동기화 - 유저 모드   interlockedEx.cpp 3. 뮤텍스(Mutex) 기반의 동기화 - 커널 모드   MutexEx.cpp 4. 세마포어(Semaphore) 기반의 동기화 - 커널 모드   SemaphoreEx.cpp 5. 이름있는 뮤텍스(Named Mutex) 기반의 프로세스 동기화 - 커널 모드   NamedMutexEx.cpp    실행 순서의 동기화 :  1. 이벤트 기반의 동기화   EventEx.cpp 2. 이벤트 + 뮤텍스 동기화   EventMutexE	]]>
	</description>
	<pubDate>Sun, 21 Nov 2010 00:11:52 +0900</pubDate>
	<dc:creator><![CDATA[dakuo]]></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://handmade.egloos.com/4074857</link>
	<guid>http://handmade.egloos.com/4074857</guid>
	<description>
	<![CDATA[ 
이색퀴들이 뭐가 다른지 알아보려고 적으려다가 결판을 못낸...    이놈의 뮤텍스와 세마포어는 뭐가 다른가!    lkd&amp;gt; dt _KMUTANT  nt!_KMUTANT     +0x000 Header           : _DISPATCHER_HEADER     +0x010 MutantListEntry  : _LIST_ENTRY     +0x018 OwnerThread      : Ptr32 _KTHREAD     +0x01c Abandoned        : UChar     +0x01d ApcDisable       : UChar      lkd&amp;gt; dt _KSEMAPHORE  nt!_KSEMAPHORE     +0x000 Header           : _DISPATCHER_HEADER   	]]>
	</description>
	<pubDate>Thu, 10 Jan 2008 21:22:19 +0900</pubDate>
	<dc:creator><![CDATA[獨手工房]]></dc:creator>
</item>
	</channel>
</rss>

