책 내용 질문하기
2권 177page의 모순성 관련 질문입니다.
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
177
조회수
43
작성일
2017-04-11
작성자
첨부파일

모순성 설명을 하시면서

T1을 실행한 사용자는 A가 3700이 되기를 기대했는데 T2때문에 3800이 되었기에 일관성에 위배된다고 설명을 해 주셨는데,

이 문제는 T1과 T2가 같은값에 대해 변경 요구를 했고,

분리 실행되었을때(직렬 실행)도 T1과 T2를 마치면 A의 값은 3800으로 변하는게 정상이잖습니까?

어떤부분이 모순이라고 말씀하시는지 이해가 되지 않습니다.

T1과 T2가 서로 다른 사용자가 요청을 한 것이라면 그 사용자가 요청을 잘못한것이지 불일치와는 관계 없어 보입니다.

답변
2017-04-12 09:21:28

안녕하세요.

질문 주신 것처럼 T1과 T2가 작업을 마치면서 A의 값은 3800으로 변하는게 정상이 맞습니다.

하지만 정상으로 작업이 수행되지 않기 때문에 모순성이 발생한다는 것이죠.

병행제어를 수행하지 않으면 처리과정에서 문제가 발생하게 되어 있으므로 이후 학습할 병행제어 기법을 이용해 모순성을 방지하는 것입니다. 표는 모순성이 발생하는 과정을 설명하기 위한 것으로 T1의 의도는 A에 100을 더하는 것이고 T2의 의도는 A에 200을 더하는 것인데, 이러한 의도와 다르게 A의 초기값 3500을 T1과 T2가 병행수행하는 과정에서 의도하지 않는 결과가 산출된다는 것으로 표현한 것입니다.

T1에서 write(A)한 것을 T2가 확인할 수 없어 T2는 자신이 A+200을 수행할 때 A가 3500이라고 생각하고 작업을 수행하지만 병행제어 기법이 적용되지 않은 상태에서는 내부적으로 값이 변경된 이후의 A값 3600에 +200을 수행하므로 모순이 발생하게 된다는 것으로 표현한 것입니다. 또한 최종적으로 T2 작업에 의해 T1에서 수행한 +100은 의미가 없어지게 됩니다. T1과 T2 작업에 의해 A는 최종적으로 3800을 갖게 되므로 T1, T2 모두 의도와 다른 결과를 갖게 됩니다.

오늘도 즐거운 하루 되세요.

  • *
    2017-04-12 09:21:28

    안녕하세요.

    질문 주신 것처럼 T1과 T2가 작업을 마치면서 A의 값은 3800으로 변하는게 정상이 맞습니다.

    하지만 정상으로 작업이 수행되지 않기 때문에 모순성이 발생한다는 것이죠.

    병행제어를 수행하지 않으면 처리과정에서 문제가 발생하게 되어 있으므로 이후 학습할 병행제어 기법을 이용해 모순성을 방지하는 것입니다. 표는 모순성이 발생하는 과정을 설명하기 위한 것으로 T1의 의도는 A에 100을 더하는 것이고 T2의 의도는 A에 200을 더하는 것인데, 이러한 의도와 다르게 A의 초기값 3500을 T1과 T2가 병행수행하는 과정에서 의도하지 않는 결과가 산출된다는 것으로 표현한 것입니다.

    T1에서 write(A)한 것을 T2가 확인할 수 없어 T2는 자신이 A+200을 수행할 때 A가 3500이라고 생각하고 작업을 수행하지만 병행제어 기법이 적용되지 않은 상태에서는 내부적으로 값이 변경된 이후의 A값 3600에 +200을 수행하므로 모순이 발생하게 된다는 것으로 표현한 것입니다. 또한 최종적으로 T2 작업에 의해 T1에서 수행한 +100은 의미가 없어지게 됩니다. T1과 T2 작업에 의해 A는 최종적으로 3800을 갖게 되므로 T1, T2 모두 의도와 다른 결과를 갖게 됩니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.