본문 바로가기

CS/운영체제(OS)

OS - 프로세스 동기화 개념

728x90

프로세스 동기화

프로세스 병행 (Concurrency)

  • OS는 아주 빠른 시간에 프로세스를 스위칭한다. 때문에 사실은 하나의 프로세스만 화면에서 실행중이지만 마치 함께 실행중인 것 처럼 보인다.
  • 이것을 프로세스 병행, 동시성이라 한다.
  • 독립 프로세스와 협력 프로세스
    • 독립 프로세스
      • 단일 처리 시스템에서 수행하는 병행 프로세스, 다른 프로세스와 영향을 받지 않으며 독립적으로 실행된다.
    • 협력 프로세스
      • 우리가 사용하는 많은 프로그램은 협력 프로세스이다. 두 프로세스가 동일한 파일을 사용할 수도 있고 프로세스 하나가 파일을 읽는 동안 다른 프로세스가 쓰기를 실행하려 할 수도 있다.

 

프로세스 동기화

  • 위 처럼 프로그램들이 하나의 자원에 접근하려하면 어떤 일이 발생할까.
  • 가장 유명한 예제는 바로 은행 예제이다.
    • A씨의 통장엔 20만원이 있다.
    • A씨가 B의 통장에서 10만원을 출금하려한다.
    • 이 때 휴대폰 요금 20만원이 빠져나갔다.
    → 시스템에서 매우 큰 문제이다. 프로세스 동기화는 데이터를 일관성있게 관리하는데 중요하다.
  • Critical Section Problem
    • 이렇게 A씨와 통신사 두개의 프로세스들이 하나의 공유 자원에 접근하려는 상황을 임계 구역 문제라고 한다.
    • 이를 해결하기 위해 하나의 프로세스만 접근할 수 있도록 제한을 둔다.