이 문제는 병행성(Concurrency)에 대한 얘기를 하고 있습니다.

 

a.

세 사람이 행한 일이 완전히 끝난 다음에 남아있는 balance 값을 적는 문제입니다.

세 사건이 일어나는 순서의 개수는 3! = 6가지입니다.

Peter의 일을 ⓐ, Paul : ⓑ, Mary : ⓒ로 하겠습니다.

 

첫 번째 일 - 두 번째 일 - 세 번째 일 : 최종 balance 값

ⓐ - ⓑ - ⓒ : 45원

ⓐ - ⓒ - ⓑ : 35원

ⓑ - ⓐ - ⓒ : 45원

ⓑ - ⓒ - ⓐ : 50원

ⓒ - ⓐ - ⓑ : 40원

ⓒ - ⓑ - ⓐ : 40원

 

같은 일이라 하더라도 그 결과값이 다르군요.^^;;;

 

 

b.

모든 프로세스가 뒤섞여 돌아가는 시스템이라는 것을 정확히 이해하지 못했지만,

그림 3.29와 같은 시간 흐름도라고 하였기에 이를 바탕으로 만들었습니다.

 

여기서 은행 계좌에 들어오는 순서는 위에서 말한 것처럼 총 6가지입니다.

따라서 50원이거나 80원이거나 110원이 남게됩니다.

그럼 정말 난감한 일이 되네요.^^;;

 

 

참조

해럴드 애빌슨, 김재우 역, <컴퓨터 프로그램의 구조와 해석>, 인사이트, 2007, pp. 392

크리에이티브 커먼즈 라이센스
Creative Commons License

글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.

트랙백 주소 :: http://nosyu.pe.kr/trackback/1593

댓글을 달아 주세요

[로그인][오픈아이디란?]