ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Operating System - 경쟁 상태(Race Condition)
    Computer Science/Operating System 2022. 1. 24. 13:00

    경쟁 상태(Race Condition)

    경쟁 상태란?

    ㆍ 프로세스가 어떤 순서로 데이터에 접근하느냐에 따라 결괏값이 달라질 수 있는 상황을 말한다.

    ㆍ 둘 이상의 입력이나 조작이 동시에 일어나 의도하지 않은 결과를 가져오는 경우를 말한다.

    ㆍ 공유 자원에 여러 프로세스가 동시에 접근할 때 자료의 일관성을 해치는 결과가 나타날 수 있다.

    ㆍ 경쟁 상태로 교착상태의 종류 중에 하나이다.

     

    경쟁 상태가 발생하는 상황

    커널 작업을 수행하는 중에 인터럽트가 발생하는 경우

    ㆍ 문제점 : 커널 모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우에 발생한다.

    ㆍ 해결법 : 커널 모드에서 작업을 수행하는 동안, 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하게 한다.

     

    프로세스가 System Call을 하여 커널 모드로 진입해 작업 수행 도중 문맥 교환이 발생하는 경우

    ㆍ 문제점 : Process 1이 커널 모드에서 데이터를 조작하던 도중 시간이 초과되어 CPU 제어권이 Process 2로 넘어가 같은 데이터를 조작하는 경우를 말한다.

    ㆍ 해결법 : 프로세스가 커널 모드에서 작업을 하는 경우 시간이 초과되어도 CPU 제어권이 다른 프로세스에게 넘어가지 않도록 한다.

     

    멀티 프로세서 환경에서 공유 메모리 내의 커널 데이터에 접근하는 경우

    ㆍ 문제점 : 멀티 프로세서 환경에서 2개의 CPU가 동시에 커널 내부의 공유 데이터에 접근하여 조작하는 경우 발생한다.

    ㆍ 해결법 : 커널 내부에 있는 각 공유 데이터에 접근할 때마다 해당 데이터에 대해 lock 또는 unlock을 함으로써 해결할 수 있다.

     

    728x90

    댓글

Designed by Tistory.