강사: 이번 강의에서는
cpu 기능을 다룰 것입니다.
여기에는 멀티스레딩, 대칭형
멀티프로세싱, 단일 코어
대 멀티 코어, 가상화 지원 등이 포함됩니다.
좋아요, 그럼 먼저
다중 스레딩을 알아봅니다 SMT 또는 동시 다중
스레딩 혹은 하이퍼 스레딩이라고도 하죠
cpu에 따라서요
Hyper-threading은 Intel이
이 프로세스에 사용하는 용어입니다
보다 일반적인 용어는 smt 또는
동시 멀티스레딩입니다.
네 자 스레딩을 다룰 땐
소프트웨어 응용 프로그램이 프로세서에
단일 지시 흐름을 보내는 개념입니다
대부분의 응용 프로그램은 하나의 스레드에서 단일 프로세스를
실행하도록 설계됐죠
소프트웨어가 모든 걸 연속적으로
한다는 뜻이죠
네 제가 다섯 가지
일을 하라고 하면 순서대로
하시면 돼요 1번 2번
3번 4번, 5번
그리고 각 작업에 10분이 걸렸다면
총 50분이 됩니다.
그러나 멀티스레딩을 허용하고 이러한 작업을
순서대로 수행하거나 동시에
수행할 수 있다면 이러한 작업을 다른 스레드나
다른 스트림으로 전송하여 한 번에 두 가지 이상의 작업을
수행할 수 있습니다.
네 예를 들어 오른손으로
뭔가를 쓰라고
하면 동시에
왼손으로 책상을 두드리라고
하면
그 두 가지를 동시에 할
수 있어요 두 개의 스레드와
두 손이 필요하니까요
이런 게 다중 해석이죠
인텔과 다른 제조업체들은 소프트웨어가
프로세서에 통신할 수 있게 하고
동시에 여러 개의 병렬 스레드를
실행할 방법을 개발했죠 단일 프로세서
안에서요
이렇게 하면 프로세서를
통해 스레드가 실행되고 유휴 시간을
줄일 수 있습니다 다음 작업을
기다리고 있죠
이렇게 함으로써 우리는 본질적으로
능력을 향상시키고 프로세서를
통해 더 많은 작업을 수행하며
동일한 시간 동안 더 많은 작업을 수행하려고 시도할
수 있습니다.
그것은 훌륭하지만 특정 지점까지만 작동하며
소프트웨어는 이를 사용할 수 있어야 하고
동시에 여러 스레드를 사용하고 싶다고 시스템에
알릴 수 있도록 이해해야 합니다.
이는 하이퍼스레딩과
같은 것을 다룰 때 큰 제한 사항입니다.
이걸 통과하는 또 다른
방법은 대칭 다중 처리라고 합니다 줄여서 smp죠
이제 smp는 워크스테이션과 서버가 이를 수행하는
전통적인 방식입니다. 왜냐하면 실제로는
여러 개의 프로세서가 있기 때문입니다.
네 이제 이걸 하려면 메인보드가
필요해요 프로세서 소켓이 2개 또는 4개죠 그런 다음
메인보드에 프로세서 2-4개를
설치해요 ?
네 이렇게 하면 프로세서의 종류와
속도가 같아야 함께 작동할
수 있습니다
여러분의 기본 운영 체제는 하나 이상의 프로세서를
사용해야 합니다
기본적으로 대부분의 운영 체제는 그러지 않죠
따라서 여러 프로세서를 지원할 수 있으려면 Windows
Server 2019와 같은 서버 기반 운영 체제가
필요했습니다.
이러한 이유로 smp 즉 대칭 다중 처리 작업은 데스크톱과
노트북에 유용하지 않습니다
대신 대부분의 데스크탑과 노트북은 Intel
프로세서의 하이퍼스레딩이나 AMD
프로세서를 사용하는 경우 동시 멀티스레딩(SMT)에
의존해야 했습니다.
하이퍼 스레딩과 smt는 오랫동안 아주
잘 작동했어요 하지만 결국 우리가 처리하고
싶은 것의 한계에 도달했죠 프로세서
하나로 해야 하는 일에요
자 대부분의 운영 체제는 주어진 메인보드에
다중 소켓이나 여러 프로세서를
처리하는 법을 알지 못했기 때문에 제조업체들은
멀티코어 패키지라고 알려진 것을 만들기
시작했습니다
패키지는 cpu
즉, 물리적 칩을 말합니다
네 물리적 패키지 2개나 마더보드의
서로 다른 소켓에 물리적 칩 2개를
두는 대신 제조업체들이
결정한 건 단일 cpu로 작동하는
단일 패키지를 만드는 겁니다
하지만 그 패키지 안에는
실제로 여러 개의 cpu나 여러 프로세서가 있었습니다.
이는 마더보드가 보기에는 하나의
물리적 cpu처럼 보이지만 그 내부에는 여러 개의
코어, 즉 중앙 처리 장치
코어가 있다는 것을 의미합니다.
네 그럼 이제 프로세서
패키지는 cpu 내의 내부
멀티 코어에 지시 사항을 나눌
수 있고요 ?
이렇게 생각해 봐요
이 집에는 침실이 4개예요
네 누가 현관에 와서 잘 곳이 필요하다고
하면 네 명 중에 누가
자든 신경 안 써요 잘 곳만 있으면
되죠
정문으로 들어가서 수감자들을
독방에 가두고 방은 하나만 보여줍니다
그게 이 멀티코어 프로세서가 하는 일이죠
새로운 사람이 들어오면 단칸방으로
데려가서 거기서 하룻밤 자게 하거나
처리를 한 뒤 다시 내보낸다.
이 모든 것은 정문에
있는 사람이 처리하며, 이
경우에는 멀티 코어 패키지가 됩니다.
그 작업을 위해 개별 구획이나
서브 프로세서에 넣는 거죠
그게 다중 코어 패키지의 아이디어입니다
네 자 우리 대부분은 들어본 적 있을 겁니다
여러분 시스템에 멀티코어
프로세서가 있을 테니까요
네 듀얼 코어 프로세서를 쓸 텐데요 그건
하나의 칩에 2개의 cpu가 있다는 뜻이죠 쿼드 프로세서일
수도 있고요 그럼 하나의 칩에
4개의 프로세서가 있는 겁니다
, 그 말은
헥사 프로세서를 쓰면 칩
하나에 코어 6개가 들어 있어요
옥타 프로세서를 쓰면
칩 하나에 코어 8개가 나오죠
예를 들어 제 cpu에 8개의 코어 프로세서가 있습니다 제 데스크톱 컴퓨터에
8개의 코어 프로세서가 있어요 물리적 칩은 하나지만 내부에
8개의 하위 프로세서가 있죠
따라서 이는 8코어 또는 멀티코어
프로세서로 알려져 있습니다.
이제 멀티 코어와 하이퍼 스레딩
외에도 실제로 두 개를 결합하여
패키지 내부의 각 프로세서를
구성할 수 있습니다. 예를 들어 제 시스템에는
8개의 프로세서가 있는 옥타
코어가 있습니다.
네 자 그 패키지 안에 8개의
프로세서가 있어요
그 8개 모두 하이퍼 스레딩을
지원하죠 ? 네
네 16 스레드에 8 cpu가 있고 해당
컴퓨터에 엄청난 프로세싱 기능을
줍니다
네 좋아요 이 시점에서 우린 이 레슨에서 다루고자
했던 4가지 중 3가지에 대해 얘길 나눴습니다
우리는 smt로 알려진 하이퍼스레딩과
동시 멀티스레딩에 대해 이야기했습니다.
네 대칭 다중 처리 혹은 소켓에서 다중
cpu를 갖는 걸 얘기했죠 그런 다음
다중 코어 프로세서에 관해 얘기했어요
단일 cpu에 다중 프로세서가
있는 거죠 2개인지 4개인지 6개인지
8개인지요 네
이제 마지막으로 이야기해야 할 것은 가상화입니다.
네 가상화는 cpu의 또 다른 기능이지만 방금
얘기한 세 가지와는 관련이
없습니다
우리가 방금 이야기한 세 가지는
단일 칩 또는 다중 칩에서 더 많은 성능을 얻는 방법에
관한 것입니다.
가상화에 대해 얘기할 때 우리가
말하는 건 실제로 존재하지 않는 하드웨어가
있다는 걸 에뮬레이트할 수 있다는 거죠
네 자 이런 작업은 VT라고
하는 인텔의 가상화 기술이나 amd-v라고
하는 amd의 가상화를 통해 이루어질 수
있습니다
이제 이들 둘 다 하드웨어 지원 가상화라고
하는 가상화를 지원하기 위한 프로세서
확장을 제공합니다.
이제 질문이 나올
텐데요 가상화가 뭘까요?
네 가상화는 컴퓨터 한 대가 여러
대의 컴퓨터를 실행하는 척 하는 능력입니다
이제 이것이 보이는 것은 MacBook과
같은 노트북이 하나 있을 수 있다는 것입니다.
저 MacBook에 운영 체제가 하나 있어요 macOS요
이제 Windows나 Linux를 실행하려면
컴퓨터를 다시 포맷하고 해당 소프트웨어를
설치해야 했습니다.
그건 정말 불편할 거예요.
하지만 가상화를 사용하면 그렇게 할 필요가 없습니다.
그 대신 VMware나 Virtualbox
Parallles 같은 프로그램을 실행해 그 소프트웨어
안에서 가상 컴퓨터를 만들
수 있습니다
프로세서 1개, 프로세서 2개, 프로세서
4개를 갖기를 원한다고 말할 수 있습니다.
원하는 메모리와 저장소를
알 수 있습니다
소프트웨어 안에서만 존재하는
가상 컴퓨터를 만들어낼 거예요
네 이제 새 운영 체제를 실행할 때 그 안에 Windows
같은 거요 이건 2개의 코어 프로세서라고 말할 수도 있어요 ?
램은 4기가고 하드는 50기가예요
소프트웨어에만 존재하는 모든 것.
하지만 해당 가상 머신에 Windows를 설치하면 Windows는
그것이 완전한 컴퓨터라고 생각합니다.
2개의 프로세서, 4gb의 메모리, 50gb의
하드 드라이브를 갖추고 있다고
생각합니다.
그래서 Windows에서는
물리적 하드웨어가 모두 있다고 생각하며 이것이 바로
가상화를 통해 가능해진 것입니다.
컴퓨터를 가상화하고 가상 하드웨어를
제공하며 단일 물리적 호스트
내에서 여러 운영 체제를
실행하게 합니다
네 이제 vt와 amd-v 외에 가상화 하드웨어
지원의 두 번째 레벨이
있습니다 여러분이 찾을 수 있는 건 현대
프로세서죠
인텔 시스템에서는 이것을 ept라고 부릅니다 확장된
페이지 테이블이라는 뜻이죠
그리고 amd 프로세서를 다룰
때는 이를 신속한 가상화 인덱싱(rvi)이라고 부릅니다.
네 이것들은 소프트웨어 가상화의
2단계 주소 변환 혹은 slat 속성으로
간주됩니다 하드웨어 프로세서를
통해 가상 메모리 관리를 향상시키고
가상 머신 내 메모리를 사용하여 성능을 향상시킵니다
가상화에 대해 수업에서
더 많이 얘기할 겁니다
지금은 프로세서
세트 내에서 이걸 할 수 있는 cpu와
그 기능을 가진 프로세서
인텔이나 amd-v가
vt를 지원하면 가상화를 할 때 더 나은 성능을
제공한다는 걸 아셨으면
합니다
따라서 머신을 구축하고
이를 가상화에 사용하려는 경우(예:
다른 많은 가상 서버를 실행할
서버) 선택한 프로세서에 vt 또는
vt가 있는지 확인해야 합니다.
또는 amd-v를 사용하면 직접 하드웨어 가속 가상화를 지원할
수 있습니다. 소프트웨어 가상화를 대신
수행해야 하는 경우보다 훨씬 더 나은 경험과 성능을 제공할
수 있기 때문입니다.