OS - 멀티 프로세서

2024. 3. 10. 23:51·CS

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

본 포스팅에서는 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)가 있다.

'CS' 카테고리의 다른 글

OS - 다중모드 운용과 타이머  (0) 2024.03.12
OS - 멀티 프로그래밍과 멀티태스킹  (0) 2024.03.11
OS - 메인 메모리와 입출력 장치  (0) 2024.03.10
OS - OS가 할일, 컴퓨터 시스템구성  (1) 2024.03.05
'CS' 카테고리의 다른 글
  • OS - 다중모드 운용과 타이머
  • OS - 멀티 프로그래밍과 멀티태스킹
  • OS - 메인 메모리와 입출력 장치
  • OS - OS가 할일, 컴퓨터 시스템구성
devKhc
devKhc
  • devKhc
    개발저장소 by 회창
    devKhc
  • 전체
    오늘
    어제
    • 분류 전체보기 (24)
      • Web-Spring (7)
      • CS (5)
      • Infra (3)
      • DB (1)
      • Java (3)
      • CodeTree (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    이중모드와 다중모드
    운영체제
    Multi-Processor
    인터럽트 #운영체제 #공룡책
    Nginx #proxy #리버스 프록시
    코딩테스트
    Springsecurity
    set-cookie
    springboot #jenkins #CI/CD #Docker #EC2
    JsonTypeInfo
    SpringBoot
    samesite=none
    defaultoauth2authorizationrequestresolver
    다중 코어 시스템
    코드트리
    try with resources
    JsonSubTypes
    인터럽트
    모드비트
    코드트리조별과제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
devKhc
OS - 멀티 프로세서
상단으로

티스토리툴바