Conflicting Operations
포스트 난이도: HOO_Middle
# Conflicting Operations
스케줄에 따라 작업이 이루어지다 보면 operations에 충돌이 발생할 수 있다.
따라서 충돌이 발생하지 않도록 스케줄 구성을 잘해주어야 한다.
충돌이 발생하는 이유는 Interleaved schedules 경우나 Parallel schedules 경우에 발생할 수 있다.
하지만 나눠서 하는 작업인, Interleaved processing에서 많이 발생하는 편이다.
각기 다른 Transactions에서 Operations가 이루어질 때 x라는 동일한 아이템을 가지고 접근하여 작업을 수행하다 발생하는 것을 Conflicting operations라고 부른다.
예를 들어 아래와 같은 경우가 Conflicting operations에 해당한다.
# Read-write Conflict
r1(x) and w2(x) conflinct
r2(x) and w1(x) conflict
예를 들어 read 하는 r이 존재하고 write 하는 w가 존재한다고 가정했을 때, r1(x)와 w2(x) 작업이 이루어지면, Read-write conflict가 발생한다.
왜냐하면 r1(x)과 w2(x)는 다른 opeations을 나타내고 있기 때문에 2개의 다른 결과가 산출된다.
r2(x)와 w1(x)도 순서만 다를 뿐 Read-write conflict에 해당한다.
# Write-write Conflict
Write-write conflict도 RW conflict가 크게 개념은 다르지 않다.
두 개의 operations이 서로 다르기에 산출되는 결과도 다르다는 것이다.
한마디로 원하는 결과가 아닌 전혀 다른 결과가 산출된다.
예를 들어, w1(x) w2(x) 작업이 이루어지면 이것이 바로 Write-write conflict인 셈이다.
# Conflict 아닌 예시
r1(x)와 r2(x)의 경우에는 conflict가 발생하지 않는다.
둘 다 read이기 때문에 operations가 수행되어도 문제가 되지 않는다.
또한 w2(x),w1(y)가 operations 될 경우 x와 y로 operation 되는 데이터가 다르기 때문에 이 역시도 conflict가 발생하지 않는다.
물론 같은 x라는 데이터로 접근할 경우 overwritten이 발생하여 원하는 결과가 산출되지 않을 수 있다.
r1(x)와 w1(X)도 같은 transaction이며, read와 write가 이루어지기 때문에 conflict가 발생하지 않는다.
'Computer Science' 카테고리의 다른 글
[Computer Science] SI 개발자인데 제안서를 써야하나요? (0) | 2023.06.11 |
---|---|
[Computer Science] 해밍코드 예제(Example of Hamming Codes) (0) | 2023.04.06 |
[Automata] Examples of Tree Structure and Regular Expression (0) | 2022.05.09 |
[Automata] Complexity (0) | 2022.05.08 |
[Automata] Turing Machine(튜링 기계) (0) | 2022.05.08 |
댓글