병렬계산 관련 용어

In the world/컴퓨터 2009. 7. 30. 10:42
어떤 분야 건 기본적인 용어의 개념을 아는 게 가장 어렵고도 중요한 일 같다.
병렬 계산 관련하여 많이 쓰지만 의미가 헷갈리는 몇개를 정리하면 다음과 같다.

1. 프로세서(processor)
처리기라는 말로 번역할 수 있고, 일반적으로 cpu를 말한다. 하지만 요즘엔 cpu한 개에 여러 개의 코어가 존재하기도 하니, 각각의 코어를 프로세서라고 말할 수 있겠다.

2. 프로세스(process)
프로세서에서 수행되는 어떤 작업을 말하는 단위이다. 보통 프로그램이 실행되면 프로세스가 발생되며, 프로세서에서 수행된다. 프로세서에서는 여러개의 프로세스를 시분할로 수행할 수 있는데, 이 것을 멀티프로세싱이라고 한다.

3. 프로그램(program)
입출력 또는 연산 작업을 수행하도록 만든어진 실행 대상이다. 프로그램을 프로세서를 통하여 실행함으로써 프로세스가 발생하게 되는 것이다.

4. 태스크(task)
프로세스보다 작은 단위로 실행하는 작업의 최소 단위이다. 프로세스는 여러개의 태스크로 구성되어 질 수 있다. 태스크 역시 하나의 프로세서에서 여러개가 실행될 수 있는데, 이 것을 멀티태스킹이라고 한다.

5. 스래드(thread)
프로세스의 실행을 효율 적으로 수행하기 위해서 작업을 병렬화하여 스래드를 나눌 수 있다. 프로세스는 자신만의 메모리 주소를 사용하는데, 같은 프로세스의 스래드는 메모리 주소를 공유하게 된다. 공유메모리 시스템(멀티 코어와 같은)에서 병렬 연산을 할 때 자주 등장하는 개념이다.

이 5가지 용어가 가장 많이 쓰이면서 개념이 모호하여 헷갈린다. 지금도 헷갈리는 부분이 많아서 잘 못 적었을 수도 있겠다.

: