[t:/]$ 지식_

Linux의 fprintf는 thread safety를 보장한다.

2016/12/21

그냥 man 페이지에 나와있다. 스택 오버 플로 같은데 보면 윈도우는 쓰레드 안전을 보장하지 않는 것 같다.

나능 당연히 안 된다고 생각했는데, 생각외로 쓰레드 안전하댄다. 어제 코드 리뷰에서 이거 멀티 쓰레드 문제 있는데? 하고 보니 문제가 없다. 물론 그 코드의 작성자는 멀티 쓰레드 생각을 안 하고 짜셨음.. -_-; (멀티 프로세스 모델임)

그렇다면 블록 디바이스 드라이버와 fsync, 캐싱 관계를 좀 생각해 봐야 할 것 같다. (쳐다본지 오래되서 내용이 잘 기억나지 않는다). 이를테면 메모리에 의한 큐잉으로 크리티컬 섹션을 잡고, 그냥 외부 프로세스에서 파이프로 잡아 넘기는 것이 빠를 수 있겠다. 만약 버퍼링의 마진이 작다면 스토리지 동기화 하는 동안 락에 빠져있을 수 있으며 성능 저하로 이어질 가능성이 있다. 버퍼링 마진이 크거나, 락 구간의 비동기적 매커니즘이 잘 구현되어 있다면 대충 써도 성능 저하는 없을 것 같다.









[t:/] is not "technology - root". dawnsea, rss