세탁(30분), 탈수(20분), 건조(40분)
로 구성된 세탁 시스템이고,
갑, 을, 병, 정 4사람이 세탁을 하려고 할 때,
순차적 세탁 시스템 -> 총 시간 360분(90x4)
병행 세탁 시스템(세탁, 탈수, 건조 분리)
-> 총 시간 210분(90 + 40 + 40 + 40)
이와 같이 병행 세탁 시스템에서 첫번째 사람 이외에 다른 사람이 세탁을 끝내는데
부가적으로 더 필요한 시간은 병행 세탁 시스템에서 가장 느린 장치, 여기서는 건조기가
되는데, 의 시간이다.
즉 병행 세탁 시스템에서 각 단계별 소요 시간이 A,B,C라고 하면
첫번째 사람은 소요 시간이 A+B+C 만큼 걸리고
두번째, 세번째, 네번째 사람은
각 max(A,B,C)분만큼 추가로 더 시간 들이면 세탁 끝내는건데
왜 이렇게 되는건지 이해가 안가
프로그래머가 몰랐던 멀티코어 CPU 이야기 이책임? 파이프라인 세탁기 비유
아니 다른책이긴 한데 어쨋든 알면 답변 좀 줘 며칠째 이거 이해도 안가
그게 맞다면 종합기능 세탁기를 기능하나만 기 가진 세탁기를 하나씩 가지는 그거?
그림 같이 안나왔어? 그럼 이해 바로 되는데
그림을그렵ㅎ어요 - DCW
뭐가 이해가안된단거임?
순차보다 병행이빠른게?
아니 병행 세탁 시스템에서 세탁 30분, 탈수 20분, 건조 40분이라고 하면
갑, 을, 병, 정이 한다고 하면 갑은 90분 걸리잖아
그리고 갑 끝나고 을 끝날 때까지 걸리는 시간 40분이고
마찬가지로 을 끝나고 병 끝날 때까지 걸리는 시간 40분이고, 마찬가지로 병 끝나고 정 끝날 때까지 걸리는 시간 40분이잖아
이처럼 갑 끝나고 을, 을 끝나고 병, 병 끝나고 정 -> 걸리는 시간 다 40분인데
이 40분이라는게 뭐냐 세탁 시스템의 각 요소 3개 중에 가장 느린 세탁 시스템의 시간이잖아
추가적으로 걸리는 시간이랑 가장 느린 장치의 지연과 무슨 상관이 있냐 이게 내 질문의 요지야
가장 느린장치가 있으면 앞단계가 끝나도 기다려야 하잖아
가장 느린 시간이라기 보단 가장 마지막의 시간 아님?
가장 느린 시간이라고 책에 적혀있고 내가 몇가지 예로 해보니까 가장 느린 장치의 지연인건 맞는듯 근데 이유를 모르겠어
걍 갑은 각시스템의 소요시간을 서칭해본거고 을병정은 가장효율적인 순서대로 시행햇단식으로 이해하면되는거아닌가싶은데
우물안올챙이// 그렇게 간단한 문제는 아닌거같아 경우의 수가 너무 다양하거든 예를 들어 A,B,C 3단계로 구성되어있다고 할 때, 갑이 A,B,C 끝났을 때 을은 여전히 B처리하고 있고 그거 다 끝나고 C하고 이런 경우도 있는데 이런 경우에도 결국 갑 끝나고 을 끝날 때까지 걸리는 시간이 가장 느린 장치의 지연 시간만큼 이더라고
수정 한 10번은 한듯 오타 때문에 죄송
한가지 요청을 처리할때는 전체과정 시간이지만 여러개 요청이면 + ((요청수-1) * (최대병목지점))
그니까 그 이유가 뭐냐 이게 궁금한거지
ABC중 B가 병목이면 다른 요청이 A단계를 끝내고도 B단계에 진입을 못해서 시간을 낭비하게 되자너 이낭비 시간은 B-A 시간인데 이거랑 A합치면 최대비용인 B고
표그려준거에 대입해서 해봐
왜긴 기다려야 하니까지;;;
아무래도 책이 설명을 잘 못하는듯
A,B,C로 구성된 세탁 시스템에서 A가 제일 시간 오래 걸리면 지연 시간이 A걸리는 시간만큼인데 이건 왜 그런데?
경우의 수가 너무 다양해 A,B,C에서 A가 가장 긴 경우, B가 가장 긴 경우, C가 가장 긴 경우 등등
A=B이고 A,B가 가장 긴 경우
그럼 작업요청수가 10이면 A+B+C + ((10-1) * A) 식은 똑같아
대입이 문제가 아니라 원리나 이유를 알고 싶어
아;;;
이제 알았다 참조
http://gall.dcinside.com/board/view/?id=programming&no=634999
A,B,C 로 구성된 세탁 시스템에서 A가 가장 긴 경우 갑은 A,B,C 끝내고 다 끝냈을 때 을은 B처리하고 그 이후에 을이 C처리하고 을이 C까지 끝냈을 때 병은 B하고 있고 그 후 병이 C 끝내고 이 경우에는 아무도 기다리는게 없는데도 걸리는 추가 시간이 가장 긴 A 시간만큼인데 이건 어케 설명함?