컴퓨터공학 dhson 2016. 2. 22. 14:16
유니 캐스팅이란? TCP를 기반으로 하나의 송신자가 다른 하나의 송신자에게 데이터를 전송하는 방식을 유니 캐스팅 방식이라고 합니다. MAC 주소를 기반으로 상대측 IP주소를 목적지로 하는 일대일 통신 방식입니다. 일반적인 인터넷 응용프로그램이 모두 유니캐스팅 방식을 사용합니다. 이 방식은 목적지 주소가 아닌 다른 PC들의 CPU 성능을 저하시키지 않는 장점이 있습니다. 왜냐하면 자신의 MAC 주소가 아니라고 판단되면 랜카드가 프레임을 버리기 때문입니다. 하지만 그룹통신을 위하여 다중 수신자들에게 동일한 데이터를 전송하고자 할 경우 유니캐스팅 방식을 이용한다면 전송하고자 하는 데이터 패킷을 다수의 수신자에게 여러번 전송해야 하며, 동일한 패킷의 중복 전송으로 인해 네트워크 효율이 저하됩니다. 위 그림처럼 ..
더 읽기
컴퓨터공학 dhson 2016. 2. 15. 21:31
전에 포스팅한 멀티 프로세싱과 헷갈릴 수 있는 용어입니다ㅎㅎ 용어 중간에 '코어'만 들어갔을뿐 그게 그거 같죠... 차이를 알아보겠습니다. 멀티 코어 프로세서는 여러 개의 작업을 보다 효율적으로 한 번에 처리하기 위해 2개 이상의 프로세서가 붙어있는 집적회로를 말합니다. 그러니깐 '회로'를 의미합니다. 그래서 우리가 흔히 말하는 듀얼코어 프로세서가 싱글코어 프로세서보다 보다 강력한 성능을 가집니다. 프로세서가 1개에서 2개로 늘어났으니깐 성능향상도 2배일까요? 그렇지 않습니다. 약 1.5배 정도 성능향상이 있다고 합니다. 그렇다면 멀티 프로세싱은 뭐였죠? 멀티 프로세싱은 복수개의 프로세서들이 협력하여 작업을 처리하는 방식을 의미합니다. 그러니깐 '처리방식'을 의미합니다. 포인트를 아시겠나요? 멀티 코어 ..
컴퓨터공학 dhson 2016. 2. 15. 17:33
저번 하이퍼 스레딩 1편에 이은 2편입니다. 이번 글에서는 하이퍼 스레딩의 원리를 좀 더 자세히 정리하고자 합니다…..만 이미 어떤 분께서 벌써 아주 깔끔하게 정리하신 것을 찾았습니다. 그래서 그 글을 리블로그하는 것으로 대체하고자 합니다. 한번 쭈욱 읽어보면 바로 이해간다에 한표! 혹시 1편을 읽지 않았다면 1편부터!! 글 바로가기 ==================================== 오늘은 현대 CPU의 성능향상 기법 중 하나인 SMT에 대해 간단히 알아 보겠습니다. SMT는 Simutaneous Multi-threading의 약자로, 동시에 여러 스레드를 처리하는 기법을 통칭합니다. CPU의 성능을 올릴 때엔 '병렬성'(parallelism)이란 것을 추구하는 경우가 일반적인데 병렬성은..
컴퓨터공학 dhson 2016. 2. 15. 16:49
하이퍼 스레딩(Hyper-threading)이란? 우리가 알고 있는 CPU회사라고 하면 아주 유명한 2개의 회사가 있습니다. 바로 인텔과 AMD. 하이퍼 스레딩이라는 기술은 2000년대 초반에 팬티엄4가 출시되면서 적용되기 시작한 기술입니다. 당시 AMD가 듀얼코어를 출시하자 마음이 급해진 인텔은 듀얼코어 대신 듀얼코어와 비슷한 성능을 내도록 싱글코어(팬티엄4부터)에 하이퍼 스레딩 기술을 적용하기 시작했습니다. 그렇다고 그 이후로 출시된 모든 CPU에 이 기술이 탑재된 것은 아닙니다. 싱글코어가 듀얼코어와 비슷한 성능을 낸다? CPU의 코어 수가 1개라면 컴퓨터에게는 코어 수가 2개로 보이고, 2개는 4개로, 4개는 8개로 스레드를 늘리는 셈입니다. 결국 기본 CPU 코어 수의 스레드를 2배로 보이게 해..
컴퓨터공학 dhson 2016. 2. 15. 11:46
멀티 스레딩(Multi-threading)이란? ‘멀티~’ 시리즈 편에 막바지에 거의 다 왔습니다. 물론 이 글 다음으로 ‘하이퍼 스레딩’에 대해서 다루겠지만, 멀티 스레딩에 대해 정리를 한다면 하이퍼 스레딩은 별 거 없습니다. 멀티 스레딩은 프로세스와 스레드의 차이를 안다면 쉽게 구별이 가는 개념입니다. 스레드는 프로세스 내에서 생성되는 하나의 실행 주체입니다. 한 프로세스 내에서 생성되는 것으로 여러 개가 동시에 생성이 가능합니다. 또한 생성된 여러 스레드는 하나의 공유 메모리를 가집니다. 그렇기 때문에 서로 간의 정보를 주고 받는데 제한이 없습니다. 가령, 네트워킹을 지원하는 프로그램이 있다고 가정합시다. 프로세스의 정의가 ‘A program in execution’ 이라는 것은 모두 알고 계시죠...
컴퓨터공학 dhson 2016. 2. 12. 22:40
멀티 프로그래밍 (Multi-programming) 역시 용어의 단어부터 확인해봅니다. '멀티'+'프로그램' 이니깐 여러 개의 프로그램? 유추할 수 있겠죠? 멀티 프로그래밍은 단일 프로세서 상에서 여러 개의 프로그램이 동시에 실행되는 것을 말합니다. 그러나 프로세서는 한번에 한 작업만 수행할 수 있기 때문에 '동시'라는 말은 엄밀히 말해서 틀린 표현입니다. 그렇지만 OS 통제하에 한 프로그램이 일부 수행되고 나서, 또 다른 프로그램이 일부 수행되는 식으로 진행되는데 이 속도가 빠르고 시간 텀이 매우 작기 때문에 사용자 눈에는 '동시'에 일어나는 것처럼 보일 뿐입니다. 위의 그림을 보시면 알 수 있듯이 프로세서(여기서는 CPU)가 프로그램 여러 개를 동시에 수행하는 것을 알 수 있습니다. 이때 프로세서는 ..
컴퓨터공학 dhson 2016. 2. 12. 22:23
멀티태스킹 (Multi-tasking) Task라는 개념은 프로세스의 개념보다 조금 확장된 개념이라고 생각하면 됩니다. 이러한 Task가 하나의 프로세서 상에서 운영체제의 스케쥴링 방식에 따라 조금씩 번갈아가면서 수행되는 것이 멀티태스킹의 개념입니다. 빠른 속도록 조금씩 번갈아 가면서 Task들을 조금씩 처리하다보면 유저가 느끼기에는 마치 '동시'에 처리되는 것처럼 보이기 때문에 붙은 이름입니다. 우리가 컴퓨터로 워드를 작성하면서 멜론 PC버젼으로 노래를 들을 수 있는 것도 멀티 태스킹입니다. 이때 멀티태스킹의 스케쥴링 방식에 몇 가지가 있는데, 다음과 같습니다. 멀티프로그래밍 방식 (Multi-programming) 시분할 방식 (Time-sharing) 실시간 시스템 방식 (Real-time) 위와 ..
컴퓨터공학 dhson 2016. 2. 12. 21:38
멀티프로세싱, 멀티 태스킹, 멀티 프로그래밍, 멀티 쓰레딩 ... 멀티, 멀티, 멀티 ... 참으로 많이 들어보긴했는데, 컴퓨터공학을 전공한 학부 졸업생치고 이 4가지 정확히 구분할 학생 거의 없다고 확신합니다. 이 용어들은 취업면접에서 기본적으로 다루는 개념이기도 하고, 학부 이후에 대학원에 진학한다면 당연히 알고 있어야 하는 기본적인 내용이지만, 4개의 용어들이 이름도 비슷비슷하고 그게 그거인거 같기도 하고... 그래서 이 4가지 용어부터 시작해서 앞으로 조금씩 정리해 나갈려고 합니다. 멀티프로세싱(Multi-processing) 용어의 단어부터 확인하면 그 의미를 유추할 수 있을 것 같습니다. '멀티'라는 단어와 '프로세싱'이라는 단어가 합쳐졌으니 여러 개의 프로세싱, 여러 개의 프로세서라는 의미가..