피드로 돌아가기
Understanding the rationale behind a rule when trying to circumvent it
Hacker NewsHacker News
Infrastructure

System Callback 내 Blocking 제거를 통한 시스템 행(Hang) 방지 및 안정성 확보

Understanding the rationale behind a rule when trying to circumvent it

2026년 6월 16일4advanced

Context

OS 레벨의 프로세스 및 스레드 생성/종료 시 호출되는 Callback 함수는 시스템 내부 Lock을 보유한 상태에서 실행될 가능성이 큼. 해당 지점에서 지연이 발생하거나 Blocking이 일어날 경우 전체 시스템 성능 저하 및 Reentrancy Deadlock으로 인한 시스템 행 현상이 발생함.

Technical Solution

  • Callback 함수 내 모든 무거운 작업의 비동기 처리를 통한 빠른 반환 구조 설계
  • User Mode Service 호출, Registry 접근, IPC 통신 등 Blocking 유발 API 호출 전면 배제
  • System Worker Threads를 활용하여 고비용 작업을 Queue에 적재하고 즉시 제어권을 반환하는 구조 채택
  • Worker Thread에 작업을 위임한 후 완료 시점까지 대기하는 Synchronous Waiting 패턴 제거
  • Event Object를 통한 동기화 역시 실질적인 Thread 간 동기화로 간주하여 Blocking 금지 원칙 적용

- Callback 함수 내에서 Registry, File I/O, Network 호출이 발생하는지 전수 조사 - System Worker Thread 사용 시 `WaitForSingleObject` 등 대기 함수 사용 여부 검토 - 비동기 위임 후 결과를 기다려야 하는 로직을 Event-driven 구조로 변경 가능성 확인 - 시스템 핵심 경로(Critical Path) 내의 모든 동기화 로직이 Deadlock 가능성을 내포하고 있는지 분석

원문 읽기