"경쟁 상태"의 두 판 사이의 차이

7번째 줄: 7번째 줄:
*비정상적인 결과가 나올 위험이 있음
*비정상적인 결과가 나올 위험이 있음


===경쟁 상태 이해===
===발생 시나리오===
 
===프로그램의 파일 작성 순서===
===프로그램의 파일 작성 순서===
프로그램이 파일을 수정하기 위해서는 프로그램이 파일의 내용을 먼저 메모리로 읽어들임. 이후 메모리에서 그 내용을 수정한 다음 변경된 메모리의 값을 다시 파일로 쓰게됨.
프로그램이 파일을 수정하기 위해서는 프로그램이 파일의 내용을 먼저 메모리로 읽어들임. 이후 메모리에서 그 내용을 수정한 다음 변경된 메모리의 값을 다시 파일로 쓰게됨.

2018년 6월 16일 (토) 07:01 판

1 개요

race condition, race hazard
경쟁 상태, 경합 상태, 경쟁 조건, 경쟁 위험, 레이스 컨디션, 레이스 해저드
  • 둘 이상의 입력 또는 조작이 동시에 이루어지는 상태
  • 공유자원을 여러 개의 프로세스가 동시에 접근을 시도하는 상태
  • 2개의 입력이 하나의 출력에 영향을 주어 잘못된 출력이 발생할 수 있는 상태
  • 비정상적인 결과가 나올 위험이 있음

1.1 발생 시나리오

1.2 프로그램의 파일 작성 순서

프로그램이 파일을 수정하기 위해서는 프로그램이 파일의 내용을 먼저 메모리로 읽어들임. 이후 메모리에서 그 내용을 수정한 다음 변경된 메모리의 값을 다시 파일로 쓰게됨.

1.3 발생 시나리오

  1. 두 프로그램 A, B 가 존재
  2. A가 먼저 파일을 메모리로 읽어 들이고 메모리에서 그내용을 변경
  3. A가 변경된 메모리의 내용을 파일로 쓰기 이전 B가 동일 파일을 읽고, 고치고, 쓰는 작업을 함
  4. A는 B가 파일을 변경하기 이전의 내용을 가지므로 B의 변경은 사라짐
→ 침입자는 이런 비정상적인 조건을 만들기 위해 수 만번 이상을 시도하며 시스템 침입을 시도함

2 같이 보기

3 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}