[시나공] 병행 제어 및 교착상태 관리 핵심 정리 (즉각 갱신·병행제어·로킹·타임 스탬프·교착상태)

2026. 4. 1. 23:52Certifications/정보처리기사 실기

1️⃣ 즉각 갱신 기법 (Immediate Update)

✅ 개념

  • 트랜잭션이 데이터를 변경하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 방법

✅ 특징

  • 장애 발생 시 회복 작업을 위해 갱신 내용은 Log에 기록
  • 트랜잭션 완료 이전에도 데이터가 DB에 반영됨
  • 회복 시 Redo / Undo 모두 수행 가능

🎯 포인트

  • 즉각 갱신 = DB 즉시 반영
  • Redo + Undo 모두 가능
  • 로그(Log) 기록 필수

2️⃣ 병행 제어 (Concurrency Control)

✅ 개념

  • 다중 프로그램 환경에서 여러 트랜잭션이 동시에 실행될 때 데이터의 일관성을 유지하도록 상호작용을 제어하는 기법

🔹 목적

  • 데이터베이스 일관성 유지
  • 동시 실행 가능
  • 무결성 보장

🔹 주요 기법

기법 설명
로킹 (Locking) 데이터 접근 시 Lock을 걸어 동시 접근 제어
타임 스탬프 트랜잭션 실행 순서를 시간 기준으로 제어
직렬화 트랜잭션 결과가 직렬 수행과 동일하도록 보장

🎯 포인트

  • 병행 제어 = 동시 실행 + 일관성 유지
  • 대표 기법 → Lock / Time Stamp

3️⃣ 로킹 (Locking)

✅ 개념

  • 트랜잭션이 데이터 접근 시 Lock을 설정하고 Lock이 해제될 때까지 다른 트랜잭션 접근을 제한하는 기법

🔹 특징

  • 상호 배제(Mutual Exclusion) 기반
  • 데이터의 동시 접근 제어
  • 병행 제어 대표 기법

🎯 포인트

  • Lock 설정 → 다른 트랜잭션 접근 제한

4️⃣ 타임 스탬프 순서 (Time Stamp Ordering)

✅ 개념

  • 트랜잭션 실행 순서를 결정하기 위해 트랜잭션에 시간 정보를 부여하여 순서를 제어하는 방법

🔹 특징

  • 트랜잭션에 Timestamp 부여
  • 시간 순서 기준으로 작업 수행
  • 직렬 수행 결과 보장

🎯 포인트

  • 타임 스탬프 = 시간 기준 트랜잭션 순서 제어

5️⃣ 교착상태 (Deadlock)

✅ 개념

  • 두 개 이상의 프로세스가 서로 상대 프로세스가 점유한 자원을 기다리면서 무한 대기하는 상태

🔹 교착상태 발생 필요 조건

조건 설명
상호 배제
(Mutual Exclusion)
한 번에 한 프로세스만 자원 사용 가능
점유와 대기
(Hold and Wait)
자원을 보유하면서 다른 자원 대기
비선점
(Non-preemption)
자원을 강제로 빼앗을 수 없음
환형 대기
(Circular Wait)
프로세스들이 원형으로 자원을 기다림

🎯 포인트

  • 교착상태 필요조건 4가지
  1. 상호배제
  2. 점유대기
  3. 비선점
  4. 환형대기

6️⃣ 교착상태 해결 방법

구분 설명
예방 (Prevention) 교착상태 발생 조건 중 하나를 제거
회피 (Avoidance) 교착상태 발생 가능성을 고려하여 자원 할당
발견 (Detection) 교착상태 발생 여부 확인
회복 (Recovery) 프로세스 종료 또는 자원 회수

🎯 포인트

  • 회피 알고리즘 → Banker's Algorithm

📊 시험 포인트 정리

🔥 출제 빈도 높은 개념

  • 즉각 갱신 (Redo + Undo)
  • 병행 제어 개념
  • Lock / Time Stamp
  • 교착상태 발생 조건 4가지

🔥 단답형

  • "트랜잭션 실행 순서를 시간 기준으로 제어하는 기법은?"
    타임 스탬프

  • "교착상태 발생 필요 조건 4가지는?"
    상호배제 / 점유대기 / 비선점 / 환형대기

  • "교착상태 회피 알고리즘은?"
    Banker's Algorithm





2025 시나공 퀵이지 정보처리기사 실기 단기완성
(저자: 강윤석, 김용갑, 김우경, 김종일 | 출판사: 길벗)

※ 본 글은 위 교재를 참고하여 학습 목적으로 재정리한 내용입니다.