|
1. ClearType + HyperThreading 이 버그를 처음 겪은 때는 벌써 4년 전인, 2003년 여름이었다. 그 당시 하이퍼스레딩이 지원된 펜티엄 2.4c를 구입하였는데, 이유 없이 윈도우 XP가 다운이 되었다. 요상한 것은 다운이 되었는데도 흘러나오던 mp3는 계속 나왔다는 사실, 다운이 되어있을 때 외부에서 내 컴퓨터로 원격데스크탑을 붙어도 접속이 된다는 사실! 정말 이상한 문제였다. 파코즈에도 이 문제를 알렸으나 제대로 된 답변을 볼 수 없었다. 메인보드는 ASUS P4P800 이었는데 메인보드의 문제인 줄 알고 다른 메인보드를 꼽아보아도, 오버클럭을 풀어도 계속 되는 다운… 2003년 7월 15일에 쓴 삽질 글: 링크.
그 당시는 구글링을 하지 않아서 외국의 사례를 알지 못 하였다. 정말 도저히 원인을 찾을 수가 없었다. 그러다 기가 막히게 원인을 찾아낼 수 있었다. 회사에서 종종 집으로 접속해서 컴퓨터를 많이 만졌는데, 그 때는 절대로 다운이 되지 않는다는 사실이었다. 그런데 원격 데스크탑을 쓰면 글씨체가 다르다는 것이 갑자기 눈에 보였고 머리 속으로 ClearType이 스쳐지나 갔다. 집에 가서 ClearType을 끄고 컴퓨터를 사용해보니 이 이후로는 다운이 절대 되지 않았던 것이다. 이 사실을 발견한 때가 2003년 8월 9일. 파코즈 오버클럭 가이드란에도 알렸지만 역시 이런 삽질을 하는 사람은 나 밖에 없었는지 그냥 조용히 묻힌다. 그리고 나는 결국 ClearType을 쓰지 않았다. 참고 글: 링크.
그렇게 나는 이 문제를 잊어버렸고, 세월이 흘러 흘러.. 2년 뒤, 파코즈에서 이런 글을 보게 된다! 2005년 5월 28일. 3217 [참고] 하이퍼쓰레딩 + 클리어타입 폰트 = 컴퓨터 다운 드디어, 내가 겪은 문제와 완전히 똑 같은 사람 거의 2년 만에 만나게 된 것이었다. 그리고 마이크로소프트 홈페이지에도 이 문제가 공식적으로 뜬다. Intel Dual Core 에서 Windows XP 시스템 멈춤 현상에 대한 안내 그리고 결국 이 문제를 해결한 Hotfix를 찾게 된다: 링크. 이 핫픽스가 정확하게 언제 발표 되었는지는 모르겠다. 그러나 내 컴퓨터에 저장되어있는 핫픽스 파일의 날짜가 2006년 7월인 걸로 보면, 그렇게 오래 전에 나온 것은 아니었다. 이상하게 영문 자료는 없고 한글 사용자들에만 겪는 문제인 것 같았다. 결국 이 문제는 해결이 되었다: 2006년 7월 2일. 7257 [프로그램] 클리어타입(Cleartype)/듀얼코어orHT 관련 프리징 현상 해결 패치 지금 구글로 여기에 관한 문제를 검색해보면 많은 블로그에 이 문제를 언급하고 있음을 알 수 있다. 문제는 대부분 05, 06년에 작성된 글이라는 것. 아… HyperThread + ClearType을 2003년부터 쓴 대가는 이렇게 컸었다… 2. 고급텍스트도구의 문제 이 문제는 내 기억이 맞는다면 2001년 말, XP를 처음 쓸 때부터 겪었다. Windows XP에는 Windows 2000과는 달리 [A가韓]와 같은 귀찮은 작은 아이콘들을 감출 수가 있었다. 이것은 고급텍스트서비스라는 기능으로 제공이 되었다. 그러나 이 당시 아주 황당한 버그를 겪었는데, Visual Studio에서 멀티스레드 프로그램을 디버깅할 때, 완전히 시스템 화면 업데이트가 얼어붙는 문제가 있었다. 완벽한 시스템 멈춤은 아니고 어떻게 잘 힘겹게 노력하면 다시 살릴 수 있긴 했다. 특히 브레이크 포인트가 스레드 넘어서 왔다 갔다 하면, 10에 2~3번 꼴로 시스템이 거의 멈춘다.
역시 이 문제는 해결책을 모르고 아주 고생고생 하였다. 급할 때는 그냥 Windows 2000에서 계속 작업을 하는 수 밖에 없었다. 2003년 1월부터는 멀티스레딩 프로그램을 당분 간 짤 일이 없어 이 문제를 잊고 있었다. 그 밖에, 작업줄의 각종 속성 (작업줄 자동 보이기 등)을 다이얼로그 박스에서 바꾸고 확인 버튼을 누르면 아주 긴 딜레이가 생기는 문제도 있었다. 또, Alt+Tab으로 창을 움직 바꾸면 윈도우 탐색기 내부 영역의 페인팅이 약간 딜레이가 벌어지는 것도 볼 수 있었다. 이 중, 작업줄 딜레이 문제의 원인이 고급텍스트 서비스, 혹은 ctfmon.exe라는 문제점이라는 사실을 발견한다. 결국, 이 모든 문제가 고급텍스트 서비스 때문에 벌어진 것이었다. 디버깅도 문제 없이 잘 되었다. 까짓 것 딜레이 정도는 봐줄 수 있다고 치자. 그런데 멀티 스레딩 중에 디버깅은 정말 아주 치명적이었던 것이었다. 아마도 창이 activation이 되면 IME 관련 모듈이 여러 메시지를 받아서 처리를 할 때, mutex관련 문제가 생겨 다운이 된 것 같다. 예를 들어, 이 문제로 디버깅 중 잠시 다운이 되다시피 할 땐, 하나만 떠야 할 작업 관리자가 여러 개 뜸을 알 수 있다. 즉, 어딘가 뮤텍스 같은 자원 처리를 잘못해 일종의 deadlock이 벌어진 것으로 추측만 해 본다 (여러 프로그램을 뜨는 것을 막는 건 주로 뮤텍스 등으로 처리한다). 놀랍게도 지금 검색을 좀 해봤는데 관련 자료를 찾을 수 있었다 -_-; SNAIPER의 조그마한 블로그: VC Debugger가 쓰레드 디버깅 시에 hang되는 문제에 대한 설명 자료 비스타에서는 다행히 이런 문제는 없다. 고급텍스트서비스도 사라졌으며 이러한 문제는 겪을 수 없었다. 3. 최대절전모드 문제 최대절전문제는 지금 비스타에서도 겪고 있는 문제라 할 말이 많다. 아무래도 전원 관리는 하드웨어 특성을 많이 타니 참 어려운 부분인 것은 인정한다. XP 시절, 메모리를 1GB로 업글을 하고 최대절전을 시켜본다. 그러면 아래 그림과 같이 오류를 내며 최대절전이 실패가 된다. 더욱 암울한 것은 최대절전 모드가 아예 비활성이 되고 재부팅을 해야만 한다.
이 문제는 이미 예전부터 있었으나 한번 MS에서 발표한 핫픽스로 제대로 해결이 되었다. 그러나, 메모리를 2GB로 업그레이드를 하고 나니 또 이런 문제가 생겼다. 메모리 2GB 업글은 2005년 여름 즈음에 하였다. 그러나 이 최대절전 문제로 결국 다시 메모리를 팔아 치울 수 밖에 없었다. 이 문제를 해결하기 위해 역시 갖은 삽질을 한다. 구글링을 해보니 이번에는 이런 문제로 고생하는 사람이 꽤 있었다. 나름 해법으로는 하이버네이션 파일이 조각나서 그럴 수 있다 하여, 조각 모음을 몇번이나 다시 해보았다. 또, 메모리 단편화가 너무 심해서 그렇다고 하여 또 프로그램을 다운 받아 해보았으나 계속되는 실패. 결국, 2006년 2월 드디어 핫픽스를 받을 수 있게 되었다. 그리고 직접 파코즈에 이 사실을 알린다: 2006년 2월 18일. 6148 [운영체제] 1GB초과에서 Windows XP 최대절전모드 문제 쓰고 보니 정말 눈물이 앞을 가린다. 내가 미련 없이 XP에서 바로 비스타로 옮겨왔던 것도 저 많은 삽질 때문이 아니었을까.. 다행히 비스타에서는 지금 최대절전문제 말고는 특별히 문제가 없다. HP 프린터 드라이버가 좀 짜증스럽지만 이건 비스타 잘못이 아니니 넘어가고. 어쨌든 사람들이 무턱대고 비스타 느리고 버그 많다는 식으로 말을 하는데, 정말 써보고 하는 소린지 진짜로 궁금하다. 지금 다시 XP쓰라면 절대 못 쓸 거 같다.
최근 등록된 덧글
개발자 입장에서의 수많은 ..
by Jiyoon at 02/04 저도 아들 돌잔치때 돌잡이 .. by 박상욱 at 01/18 미국 대학원 원서 작성중에 p.. by 태클사이야 at 01/13 TO: 박PD 로그인 하지 않아.. by 박응용 at 01/10 http://gigglehd.com/zbx.. by dhunter at 12/28 우와.. 좋네요. 태반이 .. by 윤광배 at 12/17 항상 좋은 글 잘 보고 있습니.. by y2k at 11/23 글이 좋아서 제 블로그에 담.. by 쏭섭 at 11/23 최근 등록된 트랙백
메뉴릿
이글루 파인더
|