Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

공부해보잠

병행 프로세스와 상호배제 본문

자격증/정보처리

병행 프로세스와 상호배제

heejk 2025. 1. 15. 23:10
병행프로세스(Concurrent Process)

두 개 이상의 프로세스가 동시에 존재하며 실행 상태에 있는 것을 의미합니다.

 

특징:

  • 한정된 자원 공유: 프로세스들이 컴퓨터 하드웨어(메모리, CPU 등)나 자원을 공유.
  • 단일 CPU 시스템: 프로세스들이 교대로 실행됩니다. (Context Switching 사용)
  • 멀티코어 시스템: 실제로 여러 프로세스가 동시에 실행될 수 있습니다.
  • 예를 들면, 웹 서버에서 여러 클라이언트 요청을 동시에 처리, 운영체제에서 여러 애플리케이션을 병렬로 실행이 있겠습니다.

 

임계구역(Critical Section)
  • 여러 프로세스가 공유 자원(영역)을 안전하게 사용하기 위해 하나의 프로세스만 접근하도록 제한된 영역입니다
  • 공유자원에는 CPU, 메로리 디스크, 입출력장치, 버퍼 등이 있습니다.

특징:

  • 공유 자원이나 데이터를 안전하게 보호.
  • 하나의 프로세스가 자원을 사용 중일 때, 다른 프로세스는 대기.
  • 프로세스가 자원을 반납한 후에만 다른 프로세스가 접근 가능.

임계구역 문제 해결방법

상호 배제 (Mutual Exclusion):

  • 한 시점에 하나의 프로세스만 공유 자원에 접근해야 합니다

진행 (Progress):

  • 임계구역에 접근할 프로세스가 없다면, 자원 접근 권한을 기다리는 프로세스에게 부여해야 합니다.

한계 대기 (Bounded Waiting):

  • 프로세스가 자원을 대기하는 시간이 무한정 길어지지 않아야 합니다.

동기화 기법(Synchronization)

두 개 이상의 프로세스가 공유 자원에 동시에 접근하지 못하도록 처리 순서를 결정하는 상호 배제의 한 형태입니다.

목적:

  • 데이터 무결성 보장: 여러 프로세스가 공유 자원에 동시에 접근할 경우 데이터 충돌 방지.
  • 자원 경합 해결: 공유 자원의 효율적 관리.
  • 프로세스 간 조율: 작업 순서를 관리하여 시스템 안정성 보장.

세마포어(Semaphore)

  • 공유 자원의 접근을 제어하기 위한 동기화 도구로, 다익스트라(E. J. Dijkstra)가 제안하였고 P(Wait)와 V(Signal) 연산을 통해 동기화와 상호 배제를 보장합니다.

 

특징: 

  • 세마포어 변수(S): 공유 자원의 개수를 나타내며, 0 또는 양의 값을 가질 수 있음.
  • P(Wait) 연산: 자원을 사용하기 전, 세마포어 값을 감소. 값이 0이면 대기.
  • V(Signal) 연산: 자원을 사용한 후, 세마포어 값을 증가.
  • 인터럽트 방지: 연산 도중 인터럽트되지 않도록 설계.

 

종류:

이진 세마포어 (Binary Semaphore):

  • 값이 0 또는 1만 가짐.
  • 뮤텍스와 유사.

카운팅 세마포어 (Counting Semaphore):

  • 0 이상의 양의 정수 값을 가짐.
  • 여러 자원을 관리 가능.

 

뮤텍스(Mutex)

상호 배제를 보장하는 동기화 도구로, 하나의 프로세스만 자원을 사용할 수 있도록 제한하며 뮤텍스(Mutual Exclusion)에서 유래된 이름입니다.

 

특징:

  • 소유권:뮤텍스는 자원을 소유한 프로세스만 해제 가능.
  • 상태: 뮤텍스는 잠금(Lock)과 해제(Unlock) 상태를 가짐.
  • 경량 동기화:세마포어보다 단순한 구조로, 주로 멀티스레드 환경에서 사용.

 

뮤텍스와 세마포어의 차이

구분 뮤텍스 세마포어
소유권 자원을 소유한 프로세스만 해제 가능 소유권 없음
값의 범위 0과 1 0과 양의 정수
사용 용도 하나의 프로세스만 접근 가능 여러 프로세스 접근 가능
복잡성 단순 상대적으로 복잡

 

모니터(Monitor)

공유 자원을 보호하고 동기화를 제공하는 고급 동기화 도구이며 자료 추상화와 정보 은폐에 기반하여 외부 접근을 제한합니다.

 

특징

  • 상호 배제: 한순간에 하나의 프로세스만 모니터 내부에 진입 가능.
  • 정보 은폐: 외부 프로세스가 모니터 내부 데이터와 프로시저에 직접 접근 불가.
  • 구성 요소: 공유 자원(모니터가 관리하는 데이터), 프로시저(공유 자원을 처리하는 동작)

 

세마포어, 뮤텍스, 모니터 비교

구분 세마포어 뮤텍스 모니터
정의 공유 자원 접근 제어 동기화 도구 상호 배제를 보장하는 도구 고급 동기화 병행성 구조
정보 은폐 지원하지 않음 지원하지 않음 지원
구조 낮은 수준 동기화 단순 동기화 자료 추상화 및 정보 은폐 구조
사용 사례 여러 자원 관리 단일 자원 관리 공유 자원과 병행성 구조 관리

 

교착상태(Dead Lock)의 개요
  • 둘 이상의 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 상태를 의미합니다.
  • 시스템이 멈춘 상태로, 프로세스들이 더 이상 진행할 수 없습니다.

교착상태와 무한 연기의 차이:

  • 교착상태: 프로세스 간 자원 점유가 상호 의존적으로 발생하며, 더 이상 실행 가능성이 없는 상태.
  • 무한 연기: 실행 가능성은 있지만, 특정 프로세스가 자원 할당에서 계속 뒤로 밀려 무한정 대기하는 상태.

교착 상태 발생의 필요 충분 조건

상호 배제 (Mutual Exclusion):

  • 공유자원은 한 번에 한 프로세스만 사용할 수 있어야 합니다.

점유와 대기 (Hold and Wait):

  • 자원을 점유한 상태에서 다른 자원을 추가로 요구하며 대기하는 상황.

비선점 (No Preemption):

  • 자원을 점유한 프로세스가 다른 프로세스에 의해 강제로 자원을 빼앗길 수 없는 상황.

환형 대기 (순환대기, Circular Wait):

  • 프로세스 간 자원 점유가 순환적으로 이루어지는 상황.
  • 예: P1 → P2 → P3 → P1 환형 대기

 

교착상태의 해결방법

 

예방 (Prevention)

  • 교착상태 발생 조건 중 하나 이상을 제거.
  • 예: 순환 대기 조건을 피하기 위해 자원을 순차적으로 할당.

회피 (Avoidance):

  • 교착상태가 발생하지 않도록 자원의 상태를 분석하여 적절히 할당
  • 은행가 알고리즘 (Banker's Algorithm)이 대표적인 방법.

탐지 및 복구 (Detection and Recovery):

  • 교착상태 발생 여부를 탐지하고, 문제를 해결하기 위해 자원을 강제로 회수하거나 프로세스를 중단.

무시 (Ignore):

  • 교착상태가 발생할 가능성이 낮은 경우, 별도로 처리하지 않고 시스템이 정상적으로 작동하도록 유지.

 

무한연기(Indefinite Postponement)

  • 자원을 할당받을 가능성이 있는 프로세스가 계속해서 대기 상태로 밀려나는 현상.
  • 교착상태와 달리 시스템이 멈추지 않지만, 특정 프로세스가 실행되지 못합니다.
  •  

해결방법

우선순위 기반 스케줄링:

  • 오래 대기한 프로세스에 높은 우선순위를 부여.

시간 제한:

  • 자원 요청 대기 시간을 제한하여 일정 시간이 지나면 강제로 할당.

페어 방식 (Fair Scheduling):

  • 모든 프로세스에 공정하게 자원을 분배.

출처 및 참조:
정보처리 산업기사 시나공(기본서)

728x90

'자격증 > 정보처리' 카테고리의 다른 글

디스크 스케줄링  (0) 2025.01.16
기억장치 관리  (0) 2025.01.16
스케줄링  (0) 2025.01.13
프로세스 관리  (0) 2025.01.11
운영체체의 개념  (0) 2025.01.09