Race Condition

김민영·2023년 2월 12일
0

CS 스터디

목록 보기
24/32

정의

  • 임계 구역 : 둘 이상의 프로세스가 동시에 접근하면 문제가 발생하는 영역
  • 둘 이상의 프로세스가 임계 구역 동시에 접근하려고 하면 Race Condition 레이스 컨디션이 발생함
  • 하나의 자원을 두고 여러 프로세스가 경쟁하는 상황
  • 직면하는 제어 문제
    • Mutual exclusion, Deadlock, Starvation
  • Mutual exclusion
    • 두 개 이상의 프로세스가 공유 자원에 동시에 접근하지 못하도록 함
    • 교착 상태가 발생할 수 있다.
  • Deadlock
    • 두 프로세스가 각자 실행하기 위해서 두 자원에 접근해야 한다면, 다른 프로세스의 작업이 끝나기를 기다려야한다. 서로 기다리느라 멈춰버리는 경우, 교착 상태에 빠진다
  • Starvation
    • 프로세스가 진행하지 못하고 영구적으로 블록된 상태.
  • 스레드, 프로세스의 실행 순서를 잘 조절해야 한다.
  • OS는 다른 프로세스의 의도하지 않은 간섭으로부터 각 프로세스의 데이터 및 물리적 자원(메모리, 파일, I/O 장치 등)을 보호해야 함.

예방법

Semaphore

  • 리소스의 상태를 나타내는 카운터.
  • 자원에 몇 개의 프로세스가 접근이 가능한지 표기

Mutex

  • 공유 자원에 한 번에 하나의 프로세스만 접근할 수 있도록 함.
  • locking, unlocking을 통해 상호 배제
profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글