[2일차] 2025 정보처리산업기사 운영체제 – 프로세스 동기화와 교착상태


정보처리산업기사 운영체제의 중요한 역할 중 하나는 프로세스 간 협력과 제어이다. CPU는 동시에 여러 프로세스를 처리하지만, 공유 자원(메모리, 파일, 입출력 장치)에 접근할 때 충돌이 발생할 수 있다.

이를 해결하기 위한 개념이 프로세스 동기화(Process Synchronization) 이며, 잘못된 제어로 인해 두 프로세스가 서로 자원을 대기하는 상태를 교착상태(Deadlock) 라고 한다.

이번 학습에서는 이 두 개념을 연결하여 살펴본다.


1. 프로세스 동기화(Process Synchronization)

프로세스 동기화는 여러 프로세스가 공유 자원(Shared Resource) 을 사용할 때 동시에 접근하지 못하도록 제어하는 기법이다.

이때 핵심 개념은 임계영역(Critical Section)상호배제(Mutual Exclusion) 이다.


임계영역과 조건

구분설명
임계영역(Critical Section)공유 자원에 접근하는 코드 영역
상호배제(Mutual Exclusion)한 시점에 하나의 프로세스만 임계영역 실행 가능
진행(Progress)임계영역에 없는 프로세스는 진입 결정에 영향을 주지 않음
한정 대기(Bounded Waiting)임계영역 진입 대기 시간이 무한정 길어지면 안 됨

대표 제어 기법

구분설명
뮤텍스(Mutex)하나의 자원에 대해 단일 프로세스만 접근 허용
세마포어(Semaphore)접근 가능한 자원의 개수를 카운팅 (P, V 연산 사용)
모니터(Monitor)언어 수준에서 제공되는 동기화 구조 (Java의 synchronized 등)

세마포어 예시

semaphore S = 1;

P(S);   // 자원 요청 (Wait)
임계영역 수행
V(S);   // 자원 반환 (Signal)
  • P(): 자원 점유 시도, 0이면 대기
  • V(): 자원 해제 후 대기 중 프로세스 깨움

동기화 문제 예시

  • 생산자-소비자 문제 (Producer–Consumer) → 버퍼가 가득 차면 생산자는 대기, 버퍼가 비면 소비자가 대기
  • Readers–Writers 문제 → 여러 Reader는 동시 접근 가능, Writer는 단독 접근만 허용
  • 식사하는 철학자 문제 (Dining Philosophers) → 포크(자원) 점유 순서 잘못 설정 시 교착상태 발생

2. 교착상태(Deadlock)

개념

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

즉, 시스템이 더 이상 진행되지 않는 정지 상태이다.


발생 조건 (필수 4가지)

조건설명
상호배제(Mutual Exclusion)자원을 한 프로세스만 사용할 수 있음
점유와 대기(Hold and Wait)하나 이상의 자원을 점유한 채 다른 자원을 기다림
비선점(No Preemption)자원을 강제로 빼앗을 수 없음
환형 대기(Circular Wait)프로세스 간 자원 점유가 원형 대기 형태로 연결

위 네 가지 조건이 모두 만족될 때 교착상태가 발생한다.


예시 (자원 A, B)

프로세스점유 자원요청 자원
P1AB
P2BA

→ P1은 B를, P2는 A를 기다리며 무한 대기 상태가 된다.


해결 방법

구분설명
예방(Prevention)교착 4조건 중 하나라도 깨뜨리기
회피(Avoidance)교착이 발생하지 않도록 안전 상태만 허용 (Banker’s Algorithm)
탐지(Detection)교착이 발생했는지 검사 후 회복
회복(Recovery)프로세스 종료 또는 자원 회수로 해결

은행원 알고리즘 (Banker’s Algorithm)

  • 교착 회피 기법 중 대표적인 방법
  • 시스템이 안전 상태(Safe State)일 때만 자원 할당을 허용
  • “모든 프로세스가 순서대로 완료될 수 있는 상태”가 안전 상태

3. 동기화와 교착상태의 관계

구분내용
공통점둘 다 자원 접근 제어와 관련
차이점동기화는 안정적 접근 보장, 교착상태는 자원 대기로 인한 정지
예시세마포어 사용 중 P(), V() 순서를 잘못 적용하면 교착 발생 가능

결론

프로세스 동기화는 운영체제의 안정성과 효율성을 확보하기 위한 핵심 기술이며, 교착상태는 그 제어 실패로 발생하는 전형적인 문제다.

시험에서는 아래 세 가지가 자주 출제된다.

  • 세마포어의 P(), V() 연산 순서 판단
  • 교착상태 발생 4조건 암기
  • Banker’s Algorithm의 안전 상태 판별

다음 학습 예고 – 메모리 관리

다음 학습에서는 주기억 장치 관리의 핵심 전략반입전략(Fetch Strategy)배치전략(Placement Strategy), 그리고 이 과정에서 발생하는 단편화(Fragmentation) 개념을 정리한다.

정보처리산업기사 관련링크 모음

  • 큐넷(Q-Net) 정보처리산업기사 안내
    -> 바로가기
  • 큐넷 원서접수 페이지 (정보처리산업기사 실기)
    -> 바로가기
  • 한국산업인력공단 공식 홈페이지
    ->바로가기
  • 이기적 2025 정보처리산업기사 실기 교재 공식몰 (영진닷컴)
    -> 바로가기
  • HRD-Net (직업훈련포털)
    -> 바로가기

“이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”