Data Engineering/혼공컴운

혼자 공부하는 컴퓨터구조 + 운영체제 12장 정리

potatode 2025. 4. 1. 20:36

12. 프로세스 동기화

12-1. 동기화란

동기화의 의미

  • 프로세스 동기화
    • 실행 순서 제어
    • 상호 배제
  • : 프로세스들 사이의 수행 시기를 맞추는 것
  • 실행 순서 제어 동기화
    • 동시에 실행되는 프로세스를 올바른 순서대로 실행되는 것
  • 상호 배제 동기화
    • 공유가 불가능한 자원이 동시 사용을 피하기 위해 사용하는 알고리즘

생산자와 소비자 문제

  • 생산자 - 물건을 계속해서 생산하는 프로세스
  • 소비자 - 물건을 계속해서 소비하는 프로세스

동기화가 제대로 이루어지지 않으면, 총합 결과가 달라질 수 있음

⇒ 동시 접근하면 안됨

공유 자원과 임계 구역

  • 공유 자원 - 공동의 자원
    • 두 개 이상의 프로세스 동시 실행 시 문제 발생
  • 임계 구역
  • : 동시에 실행하면 문제가 발생하는 자원에 접근하는 코드 영역
  • 레이스 컨디션
  • : 임계 구역은 두 개 이상의 프로세스가 동시에 실행되면 안되는 영역이지만, 잘못된 실행으로 인해 동시 다발적으로 실행하여 문제가 발생하는 경우
  • 임계 구역 문제 해결 ⇒ 상호 배제를 위한 동기화 원칙
    • 상호 배제
    • 진행
    • 유한 대기

12-2. 동기화 기법

  • 동기화를 위한 대표적인 도구에 대해 학습

뮤텍스 락

: 상호 배제를 위한 동기화 도구

  • 자물쇠 기능을 코드로 구현한 것
  • 구현을 위한 함수
    • acquire 함수
    • : 프로세스가 임계 구역에 진입하기 전에 호출하는 함수
    • release 함수
    • : 임계 구역에서의 작업이 끝나고 호출하는 함수
    ⇒ 이 두 함수를 통해 하나의 프로세스만 임계 구역에 진입 가능

세마포

  • 공유자원이 여러개 있는 상황에서도 적용이 가능한 동기화 도구
    • 뮤텍스 락은 1개인 경우를 가정
  • 구현을 위한 변수,함수
    • 전역변수 S
    • : 임계 구역에 진입할 수 있는 프로세스의 개수를 나타냄
    • wait 함수
    • signal 함수
  • 실행 순서도 제어 가능

모니터

: 공유자원에 접근하기 위한 인터페이스를 묶어 관리

⇒ 사용자가 사용하기 편리

  • 조건 변수 사용
    • 프로세스나 스레드의 실행 순서를 제어하기 위해 사용하는 특별한 변수
    • wait와 signal 연산 수행 가능
반응형