콘텐츠로 이동

정책과 메커니즘 (Policy and Mechanism)

Jan 25, 2026

운영체제 설계에서 메커니즘(mechanism)은 “어떻게(how)” 수행할지를, 정책(policy)은 “무엇을(what)” 수행할지를 결정한다. 이 둘을 분리하는 것이 유연한 시스템 설계의 핵심 원칙이다.

구분정의타이머 예시
메커니즘어떻게 수행할지 결정타이머 구조 자체 (CPU 보호를 위한 메커니즘)
정책무엇을 수행할지 결정특정 사용자에 대해 타이머를 얼마나 설정할지

유연성 확보가 핵심이다. 정책은 장소나 시간에 따라 변할 가능성이 높기 때문에:

  • 범용적인 메커니즘이 있으면 정책 변경 시 시스템의 특정 파라미터만 재정의하면 됨
  • 예: 프로그램 우선순위 메커니즘이 정책과 분리되어 있으면
    • I/O 집약적 프로그램에 우선순위를 주는 정책, 또는
    • CPU 집약적 프로그램에 우선순위를 주는 정책 모두 지원 가능
운영체제접근 방식
Windows/macOS/iOS정책과 메커니즘을 시스템에 밀접하게 인코딩. 전역적 외관과 느낌(global look and feel) 강제
Linux표준 커널에 특정 CPU 스케줄링 알고리즘(메커니즘)이 있지만, 누구나 다른 정책을 지원하도록 스케줄러 수정/교체 가능

마이크로커널 기반 운영체제는 정책/메커니즘 분리를 극단적으로 적용한다:

  • 기본적인 빌딩 블록만 구현하고, 거의 정책 없음(policy free)
  • 더 고급 메커니즘과 정책은 사용자 생성 커널 모듈이나 사용자 프로그램으로 추가
접근 방식장점단점
분리유연성, 다양한 정책 지원 가능, 유지보수 용이설계 복잡성 증가
결합일관된 사용자 경험, 구현 단순화유연성 감소, 정책 변경 어려움
  • Operating System Concepts, 10th Edition, Chapter 2, p.80