Process Synchronization

Noah·2022년 8월 1일
0

OS Study

목록 보기
10/16

Process Synchronization

  • 프로세스 동기화
    • 요즘 컴퓨터에서는 스레드를 단위로 스위칭 되기 때문에 Thread Synchronization으로 생각하면 편하다
  • 프로세스의 종류
    • 두 프로세스가 서로 독립적이다 -> Independent Process
    • 두 프로세스가 서로 영향을 준다 -> Cooperating
      • 여러개의 프로세스가 공통으로 사용하는 리소스에 접근할 때 문제가 발생할 수 있음
        • 그렇기에 프로세스 동기화는 매우 중요하다
  • 데이터의 일관성이 유지될 수 있도록 하는것

Semaphore

  • 동기화 문제 해결을 위한 소프트웨어 도구
  • 구조
    • 정수형 변수
    • 두 개의 동작
      • P 동작 : test 및 검사 -> acquire() / 정수형 변수 값 검사
        1. 정수형 변수의 값 1감소
        2. 만약, 정수형 변수의 값이 1보다 작을 경우
          1. acquire()를 호출한 프로세스를 다시 대기하게 만듬
      • V 동작 : increasement -> release() / 정수형 변수 증가
        1. 정수형 변수의 값 1 증가
        2. 만약, 정수형 변수의 값이 0 이하 인 경우
          1. 대기중인 프로세스를 실행
  • 리소스의 상태를 나타내는 간단한 카운터
  • 일반적으로 긴 시간을 확보하는 리소스에 대해 이용
  • 운영체제 or 커널의 한 지정된 저장자치 내 값으로서, 각 프로세스는 이를 확인하고 변경 가능
  • 세마포어의 플래그 값을 사용
    • 세마포어를 사용하는 프로세스는 플래그를 확인하고, 자원을 사용하는 동안에 값을 변경
profile
BackEnd 개발자가 되기 위해 공부중입니다!

0개의 댓글