Useful Information

악마의유혹 2009. 2. 24. 23:38

  기본적으로 Windows 시스템은 사용자가 아무것도 안하고 있는 중에도 Background로 수많은 프로세스가 돌아 갑니다. Windows 작업관리자에서 확인해보시면, 응용 프로그램 탭이 비어있는 상황에도 프로세스 탭에는 많은 프로그램이 수행되고 있는 것을 확인하실 수 있습니다. 즉, 질문자 님께서 단순 연산을 수행했다고 생각하셨지만, 실제로는 여러개의 프로세스가 동시에 수행되던 중에, 또 하나의 프로세스를 추가한 것과 같습니다.

 여러개의 프로세스가 동시에 수행되기 위해서는 여러개의 프로세스를 작은 작업단위로 분할한 뒤에, 프로세스 마다 부여된 우선순위를 고려해서 순서를 정해서 하나씩 순차적으로 수행하게 됩니다. 작은 단위로 분할하는 것은 Pipeline 알고리즘과 병렬처리를 이용하는 것이고, 순차적으로 수행하는 방법(Scheduling)에도 여러가지 알고리즘이 있습니다. 자세한 내용은 Operating System과 관련된 책을 읽어보시는 것이 좋겠습니다.

 Single core와 Multi core의 성능차이를 비교하는 비유로 흔히 엘레베이터를 듭니다. 여러 명의 사람들이 (여러 개의 프로세스) 엘레베이터를 탈 차례를 기다리고 있습니다 (Scheduling). 엘레베이터가 한 대라면, 어떠한 방법을 사용해도 엘레베이터 한 대로는 엘레베이터가 움직이는 동안에 다른 사람들은 멍 하니 기다릴 수 밖에 없습니다.

 하지만, 엘레베이터가 여러 대라면 (Multi core) 라면 어떨까요? 사람들이 기다리는 시간은 상대적으로 줄어들 것입니다. 건물이 낮은 건물이라면 차이가 별로 안느껴 지겠지만, 건물이 높으면 높을 수록, 한 대와 두 대의 차이는 더 크게 느껴질 것입니다. 질문자님이 말씀하신 프레스캇 3.0Ghz는 20인승 엘레베이터 한 대가 있는 건물이고, T2450 듀얼 코어 2.0Ghz는 15인승 두 대가 있는 건물이라고 생각하시면 쉽게 이해가 되실 것입니다.

 

출처 - 네이버 지식IN