ABOUT ME

Today
Yesterday
Total
  • OS - 멀티 프로세서
    CS 2024. 3. 10. 23:51

    컴퓨터 시스템은 사용중인 프로세서의 수에 다라 분류 가능한 다양한 방식이 존재한다.

    본 포스팅에서는 Multi-Processor에 대해 공부한다.

    읽기 앞서 Process 와 Processor 그리고 CPU 등의 용어 정리를 간단하게 정리한다.

    • CPU : 명령을 처리하는 하드웨어
    • Processor : 하나 이상의 CPU를 포함하는 물리적인 칩
    • Process : 메인 메모리위에 load 되어 실행중인 프로그램 인스턴스를 의미
    • multi-core : 동일한 CPU에 여러개의 컴퓨팅 코어
    • multi-processor : 여러 프로세서를 포함하는 시스템

    즉, CPU는 하나 혹은 그 이상의 코어를 포함하고 있는 하드웨어이고

    프로세서는 그러한 CPU를 의미하며 멀티 프로세서는 여러 프로세스 즉, 하나의 시스템이 여러 CPU를 포함하는 것을 의미한다.

    Multi-Processor

    일반적으로 Multi-Processor 단일 코어를 갖고 있는 두 개 이상의 프로세서를 포함한다.

     

    Single-Processor 때 보다 단순하게 Processor가 증가 했으므로 처리량 증가의 이득은 볼 수 있지만

    N개의 프로세스가 증가 했다고 해서 N배 증가하진 않는다.

     

    왜냐하면 두 프로세서가 하나의 작업에 협력할 때

    모든 프로세스가 올바르게 작동하게 만들고, 공유 자원에 대한 질서를 맞추기 위하여 오버헤드가 발생하기 때문이다.

     

    위의 Multi-Processor 시스템의 가장 일반적인 형태는 SMT이다.

    SMT

    Multi-Processor에서 각 프로세서가 운영체제 영역과 사용자 영역을 포함한 모든 명령을 처리하는 시스템을 SMT(Symmetric Multi-Processing) 이라고 한다.

     

    여기서 각 프로세서의 CPU는 개별 캐시 메모리와 개별 레지스터를 갖고 있으며, 버스를 통해 메인 메모리를 공유한다.

     

    여러 프로세서를 갖고 있기 때문에, 여러개의 프로세스를 동시에 처리할 수 있다.

    하지만 이런 SMT시스템은 각각의 CPU가 독립적으로 프로세스를 처리하기 때문에

    한쪽의 CPU가 유휴 상태이며 반대쪽 CPU가 과부하가 걸릴 위험이 있다.

     

    따라서 부하 분산에 있어서 신중하게 설정해야 한다.

    Multi-core

    시간이 지남에 따라 하나의 프로세서 내 하나의 코어를 갖는 시스템에서

    단일 Processor 내 여러 코어를 가지는 Mutli-core 시스템으로 발전하게 된다.

     

    위의 Multi Processor 시스템은 Multi-core 시스템을 포함한다.

     

    보통 멀티 코어 시스템은 하나의 Processor 속 두 개 이상의 코어로 이루어져 있으며

     

    기존의 SMT시스템에서 각 Processor가 독립적으로 프로세스를 처리하기 위해 레지스터와 캐시를 갖고 있엇다면

     

    Multi-core 시스템에서는 보통 각 코어가 레지스터 및 캐시(L1)를 갖고 있으며

    위의 각 코어가 가진 캐시메모리 보다 용량이 더 큰 캐시인 공유 캐시(L2)가 있다.

Designed by Tistory.