태그>synchronization(총 16개의 글)
'synchronization' 관련 최근글
-
- [Groovy] 동기화는 @Synchronized
-
Sigel's house made of ice 。。。 by Sigel|2012/10/27 14:48
Java는 동기화를 위해 메소드에 synchronized 키워드를 사용한다. Java의 동기화는 객체를 기반으로 하고, Groovy도 java를 기반으로 하기 때문에 큰 틀은 다르지 않다. 메소드에 synchronized를 붙였지만 서로 다른 객체는 동시에 그 메소드를 실행할 수 있다는 얘기다..
- [Groovy] 동기화는 @Synchronized
-
- [Linux] ACCESS_ONCE()와 volatile
-
F/OSS study by namhyung|2012/08/12 01:22
예전부터 ACCESS_ONCE() 매크로의 용법에 대해 풀리지 않는 의문이 있었는데 이번에 LWN에서 이를 해결해 주었기에 여기에 공유하고자 한다. 먼저 ACCESS_ONCE 매크로의 정의는 다음과 같다. include/linux/compiler.h:∕* * Prevent the compiler from merging or..
- [Linux] ACCESS_ONCE()와 volatile
-
- Dekker's Algorithm (3)
-
F/OSS study by namhyung|2010/12/22 21:58
이전 글 보기: Dekker's Algorithm (1)Dekker's Algorithm (2) 마지막으로 Dekker의 알고리즘을 3개 이상의 멀티 스레드 환경에서도 적용가능하도록 일반화시킨 알고리즘을 살펴보기로 한다. 여기서 살펴볼 알고리즘은 Alain J. Martin이 1985년 논문 (아래 참고)에서 제시..
- Dekker's Algorithm (3)
-
- Dekker's Algorithm (2)
-
F/OSS study by namhyung|2010/12/22 16:33
이전 글 보기: Dekker's Algorithm (1) 앞서 글에서 밝힌 대로 이번에는 컴파일러의 최적화에 의해 이전의 예제 프로그램이 어떠한 영향을 받는지 살펴볼 것이다. 우선 앞의 글에서 작성한 예제 프로그램을 최적화 옵션을 켠 후에 다시 컴파일 해 보자. $ gcc -O2 -o dekker-op..
- Dekker's Algorithm (2)
-
- Dekker's Algorithm (1)
-
F/OSS study by namhyung|2010/12/22 00:54
이 알고리즘은 Theodorus J. Dekker가 병렬 프로그래밍 시의 동기화 문제를 해결하기 위해 만든 것으로 하드웨어 수준에서 제공하는 atomic operation 없이 (공유) 메모리 연산만을 이용하여 spin lock을 구현한 것이다. 기본적인 알고리즘은 다음과 같이 2개의 CPU에서..
- Dekker's Algorithm (1)
-
- InterlockedExchangeAdd 를 접하다
-
기억속으로 날다 by 강세윤|2010/09/13 18:04
스레드 동기화와 관련해서 CriticalSection 이나 Mutex 는 상당히 많이 알려지고 사용되는 데 반해서 InterlockedXXX 와 같은 API에 대해서는 많이 사용하지 않는 듯 하다. 서적을 참고하더라도 Kernel 기반의 개발관련 서적에서는 반드시 언급되는 스레드 동기화 API임에도 Us..
- InterlockedExchangeAdd 를 접하다
-
- [Linux] per-CPU 메모리 관리 (2)
-
F/OSS study by namhyung|2010/08/13 01:06
Linux: 2.6.35 arch: x86_64 이전 글 보기: [Linux] per-CPU 메모리 관리 (1) 이번에는 실제로 percpu 영역이 어떻게 할당되고 관리되는지를 살펴보기로 한다. 2.6.30 버전에서부터 동적 percpu 영역의 할당과 정적 percpu 영역의 할당 방식이 통합되어 동일한 인터페이스..
- [Linux] per-CPU 메모리 관리 (2)
-
- [Linux] per-CPU 메모리 관리 (1)
-
F/OSS study by namhyung|2010/08/09 23:05
Linux: 2.6.35 arch: x86_64 per-CPU (이하 percpu) 영역은 커널의 메모리 관리 기법 중의 하나로 각 CPU 별로 따라 사용하는 데이터들을 완전히 분리하여 lock과 같은 동기화를 통하지 않고도 안전하고 빠르게 데이터에 접근하기 위한 기법이다. 다만 동일한 CPU 내에서는 ..
- [Linux] per-CPU 메모리 관리 (1)
-
- [Linux] lockdep: 런타임 락 의존성 검사
-
F/OSS study by namhyung|2010/06/21 17:14
Linux : 2.6.34 lockdep는 커널이 사용하는 여러 lock, mutex, semaphore 등의 의존성을 검사하여 잘못된 사용으로 인한 버그 혹은 dead-lock 등을 잡아내기 위한 디버깅 루틴이다. 커널 설정 시 'kernel hacking -> Lock debugging: prove locking correc..
- [Linux] lockdep: 런타임 락 의존성 검사
-
- [Linux] ticket spin lock
-
F/OSS study by namhyung|2009/10/17 19:27
Linux: 2.6.30 arch: x86 spin lock은 mutiprocessor system에서 여러 processor가 동시에 critical section에 진입하지 못하도록 하는 synchronization 기법이다. 한 processor가 lock을 가지고 있으면 다른 processor들은 unlock될 때까지 busy-wait하다가 l..
- [Linux] ticket spin lock
-
- [Linux] 최적화 장벽?
-
F/OSS study by namhyung|2009/10/01 14:55
linux : 2.6.30 arch : x86 gcc : 4.3.3 '리눅스 커널의 이해'라는 책에 보면 커널 동기화 기법 중에 최적화 장벽 (optimization barrier)과 메모리 장벽(memory barrier)에 대해서 설명하는 부분이 있는데 약간 모호한 부분이 있어서 확실히 정리해 둔다. 일단 이러한 barrier는..
- [Linux] 최적화 장벽?