댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
개념
2013.03.26 17:33
Symmetric Multiprocessing (대칭형 멀티 프로세싱 : SMP)
조회 수 17294 댓글 0
Symmetric Multiprocessing (대칭형 멀티 프로세싱 : SMP) 이란 무엇인가? SMP는 한 개 이상의 프로세서가 장착되고 각 프로세서에 부하를 똑같이 분배시킬 수 있는 운영체제가 구비된 컴퓨터 시스템을 설명하는데 사용되는 단어이다.
다른 종류의 멀티프로세싱도 있는가? 그렇다. Asymmetric Multiprocessing(비대칭형 멀티 프로세싱)이란 것이 있다. Asymmetric 시스템은 각각의 프로세서에 특정한 업무를 부여한다. 이러한 시스템은 SMP 시스템처럼 가장 부하가 적은 CPU에 작업을 맏길 수 있는 유연성을 가지지 못한다. 현재의 주류OS 들은 Asymmetric Multiprocessing을 지원하지 않는다.
어떤 운영체제가 SMP를 지원하는가? 모든 버전의 마이크로소프트 윈도우 NT와 함게 앞으로 출시될 윈도우 2000이 SMP를 지원한다. 유닉스의 대부분은 SMP를 지원한다. 새로운 버전의 리눅스도 SMP를 지원하고 BeOS도 SMP를 지원한다.
윈도우 95나 98은? 윈9X 시스템은 멀티프로세서 시스템에서 잘 동작하지만 한 개의 프로세서만 사용하는 것이다. 윈9x와 NT, 혹은 다른 SMP 가능한 OS간에 안전하게 듀얼 부팅이 가능 하다.
SMP 가능한 운영체제에서 모든 프로그램이 한 개 이상의 프로세서를 사용하는가? 그렇지 않다. 프로그램이 다중 프로세서를 사용하려면 멀티쓰레딩 되어야 한다. BeOS의 경우 모든 어플리케이션이 자체적으로 멀티쓰레드를 지원하는 것으로 알려져 있고 이것은 몇몇 간단한 테스트를 해보니 사실로 확인되었다.. 여하튼 더 많은 연구가 이 분야에서 이루어져야 할 것이다.
멀티쓰레딩(Multithreading)이란? 프로그램들이 업무를 쓰레드로 분리해내는 것을 의미한다. 현재까지 주요 어플리케이션들은 싱글 쓰레딩으로 짜여져 왔다. 이것은 프로그램이 선형적인 방법으로 실행된다는 것을 의미한다. 멀티쓰레딩된 프로그램은 다중 프로세서에서 어떠한 업무라도 병렬적으로 실행될 수 있게 짜여진 것이다. 멀티쓰레드 프로그램을 작성하는 것은 더 많은 시간과 기술을 필요로 하는데 이것은 쓰레드 스케쥴링 같은 추가적인 고려를 해야 하기 때문이다. 스케쥴링은 쓰레드를 동기화 되게 유지 시켜주는 것이고 모든 것이 순서대로 일어나고 있는지 확인하는 작업이다. John Carmack이 퀘이크 3 아레나를 다중 프로세서에 최적화 할 수 있다는 것 자체가 그의 프로그래밍 기술을 증명하는 것이기도 하다.
내가 사용하는 어떤 프로그램에 멀티쓰레딩 되어 있는가? 현재로서 다중 프로세서를 사용하는 유일한 게임은 퀘이크3이다. 더 많은 사람들이 멀티프로세서 시스템을 구입하게 되면 멀티쓰레딩을 사용하는 게임이 더 늘어날 것이다. 고급 레벨 측면에서 보자면 3D 렌더링 프로그램과 CAD/CAM 프로그램이 SMP 사용이 가능하다. Adobe의 디지털 이미지와 비디오 편집 도구가 다중 프로세서를 훌륭하게 사용한다. L0phtcrack 이라는 NT 비밀번호 크랙 프로그램도 다중 프로세서를 사용한다. RC5 도전 소프트웨어 또한 멀티 쓰레딩된 소프트웨어 이다. 일반적으로 멀티쓰레딩 소프트웨어는 하이엔트 비즈니스 소프트웨어 들이고, 특히 설계 부분에서 일반화 되어 있다.
그다지 많은 프로그램이 SMP를 지원하지 않는데 내가 멀티프로세서 시스템이 필요한가? 응답성이 좋고 더 좋은 멀티태스킹을 보장한다. (본인이 사용하는 듀얼 펜티엄 프로 233으로 오버클럭된 시스템에서 MP3 재생, CD 굽기, 퀘이크2 네트워크 게임을 동시에 실행하였다. 프레임 레이트가 저하되거나 mp3가 끊긴다거나 CD가 에러나 나는 현상이 전혀 없었다. 같은 일을 단일 프로세서 시스템에서 해보기를. 아마 당장 다운되는 현상을 겪을 것이다. 멀티프로세서 시스템에서는 여러 산재한 프로세서들을 충분히 다룰 수 있는 CPU 파워를 가지게 된다. 한번에 많은 프로그램을 띄우는 사람들이라면 SMP는 충분히 이런 사용자를 위한 것이다. - J.C)
멀티 프로세서 시스템을 만들기 위해서 갖추어야 할 것은? 단일 프로세서 시스템에서 프로세서의 값에 2를 곱하면 된다. 멀티 프로세서 마더보드도 필요한데 이를 제작하는 3개의 유명한 마더보드 제조업체가 있다. ASUS, Supermicro 와 Tyan이다. 추가로 오버클러킹의 왕자 Abit는 최초로 듀얼 셀러론 마더보드를 출시하기도 했다. 물론 멀티프로세서 보드가 비싸기는 하지만 그만큼의 가치가 있다. 듀얼 보드를 사는 대부분의 사람들은 대부분 웍스테이션 용도로 구매를 하므로 그러므로 이런 보드들은 일반적인 보드들 보다 더 안정적이라는게 정설이다. 추가로 대부분의 멀티 프로세서 보드들은 SCSI가 내장되어 있다.
멀티프로세서 시스템을 갖추기 위해서 어떤 종류의 CPU가 필요한가? 현재로서는 인텔의 프로세서나 AMD의 애슬론이다. AMD가 Athlon을 발표하기 이전에 인텔만이 X86 멀티프로세서 시스템에서 유일한 선택이었다. 1999년의 10월 초인 현재에 애슬론을 지원하는 멀티프로세서 마더보드는 아직 없다. 애슬론이 인텔에게서 고수익의 서버 시장을 얼마나 뺐어올지, 성능이 어떠할지 구경하는 것은 매우 흥미스러운 일이기도 하다.
프로세서의 스테핑과 캐쉬 크기는? 다중 프로세서를 운영하기 위해서는 CPU들이 같은 스테핑과 같은 캐쉬크기이어야 한다는 주장이 있는데 이것은 사실이 아니다. 인텔에 따르면 같은 프로세서 패밀리만 필요하다고 한다. 이게 전부다. 인텔은 멀티 CPU중 낮은 프로세서의 클럭속도에 맞추어도 OK라고 했다. 1MB 이상이 아니면 캐쉬 크기가 섞이는 것도 인텔에서는 괜찮다고 한다. 물론 같은 크기의 캐쉬를 가진 같은 프로세서들을 구비하는 것이 가장 좋지만 현재 있는 것만으로도 SMP를 시도해보는 것도 괜찮겠다.
그러다면 몇 개까지 프로세서를 사용할 수 있는가? 이것은 전체적으로 운영체제와 사용자가 부담할 수 있는 비용에 달려 있다. 윈도우 NT 웍스테이션은 2개까지 지원하고 NT 서버는 4개까지 지원한다. NT 서버 엔터프라이즈 버전은 8개까지 지원한다. 윈도우 NT는 Hardware Abstraction Layer, HAL 이라는 것을 사용하는데 이것은 NT가 실행되는 하드웨어 플랫폼의 종류는 정의하는 것이다. 벤더는 자신들이 특정한 기능을 원하면 스스로 고유의 HAL을 작성하도록 선택할 수 있다. 예로서 SGI는 자사의 NT 웍스테이션에 사용되는 고유의 HAL은 4개의 프로세서까지 지원한다. BeOS의 경우는 8개까지의 프로세서를 현재 지원하며 앞으로 더 많은 프로세서를 지원할 예정이라고 한다. 현재 리눅스는 최대 8개까지의 프로세서를 지원한다. 리눅스의 중요한 매력하나는 만약 사용자가 원하면 스스로 커널을 수정해서 얼마든지 기능 향상이 가능하다는 것이다. 일단 사용자가 OS를 선택하면 사용자의 CPU 종류를 몇 개까지 사용할 수 있는지 알아야 한다. 현재 멀티프로세싱의 왕좌는 펜티엄II/III Xeon이다. 이것은 현재 8개까지의 멀티프로세싱을 지원한다. 펜티엄 프로는 4개까지를 지원하고 펜티엄II와 셀러론 펜티엄 프로세서는 듀얼까지를 지원한다. 여기서 지원한다는 의미는 Glueless multiprocessing을 지원한다는 것인데 이것의 의미는? 이것은 프로세서가 다중 프로세서를 마더보드상의 특별한 브릿지나 칩셋이 없이도 본래 지원할 수 있다는 것이다. 독자중 돈이 충분하다면 얼마든지 많은 개수의 프로세서를 보유하는 것도 가능하다. 예로서 현재 NT용으로 32개와 64개의 Xeon을 탑재한 시스템을 파는 곳도 있다. 이것들은 매우 고가이며 전문적인 분야로 특정된 시스템들이다. 물론 이것들은 미국 정부 에너지성의 9000개의 펜티엄 프로 200, 1MB 캐쉬 시스템과는 비교할 수 없겠지만, 이것은 NT로 운영되지는 않는다고 한다.
출처: 2cpu.com/FAQ/2cpusmpfaq.htm
Dreamy의 코드 스크랩내가 모으고 내가 보는
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5