티스토리 뷰

Software/Windows

동기화 개체

2010. 4. 30. 16:31
윈도우 드라이버 작성할 때에 꼭 동기화 개체 이야기가 나온다.
물론 락이 아예 필요없는 구조로 가는게 더 좋은 방법이지만...
멀티 스레드 기반이니, 동기화 개체를 안 쓸래야 안 쓸 수도 없어 보이기도 하다(^^)

lock-free, wait-free 등을 쓰고 싶으나, 일반 구현은 CAS 명령어에 의존하는 형편이다.
하지만, 64비트에서는 인라인 어셈을 원초적으로 거부하는 형식이라, 외부 어셈을 달아 써야 한다.
글구 너무 플랫폼에 종속이 되버린다.
완전히 알고리즘적으로 해결한 경우는 못 찾아서 내부적인 자료구조임에도 불구하고 계속 동기화 개체를 찾아 써야 하는 상황이다.
STM 등을 고려해 볼까 했는데, 마음만 바쁘다.

암튼...다음은 윈도우 비스타 기준으로 나온 동기화 개체 일람이다.


락 프리가 되면 내 드라이버를 엄청나게 느려지게 만드는 KeEnterCriticalRegion 따위는 안 써도 될 텐데...


댓글