콘텐츠로 이동

계층적 접근 (Layered Approach)

Jan 25, 2026

운영체제를 여러 계층(layer)으로 나누어, 각 계층이 하위 계층의 기능만 사용하도록 구조화하는 방식이다. 모놀리식의 밀접한 결합(tightly coupled) 문제를 해결하기 위해 등장했다.

계층 N 사용자 인터페이스
계층 N-1 ...
계층 M 데이터 구조 + 함수 집합
계층 1 ...
계층 0 하드웨어

각 계층은 추상 객체의 구현으로:

  • 데이터와 그 데이터를 조작하는 연산으로 구성
  • 상위 계층에 의해 호출될 수 있는 데이터 구조와 함수 집합으로 구성
  • 하위 계층의 연산만 호출 가능

각 계층은 하위 계층의 연산이 어떻게 구현되는지 알 필요 없다:

  • 연산이 무엇을 하는지만 알면 됨
  • 존재, 인터페이스, 기능을 나머지 시스템으로부터 숨김

느슨하게 결합된 시스템의 특징:

  • 별도의 작은 구성 요소들로 분리
  • 각 구성 요소는 특정하고 제한된 기능을 가짐
  • 한 구성 요소의 변경이 해당 구성 요소에만 영향
1 1단계
첫 번째 계층은 기본 하드웨어만 사용 → 하드웨어 정확성 가정하에 디버깅
2 2단계
첫 번째 계층 디버깅 완료 후, 두 번째 계층 디버깅
3 3단계
오류 발생 시 해당 계층에서 발생했음을 확신 가능
장점단점
구성과 디버깅의 단순화계층 정의가 어려움
시스템 검증 용이각 계층이 하위 계층만 사용하도록 신중히 계획 필요
오류 발생 위치 파악 용이계층 간 호출 오버헤드
모듈화로 유지보수 용이실제로는 적은 계층에 더 많은 기능을 넣는 경향
  • Operating System Concepts, 10th Edition, Chapter 2, p.83-84