multiprocessing – 멀티프로세싱
멀티프로세싱은 한 개 이상의 컴퓨터 프로세서들이 협력하여 프로그램들을 처리하는 것이다. 멀티프로세싱은 서로 협력하여 작업을 하고 있는 두 대 이상의 컴퓨터 중 한 대에 프로그램을 동적으로 할당하는 것을 의미하거나, 또는 같은 프로그램을 동시에 병렬로 처리하고 있는 여러 대의 컴퓨터들을 가리키는 일반적인 용어이다. 병렬처리의 출현과 함께, 멀티프로세싱은 SMP와 MPP로 나뉘어졌다. SMP에서, 프로세서들은 메모리와 I/O 버스 또는 데이터 경로를 공유하며, 한 개의 운영체계가 모든 프로세서들을 관장한다. SMP는 다른 말로 “모든 것을 공유하는 시스템”이라고 할 수 있는데, 프로세서의 개수는 대개 16개를 넘지 않는다. MPP는 최고 200개 이상의 프로세서들이 같은 프로그램을 처리할 수 있다. 각 프로세서들은 자신들만의 운영체계와 메모리를 각각 갖고 있지만, 프로세서들 간에 메시지를 주고받을 수 있는 데이터 경로의 배열은 서로 연결되어 있다. MPP에서는 프로세서들 간에 공유 데이터베이스의 분할을 어떻게 할 것인지, 프로세서들간에 작업을 어떻게 할당할 것인지 등에 관한 구상이 요구되므로, 설정이 더욱 복잡한 것이 보통이다. MPP 시스템은 “공유하는 것이 없는 시스템”으로 불리기도 한다. 멀티프로세싱을 하나의 프로세서에 두 개 이상의 프로그램이 교대로 실행되는 멀티프로그래밍과 혼동해서는 안된다. 멀티프로그래밍이라는 용어는 요즈음에는 대부분의 컴퓨터 운영체계가 멀티프로그래밍을 지원하므로 잘 쓰이지 않는 용어가 되었다. 또한 멀티프로세싱을, 프로그램들의 관리와 프로그램이 태스크로서 요청하는 시스템 서비스들이 공존하는 멀티태스킹이나, 컴퓨터를 통한 다중실행 경로의 관리와 여러 사용자들이 프로그램 하나를 공유하는 멀티스레딩 등과 혼동하지 않아야 한다.