프로세스 동기화란?

song·2023년 5월 6일

프로세스들은 실행 순서와 자원의 일관성을 보장해야 하기에 반드시 동기화(Synchronization)되어야 함

동기화란?
: 수행 시기를 맞추는 것을 의미한다.

프로세스 동기화
: 프로세스들 사이의 수행 시기를 맞추는 것을 의미하며, 2가지를 뜻한다.

  • 실행 순서 제어: 프로세스를 올바른 순서대로 실행
  • 상호 배제: 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기

공유 자원 (Shared Resource)

: 공동으로 이용하는 변수, 파일 장치 등의 자원

임계 구역 (Critical Section)

: 공유 자원에 접근하는 코드 중 동시에 실행하면 문제가 발생하는 코드 영역
임계 구역에 동시에 접근하면 자원의 일관성이 깨질 수 있고, 이를 레이스 컨디션(race condition)이라 함

레이스 컨디션이 발생하면❓

: 데이터의 일관성이 깨지는 문제 발생

레이스 컨디션이 발생하는 이유❓

: 한 줄의 고급 언어를 여러 줄의 저급 언어로 변환하는 과정에서, 문맥 교환이 일어난다면 문제가 발생

운영체제가 임계구역 문제를 해결하는 세 가지 원칙

  • 상호 배제 (Mutual exclusion)
    : 한 프로세스가 임계 구역에 진입했다면 다른 프로세스는 들어올 수 없음

  • 진행 (Progress)
    : 임계 구역에 어떤 프로세스도 진입하지 않았다면 진입하고자 하는 프로세스는 들어갈 수 있어야 함

  • 유한 대기 (Bounded waiting)
    : 한 프로세스가 임계 구역에 진입하고 싶다면 언젠가는 임계 구역에 들어올 수 있어야 함
    (임계 구역에 들어오기 위해 무한정 대기해서는 안됨)

<출처>
"혼자 공부하는 컴퓨터구조+운영체제".강민철.https://www.youtube.com/playlist?list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl (2023.05.06)


책과 강의를 통해 학습한 내용을 요약 정리했습니다.
profile
인간은 적응의 동물

0개의 댓글