상세 컨텐츠

본문 제목

Multiprocessor, Multiprograming

Computer Science/OS

by yellowmarine 2020. 10. 13. 17:40

본문

Multiprocessor vs Multiprograming

Multiprocessing

  • 컴퓨터 시스템 하나에서 여러 CPU(core)를 두는 구조.
  • 다른 말로는 병렬처리 시스템이라고도 한다.

종류

Asymmetric Multiprocessing
  • Master, slave 구조의 프로세서 구조를 가진다.
  • 프로세서 각각은 private memory를 가진다.
  • 하나의 master가 나머지 slave들을 관리 하기때문에 동기화의 문제(메모리 접근, 우선순위 등) 문제가 발생하지 않는다.
  • 위의 문제가 없기 때문에 비교적 쉬운 구조이다.
Symmetric Multiprocessing
  • Master, slave 구조가 없다.
  • 프로세서들은 메모리를 공유한다.
  • 각각의 프로세서가 메모리에 접근이 가능하기때문에 동기화의 문제가 발생할 수 있다.

Memory access

UMA(Uniform memory access)
  • 모든 프로세서가 상호 연결이 되어있어 하나의 메모리를 공유하는 기술이다. 즉, 동일한 bus를 공유한다는 뜻이다.
  • 프로세서들은 모든 메모리 영역에 접근이 가능하며, 접근 시간이 동일하다.
  • 하지만 메모리연결이 많아지는 구조에서는 효율성이 떨어진다.
NUMA(Non-uniformed memory access)
  • UMA의 경우와 다르게 각각의 CPU가 로컬 메모리를 가지게 됨으로 동시에 여러 작업을 진행 할 수 있다.
    • ex) CPU에 소켓이 여러개 있다고 가정했을때 물리적인 주소의 일정부분들을 각각의 소켓(bus)에 배정을 하고 local memory로 사용 할 수 있도록한다.
  • 만약 로컬 메모리가 부족할 경우, 다른 곳에 배정된 메모리에 접근하여 사용할 수 있다.
  • 프로세서와 메모리의 상대적인 위치에 따라서 접근 시간이 달라질 수 있다.
여담
  • Cluster 시스템을 생각해보자.
    • ex) k8s의 클러스터링 시스템을 사용한다고 가정할 경우 NUMA의 모델은 각각의 프로세서가 하나의 node가 되고 여러개의 node들이 합쳐 하나의 클러스터를 형성하게 된다.
    • 나아가서 생각해보면 k8s의 경우 모든 노드의 헬스 체크 및 모니터링을 위해 chron job이 실행된다. 그러므로 이러한 cpu의 상황을 체크하기 위한 프로그램이 필요하다고 생각 할 수 있으며 NUMA의 경우도 master, slave 구조를 띄고 있다고 생각 할 수 있지 않을까?

장점

  • 다수의 CPU를 통해 많은 일을 동시에 많은 일을 실행 시킬 수 있다.

  • 여러 프로세서가 존재함으로 하나의 프로세서가 고장나더라도 문제가 생기지 않는다.

Multiprograming

  • CPU와 I/O 장치가 항상 일을 하도록 만들고 싶다.
  • I/O의 경우 CPU 보다 처리 시간이 매우 느리기때문에 시간적 괴리가 생긴다. 그러므로 I/O 작업이 이루어질 경우 CPU가 다른 일을 하도록 한다.
  • 위의 작업을 위해 scheduling 작업이 필요하고 이를 OS가 할당해준다.

'Computer Science > OS' 카테고리의 다른 글

Virtual Memory  (0) 2024.03.20
IPC(Inter Process Communication)  (0) 2024.03.20
Virtual Machine  (0) 2020.10.15
OS, DMA  (0) 2020.10.13

관련글 더보기