2007/06/29

Solaris와 System Clock(Wall Clock) 상호 운영도

대부분의 컴퓨터는 CPU를 포함한 모든 디바이스 간의 동기화를 이용하여 시스
템 클럭을 제공합니다. 이 클럭을 기본으로 CPU, Memory , PCI bus, PCI
device등이 정확한 통신을 할 수 있도록 합니다.
사용자가 컴퓨터에 내리는 시간은 이 시스템 클럭을 커널내 소프트 클럭으로
전환하여 가지고 있습니다. 사용자가 보게 되는 date & time은 이 소프트 클
럭을 인간이 볼 수 있는 포맷으로 전환하여 보도록 해줍니다. 물론, 타임존도
고려하게 됩니다.
만약 커널의 모듈(대개 디바이스 드라이버나 커널 자체 내부 함수)에서 과부
하가 형성되게 되면, 커널 내에서 외부 클럭을 가지고 와서 내부 소프트클럭
으로 전환하는 함수의 실행에 지연이 발생할 수 있으며, 결과적으로는 시간
업데이트의 지연(drift) 현상이 발생하게 됩니다.
지연된 시간을 기반으로 date & time은 비 정확한 시간을 가질 수 있게 됩니다.
또한 배터리에 의존하는 시스템 클럭은 배터리의 수명으로 인하여 클럭의 작
동에 지장을 받을 수 있습니다. 때문에 Out-Of-Box Time(Absolute Time)을 보
장받기 위하여 NTP와 같은 네트웍 타임 소스를 사용할 수 있습니다. NTP를 사
용하더라도 시스템에서는 drift가 발생할 수 있으나, NTP는 발생되는 drift를
최소화도록 유지하도록 함으로써 NTP를 공유하는 서버들간에 시간오차가 적도
록 해줍니다.