watchdog 예제

다음은 감시 타이머에 대한 샘플 프로그램입니다. 3. 커널(영구) 메모리가 포함된 시스템 보드가 삭제되는 동적 재구성(DR) 작업을 수행하는 경우 DR 작업 전에 감시 타이머의 응용 프로그램 모드를 비활성화하고 DR 작업 후에 활성화해야 합니다. Solaris 소프트웨어는 모든 시스템 IO를 정지하고 영구 메모리의 메모리 삭제 중에 모든 인터럽트를 비활성화하기 때문에 이 필요합니다. 결과적으로, 시스템 컨트롤러 펌웨어 및 Solaris 소프트웨어는 DR 작동 중에 통신할 수 없습니다. 이 제한은 메모리의 동적 추가나 영구 메모리를 포함하지 않는 보드의 삭제에도 영향을 미치지 않습니다. 이러한 경우 감시 타이머의 응용 프로그램 모드는 DR 구현과 동시에 실행할 수 있습니다. 다음 예제 프로그램은 현재 디렉터리에서 파일 시스템 변경 내용을 재귀적으로 모니터링하고 콘솔에 로그하기만 하면 됩니다. 정상적인 작동 중에 컴퓨터는 정기적으로 시간 시간을 방지하기 위해 Stage1을 시작합니다. 컴퓨터가 Stage1을 걷어차지 못하면(예: 하드웨어 오류 또는 프로그래밍 오류로 인해) Stage1은 결국 시간 시간이 지났습니다.

이 이벤트는 Stage2 타이머를 시작하고 동시에 컴퓨터에 리셋이 임박했다는 것을 (마스크할 수 없는 인터럽트를 통해) 알립니다. Stage2가 끝날 때까지 컴퓨터는 상태 정보, 디버그 정보 또는 둘 다를 기록하려고 시도할 수 있습니다. 컴퓨터가 Stage2 시간 시간에 재설정됩니다. Watchdog는 파일 또는 디렉터리 생성, 변경 또는 삭제와 같은 변경 내용을 찾는 파일 시스템을 모니터링하는 작은 소프트웨어입니다. 변경이 발생하면 감시 타이머는 처리할 수 있는 특정 이벤트를 발생시도록 보고합니다. 위의 함수 정의에 표시된 기본값을 감안할 때 간단한 경우 Drupal watchdog 함수를 다음과 같이 호출 할 수 있습니다 http://api.drupal.org/api/drupal/includes–common.inc/function/watchdog_. hook_watchdog를 사용하여 dsm을 뱉어내면 다른 곳에서 발생한 오류를 catch하고 자신의 요구 사항에 따라 필터링할 수 있습니다. Watchdog 타이머는 여러 구성으로 제공되며 많은 타이머가 구성을 변경할 수 있도록 허용합니다.

마이크로 컨트롤러에는 종종 통합된 온칩 워치독이 포함됩니다. 다른 컴퓨터에서는 감시 타이머가 CPU에 직접 연결되는 근처 칩에 상주하거나 컴퓨터 섀시의 외부 확장 카드에 있을 수 있습니다.