Skip to content

Race Condition 개념과 발생 원인 #12

@Jinsun-Lee

Description

@Jinsun-Lee
  • 정의: 두 개 이상의 프로세스나 스레드가 공유 자원에 동시에 접근하여 읽거나 쓰려고 할 때, 접근 순서나 타이밍에 따라 실행 결과가 달라지는 상태
  • 원인: 근본적인 원인은 하이레벨 언어의 한 줄 코드가 실제로는 여러 개의 기계어 명령어로 쪼개져서 실행(비원자적)되기 때문입니다. 이 쪼개진 명령어들 사이로 OS 스케줄러에 의해 문맥 교환(Context Switching)이 발생하면, 다른 스레드가 변경 전의 데이터를 읽어가거나 덮어쓰게 되어 데이터 무결성이 깨지게 됩니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions