핵심 인사이트 (3줄 요약)

  1. 본질: 접근 제어 행렬은 **행(Row)에 주체(프로세스/도메인)**을, **열(Column)에 객체(파일/프린터)**를 배치하고, 각 교차점에 **권한 집합(읽기/쓰기/실행)**을 표기하여 접근 권한을 수학적으로 표현하는 모델이다.
  2. 가치: 이 2차원 행렬 구조 덕분에, OS는 특정 프로세스가 특정 객체에 접근하려 할 때 (프로세스, 객체) 좌표만 확인하면 되므로 $O(1)$ 시간에 접근 권한을 검증할 수 있다.
  3. 한계: 실제 시스템에서 행렬의 99%이상이 비어있어(희소 행렬), 메모리 낭비가 심하다. 따라서 실제로는 ACL(행 기준 분할) 또는 **Capability(열 기준 분할)**로 구현한다.

Ⅰ. 개요 및 필요성

1.1 접근 제어 행렬의 정의

접근 제어 행렬(Access Matrix)은 다음과 같이 정의된다:

Matrix[i][j] = 도메인 i가 객체 j에 대해 보유한 권한 집합

1.2 놀이공원에서의 비유

놀이공원에서:

  • 행(Row): 방문객 유형 (성인/어린이/직원)
  • 열(Column): 놀이기구 (바이킹/회전목마/ 롤러코스터)
  • 교차점: 해당 방문객이 해당 놀이기구를 탈 수 있는지 여부

1.3 수학적 표현

      파일1     파일2     프린터
도메인A  {Read}    {}       {}
도메인B  {Read}   {Write}  {Print}
도메인C  {}       {}       {Print}
  • 📢 섹션 요약 비유: 복잡한 창고에서 필요한 물건을 찾기 위해 먼저 구역과 표지판을 세우는 것과 같다.

Ⅱ. 아키텍처 및 핵심 원리

2.1 희소 행렬(Sparse Matrix) 문제

실제 시스템에서는:

  • 도메인(사용자) 수: 수만~수십만
  • 객체(파일) 수: 수백만~수천만
  • 행렬 칸 수: 수조~수천조
  • 실제 권한이 있는 칸: 약 0.01%

따라서 통짜 행렬을 메모리에 저장하는 것은 비현실적이다.

2.2 권한의 전파: Copy와 Owner

권한 유형설명
Copy권한을 다른 주체에게 복사하여 부여 (* 표시)
Owner권한을 부여하거나 회수할 수 있는 관리 권한

권한 회수(Revocation)가 필요한 경우, 시스템은 행렬을 스캔하여 해당 권한을 찾아 제거해야 하므로 $O(N)$ 시간이 소요된다.


3.1 Global Table의 개념

희소 행렬 문제를 해결하기 위해, 권한이 존재하는 튜플만을 저장한다:

<도메인A, 파일1, {Read}>
<도메인B, 파일2, {Read, Write}>
<도메인B, 프린터, {Print}>

3.2 Global Table의 한계

  • 선형 탐색: 권한 확인 시 리스트 전체를 탐색해야 하므로 $O(N)$ 시간

  • 락 경합: 중앙 테이블에 동시 접근 시 동기화 문제 발생

  • 📢 섹션 요약 비유: 공장 컨베이어벨트가 어떤 순서로 부품을 받아 가공하고 내보내는지 설계도를 펼쳐 보는 것과 같다.


Ⅲ. 비교 및 연결

접근 제어 행렬 (Access Matrix)은(는) 보호 도메인 (Protection Domain), 전역 테이블 (Global Table) 방식 구현 (행렬 희소성 문제)과 비교할 때 경계가 선명해진다. 같은 범주에 속하더라도 목표가 성능인지, 격리인지, 단순성인지에 따라 선택 기준이 달라진다. 따라서 이 개념은 독립적으로 외우기보다 앞뒤 개념과 함께 묶어 이해해야 시험과 실무에서 흔들리지 않는다.

비교 축보호 도메인 (Protection Domain)접근 제어 행렬 (Access Matrix)전역 테이블 (Global Table) 방식 구현 (행렬 희소성 문제)
초점기반 조건현재 판단 기준확장/세분화 방향
운영 관점준비 단계핵심 제어 단계후속 최적화 단계
  • 📢 섹션 요약 비유: 비슷해 보이는 공구를 나란히 놓고 언제 망치를 쓰고 언제 드라이버를 써야 하는지 구분하는 것과 같다.

Ⅳ. 실무 적용 및 기술사 판단

  • 이론적 완전성: 접근 제어 행렬은 보안 정책의 수학적 모델로서 완전한 표현력을 제공한다.

  • 실제 한계: 희소 행렬 문제로 인해 실제 시스템에서는 ACL 또는 Capability 방식으로 분할 구현된다.

  • 현대적 변형: 데이터베이스 인덱싱과 유사하게, 해시 맵 등을 활용하여 탐색 성능을 개선한다.

  • 📢 섹션 요약 비유: 운전자가 도로 상황에 따라 기어와 브레이크를 다르게 선택하는 것처럼 조건별 판단이 중요하다.


Ⅴ. 기대효과 및 결론

접근 제어 행렬 (Access Matrix)은 운영체제 보호와 보안 메커니즘을 이해하는 연결 고리 역할을 한다. 이 개념을 익히면 시스템 동작을 더 예측 가능하게 설명할 수 있지만, 만능 해법은 아니므로 적용 전제와 한계를 함께 기억해야 한다. 앞으로는 전역 테이블 (Global Table) 방식 구현 (행렬 희소성 문제)처럼 더 세분화된 기술과 결합되며 자동화·최적화 방향으로 발전한다.

  • 📢 섹션 요약 비유: 도구의 장점만 외우는 것이 아니라 어디까지 믿고 어디서 보완해야 하는지 기억하는 정리 노트와 같다.

📌 관련 개념 맵

개념연결 포인트
보호 (Protection) vs 보안 (Security)의 개념 차이현재 개념으로 들어오기 전에 함께 이해하면 경계가 선명해지는 기반 개념이다.
보호 도메인 (Protection Domain)현재 개념이 등장하게 만든 직접적인 선행 흐름이다.
전역 테이블 (Global Table) 방식 구현 (행렬 희소성 문제)현재 개념이 구현·세분화될 때 바로 연결되는 후속 개념이다.
접근 제어 목록 (ACL, Access Control List)확장 학습이나 심화 비교로 이어지는 다음 단계의 키워드다.

📈 관련 키워드 및 발전 흐름도

[보호 도메인 (Protection Domain)]
    │
    ▼
[접근 제어 행렬 (Access Matrix)]
    │
    ├──▶ [전역 테이블 (Global Table) 방식 구현 (행렬 희소성 문제)]
    └──▶ [접근 제어 목록 (ACL, Access Control List)]

이 흐름도는 선행 개념에서 현재 개념으로 넘어온 뒤, 구현 세분화와 후속 확장으로 이어지는 학습 순서를 압축해 보여준다.

👶 어린이를 위한 3줄 비유 설명

  1. 접근 제어 행렬은 학교의 "학생-교실-출입 가능 여부" 표와 같다. 각 학생이 어떤 교실에 출입할 수 있는지 한눈에 볼 수 있다.

  2. 희소 행렬 문제는 100명의 학생과 1000개의 교실이 있으면 표가 10만칸이 되는데, 실제 출입 가능한 칸은 수십 개뿐이라 칸의 대부분이 비어있어 공간이 낭비되는 것과 같다.

  3. 구현 분할은 비어있는 칸을 생략하고, **"출입 가능한 경우만"**을名簿(명부)에 적어두는 것과 같다. 이렇게 하면 공간을 절약할 수 있지만, 특정 학생의 출입 가능 교실을 찾으려면名簿를 모두 확인해야 하는 문제가 있다.