SMP(Symmetric Multi Processing)란?
여러 개의 프로세서(CPU)가 같은 성격의 일을 하는 Multi Processing입니다. 예를 들어, 여러 개의 프로세서가 모두 사용자 프로그램을 실행하는 일을 한다면 SMP라고 부릅니다.
이에 반대되는 개념으로는 ASMP(Asymmetric Multi Processing)가 있습니다. 프로세서가 다른 프로세서들과는 다르게 자신만은 전담 역할이 있는 경우에 ASMP라고 부릅니다.
이제 프로그램이 어떤 식으로 실행되는지 살펴보겠습니다.
위 그림에서 컴퓨터는 이미 부팅이 되어 운영체제가 메인 메모리 안에 들어와 있다고 하겠습니다.
여러 개의 프로세서가 있지만, 이 프로세서들이 알아서 프로그램을 실행하는 것은 아닙니다.
운영체제가 프로그램을 실행하도록 명령을 내려줘야만 프로세서는 그 명령에 따라 프로그램을 실행하는 것이죠.
예를 들어, 운영체제가 첫 번째 프로세서에게는 프로그램 A, B, C를, 두 번째 프로세서에게는 프로그램 C, D를 실행하라고 지시를 했다고 하겠습니다.
그럼 프로그램 A, B, C, D, E는 모두 실행되어야 하는 프로그램이니까 메인 메모리에 들어와 있겠죠.(운영체제의 아래, 사용자 프로그램이 들어오는 공간에)
A, B, C 순서대로 프로그램을 실행한다고 할 때, 첫 번째 프로세서는 우선 프로그램 A를 실행하기 위해 메인 메모리에 가서 프로그램 A의 코드(명령어) 가져와 실행을 할 것입니다.
그리고, 타임 슬라이스만큼 시간이 지나면 다시 메인 메모리에 가서 프로그램 B의 코드를 가져와 실행하고, 또 타임 슬라이스가 지나면 메인 메모리에 가 프로그램 C의 코드를 가져와 실행하고 이 과정을 반복하게 됩니다.
두 번째 프로세서도 마찬가지로 메인 메모리에서 프로그램 D의 코드를 가져가 실행하고, 다시 프로그램 E의 코드를 가져가 실행하는 것을 반복하겠죠.
이런 식으로 여러 개의 프로세서가 실행하는 프로그램은 다르지만, 모두 같은 방식으로 사용자 프로그램을 실행하기 때문에 대칭형 Multi Processing이라고 부르는 것입니다.
✅ 정리
여러 개의 프로세서가 대칭형(같은 성격)으로 일을 하는 것을 SMP(Symmetric Multi Processing)라고 한다.
'운영체제' 카테고리의 다른 글
[운영체제] 운영체제의 구성 (0) | 2023.04.03 |
---|---|
[운영체제] Timesharing (0) | 2023.04.02 |
[운영체제] Multi Programming vs Multi Processing (0) | 2023.04.02 |
[운영체제] Uni Programming, Multi Programming (0) | 2023.04.01 |
[운영체제] 운영체제 개요 (0) | 2023.03.28 |