목록구라 (2)
이쁜왕자 만쉐~~
파일로 부터 정보를 읽은 뒤,, 이를 가공해서 출력해 주는 루틴이 있다.. 그런데,, 장비가 부팅된 뒤 처음 이 정보를 읽으면 정상적으로 정보가 읽히지 않는다.. 첫번째 읽을때는 안되지만,, 두번째 부터는 언제 그랬냐는 듯 제대로 정보가 출력된다.. 아무리 디버깅 해봐도,, 도대체 이유를 알 수가 없다.. 별수 있나?? 이럴때 필요한 게 Plan B 이다.. 장비가 부팅된 뒤 무조건 한번 읽는 루틴을 추가 했다.. 하지만,, 이 방법은 실패 했다.. 추정컨데,, 장비가 부팅된 뒤,, 어느정도 시간이 흐른뒤 정보를 읽어야 하는듯 싶다.. Plan B 에 디버깅 따위는 없다.. 그래서,, Plan C 를 적용했다.. 사용자 명령에 의해서 읽을때,, 파일로 부터 정보 읽는 걸 2번 반복하도록 수정했다.. 다행..
매 5초마다 통계값을 읽은 뒤, 이 값을 5로 나눠서, 초당 평균값으로 사용한다.. Timer thread 는 비교적 정확히 5초마다 event 를 발생시켜 준다.. 하지만,, 느려터진 CPU 는 다른 프로세스에게 발목 잡혀 한참 뒤에서 통계 처리를 수행한다.. 이 덕분에 초당 평균값을 실제값보다 높게 나온다.. 처음에야 근사값만 필요했으니, 이정도 오차는 눈감아 줄만했다.. 그런데, 비교적 정확한 평균값을 내달라는 요구사항이 들어 왔다.. 정석적으로 해결을 하고자 한다면,, 통계값을 읽는 순간의 시간 정보를 읽어서,, millisecond 레벨에서 값을 보정하면,, 충분히 정확한 평균값이 나온다.. 불행히도,, 이렇게 바꾸기에는 너무 많은 걸 수정해야 한다.. 결국,, CPU 가 다른 프로세스에 의해서..