IT/OS
SMP [symmetric multiprocessing]
SsaRu
2017. 4. 19. 12:56
최근 병렬 프로그래밍을 공부하고있다. 공부하는 도중 생소하거나 잘 모르는 개념들을 조금씩 정리해보려고 한다.
이번 포스팅은 SMP(Symmetric Multiprocessing)을 다루겠다.
_ 정의
위키피디아의 Symmetric Multiprocessing의 정의를 빌려보면,
"SMP ( Symmetric Multiprocessing ) 는 둘 이상의 동일한 프로세서가 단일 공유 주 메모리 에 연결되고 모든 I / O 장치에 대한 전체 액세스 권한을 가지며 처리하는 단일 운영 체제 인스턴스에 의해 제어되는 다중 프로세서 컴퓨터 하드웨어 및 소프트웨어 아키텍처 를 포함합니다 모든 프로세서는 동등하게 특별한 목적을 위해 아무 것도 예약하지 않습니다. 오늘날 대부분의 멀티 프로세서 시스템은 SMP 아키텍처를 사용합니다. 의 경우 멀티 코어 프로세서 의 SMP 아키텍처는 별도의 프로세서로 처리, 코어에 적용됩니다."
라고 정의되어 있다.
위의 그림을 보면, 프로세서들이 System Bus와 Memory, I/O를 공유하고 있다.
따라서 SMP는 이런 형태로 설계된 하드웨어와 이를 운용하기 위한 소프트웨어를 위한 아키텍쳐라고 할 수 있다. 이는 적절한 운영체제 정책(프로세스 스켸쥴링, 인터럽트, 로드밸런싱)에 따라서 운용되어야 한다. SMP에서 모든 프로세서는 운영체제 코드를 실행하고, I/O 오퍼레이션을 담당할 수 있다. 오늘날 대부분의 멀티프로세서 시스템은 SMP 아키텍쳐를 사용한다.