티스토리 뷰
1. 유저 모드 동기화 vs 커널 모드 동기화
- 유저 모드는 시스템콜을 하지 않기 때문에 성능이 좋음. 다만 기능 제한
- 커널 모드 동기화는 시스템콜을 하기 때문에 상대적으로 불리. 다만 유저모드에서 사용하지 못하는 기능 사용 가능
1. 유저모드 동기화
- Critical Section : 원하는 영역을 Enter Leave로 잠금
- Interlocked : 전역으로 생성된 단 하나의 변수를 ++ 하거나 -- 하는 것이라면 동기화는 이게 더 낫다.
단 한줄로 동기화가 가능하기 때문
LONG interlockedIncrement(LONG volatile* 변수)
LONG interlockedDecrement(LONG volatile* 변수)
다른 인터락 함수도 있음 MSDN https://docs.microsoft.com/en-us/windows/desktop/sync/interlocked-variable-access
*volatile : 최적화 하지마라(코드 축소하지 말고 그대로 읽어라) , 캐쉬 거치지 말고 그냥 메모리에 직접 연산해라
2. 커널 모드 동기화
- mutex : 크리티컬 섹션과 비슷한거 같다.
- 세마포어 : 뮤텍스와 다르게 count 기능이 있음. count만큼의 스레드 접근을 허용한다. count가 1이면 뮤텍스다.
음.. 뮤텍스 말고는 거의 쓸일이 없을거 같다. 서버 분야에서는...
- Event
'운영체제' 카테고리의 다른 글
window 문자와 문자열 (0) | 2019.06.07 |
---|---|
메모리에 관한 이야기 (0) | 2019.04.28 |
thread 정리 (0) | 2019.04.22 |
커널 오브젝트 , 핸들 (0) | 2019.04.21 |
프로세스 정리 (1) | 2019.04.20 |