본문 바로가기
카테고리 없음

(운영체제) ❰12. 프로세스 동기화❱_[ 12-1. 동기화 ]

by 해피퀄리아 2023. 4. 15.

< Ch.12 _프로세스 동기화 >

[ 12-1. 동기화란? ]

[ 1 ] 동기화

상황

  • 동시다발적으로 실행되는 많은 프로세스
  • 프로세스들끼리의 협력이 필요한 상황

“동기화”

작업들 사이의 수행시기를 맞추는 것.

“프로세스 동기화”

  • 프로세스들 사이의 수행 시기를 맞추는 것.
    1. 실행 순서 제어 : 프로세스를 올바른 순서대로 실행하기
      1. ex) Book.txt에 수행하는 Writer 프로세스와 Reader 프로세스
    2. 상호 배제 : 하나의 자원에, 하나의 프로세스 - 동시에 접근해서는 안 되는 자원에, 하나의 프로세스만 접근하게 하기
      1. ex) 계좌 잔액 문제, 생산자와 소비자 문제

 

[ 2 ] 공유자원과 임계구역

 

공유자원

  • shared resource
  • 동시에 실행되는 프로세스들이 작업하는 공동의 자원
    • 여러가지가 공유자원이 될 수 있다. (ex: 전역변수, 파일, 각종 장치)

임계구역

  • critical section
  • 정의
    • 동시에 실행하면 안되는 자원이 있을 때,
    • 그 자원에 접근하는 “코드 영역”

레이스 컨디션

  • 여러 프로세스가 동시 다발적으로 임계구역의 코드를 실행하여 문제가 발생하는 경우.

 

[ 3 ] 임계 구역 문제 해결 원칙

원칙 3개

  • 상호배제
    • (mutual exclution)
    • 임계 구역에는 하나의 프로세스만 진입. 다른 프로세스는 배제
  • 진행
    • (progress)
    • 임계 구역에 어떤 프로세스도 진입하지 않으면 → 다른 프로세스는 들어갈 수 있어야함.
  • 유한대기
    • (bounded waiting)
    • 임계구역에 진입하고 싶은 프로세스는, 언젠가는 임계구역에 들어올 수 있어야함. (무한정 대기해선느 안됨)

댓글