WEBVTT

00:00.000 --> 00:00.990
강사: 이번 강의에서는

00:00.990 --> 00:03.390
cpu 기능을 다룰 것입니다.

00:03.390 --> 00:05.340
여기에는 멀티스레딩, 대칭형

00:05.340 --> 00:07.050
멀티프로세싱, 단일 코어

00:07.050 --> 00:10.950
대 멀티 코어, 가상화 지원 등이 포함됩니다.

00:10.950 --> 00:12.180
좋아요, 그럼 먼저

00:12.180 --> 00:15.840
다중 스레딩을 알아봅니다 SMT 또는 동시 다중

00:15.840 --> 00:19.200
스레딩 혹은 하이퍼 스레딩이라고도 하죠

00:19.200 --> 00:21.480
cpu에 따라서요

00:21.480 --> 00:23.040
Hyper-threading은 Intel이

00:23.040 --> 00:24.780
이 프로세스에 사용하는 용어입니다

00:24.780 --> 00:27.000
보다 일반적인 용어는 smt 또는

00:27.000 --> 00:29.340
동시 멀티스레딩입니다.

00:29.340 --> 00:31.050
네 자 스레딩을 다룰 땐

00:31.050 --> 00:33.870
소프트웨어 응용 프로그램이 프로세서에

00:33.870 --> 00:37.350
단일 지시 흐름을 보내는 개념입니다

00:37.350 --> 00:40.770
대부분의 응용 프로그램은 하나의 스레드에서 단일 프로세스를

00:40.770 --> 00:42.150
실행하도록 설계됐죠

00:42.150 --> 00:44.340
소프트웨어가 모든 걸 연속적으로

00:44.340 --> 00:45.720
한다는 뜻이죠

00:45.720 --> 00:47.250
네 제가 다섯 가지

00:47.250 --> 00:48.930
일을 하라고 하면 순서대로

00:48.930 --> 00:50.730
하시면 돼요 1번 2번

00:50.730 --> 00:53.250
3번 4번, 5번

00:53.250 --> 00:55.260
그리고 각 작업에 10분이 걸렸다면

00:55.260 --> 00:57.510
총 50분이 됩니다.

00:57.510 --> 01:00.240
그러나 멀티스레딩을 허용하고 이러한 작업을

01:00.240 --> 01:01.650
순서대로 수행하거나 동시에

01:01.650 --> 01:03.981
수행할 수 있다면 이러한 작업을 다른 스레드나

01:03.981 --> 01:07.050
다른 스트림으로 전송하여 한 번에 두 가지 이상의 작업을

01:07.050 --> 01:09.360
수행할 수 있습니다.

01:09.360 --> 01:11.130
네 예를 들어 오른손으로

01:11.130 --> 01:12.450
뭔가를 쓰라고

01:12.450 --> 01:13.500
하면 동시에

01:13.500 --> 01:15.900
왼손으로 책상을 두드리라고

01:15.900 --> 01:17.070
하면

01:17.070 --> 01:18.570
그 두 가지를 동시에 할

01:18.570 --> 01:19.830
수 있어요 두 개의 스레드와

01:19.830 --> 01:22.020
두 손이 필요하니까요

01:22.020 --> 01:23.970
이런 게 다중 해석이죠

01:23.970 --> 01:26.700
인텔과 다른 제조업체들은 소프트웨어가

01:26.700 --> 01:28.860
프로세서에 통신할 수 있게 하고

01:28.860 --> 01:30.720
동시에 여러 개의 병렬 스레드를

01:30.720 --> 01:33.061
실행할 방법을 개발했죠 단일 프로세서

01:33.061 --> 01:35.610
안에서요

01:35.610 --> 01:37.050
이렇게 하면 프로세서를

01:37.050 --> 01:39.420
통해 스레드가 실행되고 유휴 시간을

01:39.420 --> 01:41.340
줄일 수 있습니다 다음 작업을

01:41.340 --> 01:43.080
기다리고 있죠

01:43.080 --> 01:45.030
이렇게 함으로써 우리는 본질적으로

01:45.030 --> 01:46.680
능력을 향상시키고 프로세서를

01:46.680 --> 01:48.006
통해 더 많은 작업을 수행하며

01:48.006 --> 01:50.550
동일한 시간 동안 더 많은 작업을 수행하려고 시도할

01:50.550 --> 01:52.410
수 있습니다.

01:52.410 --> 01:55.140
그것은 훌륭하지만 특정 지점까지만 작동하며

01:55.140 --> 01:57.570
소프트웨어는 이를 사용할 수 있어야 하고

01:57.570 --> 02:00.060
동시에 여러 스레드를 사용하고 싶다고 시스템에

02:00.060 --> 02:02.790
알릴 수 있도록 이해해야 합니다.

02:02.790 --> 02:04.140
이는 하이퍼스레딩과

02:04.140 --> 02:06.630
같은 것을 다룰 때 큰 제한 사항입니다.

02:06.630 --> 02:08.400
이걸 통과하는 또 다른

02:08.400 --> 02:13.320
방법은 대칭 다중 처리라고 합니다 줄여서 smp죠

02:13.320 --> 02:15.570
이제 smp는 워크스테이션과 서버가 이를 수행하는

02:15.570 --> 02:17.304
전통적인 방식입니다. 왜냐하면 실제로는

02:17.304 --> 02:20.370
여러 개의 프로세서가 있기 때문입니다.

02:20.370 --> 02:22.080
네 이제 이걸 하려면 메인보드가

02:22.080 --> 02:25.290
필요해요 프로세서 소켓이 2개 또는 4개죠 그런 다음

02:25.290 --> 02:27.420
메인보드에 프로세서 2-4개를

02:27.420 --> 02:28.890
설치해요 ?

02:28.890 --> 02:31.050
네 이렇게 하면 프로세서의 종류와

02:31.050 --> 02:32.790
속도가 같아야 함께 작동할

02:32.790 --> 02:34.290
수 있습니다

02:34.290 --> 02:37.410
여러분의 기본 운영 체제는 하나 이상의 프로세서를

02:37.410 --> 02:39.690
사용해야 합니다

02:39.690 --> 02:42.690
기본적으로 대부분의 운영 체제는 그러지 않죠

02:42.690 --> 02:45.150
따라서 여러 프로세서를 지원할 수 있으려면 Windows

02:45.150 --> 02:47.670
Server 2019와 같은 서버 기반 운영 체제가

02:47.670 --> 02:49.350
필요했습니다.

02:49.350 --> 02:52.860
이러한 이유로 smp 즉 대칭 다중 처리 작업은 데스크톱과

02:52.860 --> 02:55.620
노트북에 유용하지 않습니다

02:55.620 --> 02:58.770
대신 대부분의 데스크탑과 노트북은 Intel

02:58.770 --> 03:01.110
프로세서의 하이퍼스레딩이나 AMD

03:01.110 --> 03:04.140
프로세서를 사용하는 경우 동시 멀티스레딩(SMT)에

03:04.140 --> 03:06.720
의존해야 했습니다.

03:06.720 --> 03:09.480
하이퍼 스레딩과 smt는 오랫동안 아주

03:09.480 --> 03:12.090
잘 작동했어요 하지만 결국 우리가 처리하고

03:12.090 --> 03:14.250
싶은 것의 한계에 도달했죠 프로세서

03:14.250 --> 03:16.920
하나로 해야 하는 일에요

03:16.920 --> 03:19.020
자 대부분의 운영 체제는 주어진 메인보드에

03:19.020 --> 03:20.610
다중 소켓이나 여러 프로세서를

03:20.610 --> 03:23.220
처리하는 법을 알지 못했기 때문에 제조업체들은

03:23.220 --> 03:25.470
멀티코어 패키지라고 알려진 것을 만들기

03:25.470 --> 03:27.420
시작했습니다

03:27.420 --> 03:28.770
패키지는 cpu

03:28.770 --> 03:31.500
즉, 물리적 칩을 말합니다

03:31.500 --> 03:33.570
네 물리적 패키지 2개나 마더보드의

03:33.570 --> 03:35.790
서로 다른 소켓에 물리적 칩 2개를

03:35.790 --> 03:37.020
두는 대신 제조업체들이

03:37.020 --> 03:38.850
결정한 건 단일 cpu로 작동하는

03:38.850 --> 03:42.390
단일 패키지를 만드는 겁니다

03:42.390 --> 03:43.740
하지만 그 패키지 안에는

03:43.740 --> 03:47.160
실제로 여러 개의 cpu나 여러 프로세서가 있었습니다.

03:47.160 --> 03:49.410
이는 마더보드가 보기에는 하나의

03:49.410 --> 03:53.040
물리적 cpu처럼 보이지만 그 내부에는 여러 개의

03:53.040 --> 03:54.540
코어, 즉 중앙 처리 장치

03:54.540 --> 03:57.600
코어가 있다는 것을 의미합니다.

03:57.600 --> 03:59.910
네 그럼 이제 프로세서

03:59.910 --> 04:03.240
패키지는 cpu 내의 내부

04:03.240 --> 04:06.840
멀티 코어에 지시 사항을 나눌

04:06.840 --> 04:10.890
수 있고요 ?

04:10.890 --> 04:11.812
이렇게 생각해 봐요

04:11.812 --> 04:14.250
이 집에는 침실이 4개예요

04:14.250 --> 04:16.320
네 누가 현관에 와서 잘 곳이 필요하다고

04:16.320 --> 04:17.580
하면 네 명 중에 누가

04:17.580 --> 04:19.320
자든 신경 안 써요 잘 곳만 있으면

04:19.320 --> 04:20.880
되죠

04:20.880 --> 04:22.710
정문으로 들어가서 수감자들을

04:22.710 --> 04:25.620
독방에 가두고 방은 하나만 보여줍니다

04:25.620 --> 04:28.560
그게 이 멀티코어 프로세서가 하는 일이죠

04:28.560 --> 04:30.570
새로운 사람이 들어오면 단칸방으로

04:30.570 --> 04:32.790
데려가서 거기서 하룻밤 자게 하거나

04:32.790 --> 04:35.700
처리를 한 뒤 다시 내보낸다.

04:35.700 --> 04:36.720
이 모든 것은 정문에

04:36.720 --> 04:38.220
있는 사람이 처리하며, 이

04:38.220 --> 04:40.860
경우에는 멀티 코어 패키지가 됩니다.

04:40.860 --> 04:43.200
그 작업을 위해 개별 구획이나

04:43.200 --> 04:46.890
서브 프로세서에 넣는 거죠

04:46.890 --> 04:49.290
그게 다중 코어 패키지의 아이디어입니다

04:49.290 --> 04:51.480
네 자 우리 대부분은 들어본 적 있을 겁니다

04:51.480 --> 04:52.650
여러분 시스템에 멀티코어

04:52.650 --> 04:55.110
프로세서가 있을 테니까요

04:55.110 --> 04:57.120
네 듀얼 코어 프로세서를 쓸 텐데요 그건

04:57.120 --> 04:59.790
하나의 칩에 2개의 cpu가 있다는 뜻이죠 쿼드 프로세서일

04:59.790 --> 05:01.230
수도 있고요 그럼 하나의 칩에

05:01.230 --> 05:02.730
4개의 프로세서가 있는 겁니다

05:02.730 --> 05:03.960
, 그 말은

05:03.960 --> 05:05.730
헥사 프로세서를 쓰면 칩

05:05.730 --> 05:08.340
하나에 코어 6개가 들어 있어요

05:08.340 --> 05:09.840
옥타 프로세서를 쓰면

05:09.840 --> 05:12.300
칩 하나에 코어 8개가 나오죠

05:12.300 --> 05:16.090
예를 들어 제 cpu에 8개의 코어 프로세서가 있습니다 제 데스크톱 컴퓨터에

05:16.090 --> 05:19.260
8개의 코어 프로세서가 있어요 물리적 칩은 하나지만 내부에

05:19.260 --> 05:21.630
8개의 하위 프로세서가 있죠

05:21.630 --> 05:23.370
따라서 이는 8코어 또는 멀티코어

05:23.370 --> 05:25.410
프로세서로 알려져 있습니다.

05:25.410 --> 05:27.240
이제 멀티 코어와 하이퍼 스레딩

05:27.240 --> 05:28.800
외에도 실제로 두 개를 결합하여

05:28.800 --> 05:29.991
패키지 내부의 각 프로세서를

05:29.991 --> 05:32.846
구성할 수 있습니다. 예를 들어 제 시스템에는

05:32.846 --> 05:34.560
8개의 프로세서가 있는 옥타

05:34.560 --> 05:37.530
코어가 있습니다.

05:37.530 --> 05:38.940
네 자 그 패키지 안에 8개의

05:38.940 --> 05:40.050
프로세서가 있어요

05:40.050 --> 05:41.730
그 8개 모두 하이퍼 스레딩을

05:41.730 --> 05:43.710
지원하죠 ? 네

05:43.710 --> 05:46.860
네 16 스레드에 8 cpu가 있고 해당

05:46.860 --> 05:49.260
컴퓨터에 엄청난 프로세싱 기능을

05:49.260 --> 05:50.850
줍니다

05:50.850 --> 05:53.250
네 좋아요 이 시점에서 우린 이 레슨에서 다루고자

05:53.250 --> 05:56.010
했던 4가지 중 3가지에 대해 얘길 나눴습니다

05:56.010 --> 05:57.390
우리는 smt로 알려진 하이퍼스레딩과

05:57.390 --> 06:00.090
동시 멀티스레딩에 대해 이야기했습니다.

06:00.090 --> 06:02.460
네 대칭 다중 처리 혹은 소켓에서 다중

06:02.460 --> 06:04.830
cpu를 갖는 걸 얘기했죠 그런 다음

06:04.830 --> 06:07.530
다중 코어 프로세서에 관해 얘기했어요

06:07.530 --> 06:09.120
단일 cpu에 다중 프로세서가

06:09.120 --> 06:11.220
있는 거죠 2개인지 4개인지 6개인지

06:11.220 --> 06:14.010
8개인지요 네

06:14.010 --> 06:17.400
이제 마지막으로 이야기해야 할 것은 가상화입니다.

06:17.400 --> 06:20.490
네 가상화는 cpu의 또 다른 기능이지만 방금

06:20.490 --> 06:22.020
얘기한 세 가지와는 관련이

06:22.020 --> 06:23.220
없습니다

06:23.220 --> 06:24.780
우리가 방금 이야기한 세 가지는

06:24.780 --> 06:27.300
단일 칩 또는 다중 칩에서 더 많은 성능을 얻는 방법에

06:27.300 --> 06:28.710
관한 것입니다.

06:28.710 --> 06:30.300
가상화에 대해 얘기할 때 우리가

06:30.300 --> 06:32.880
말하는 건 실제로 존재하지 않는 하드웨어가

06:32.880 --> 06:35.730
있다는 걸 에뮬레이트할 수 있다는 거죠

06:35.730 --> 06:37.080
네 자 이런 작업은 VT라고

06:37.080 --> 06:39.450
하는 인텔의 가상화 기술이나 amd-v라고

06:39.450 --> 06:42.330
하는 amd의 가상화를 통해 이루어질 수

06:42.330 --> 06:44.700
있습니다

06:44.700 --> 06:47.340
이제 이들 둘 다 하드웨어 지원 가상화라고

06:47.340 --> 06:49.710
하는 가상화를 지원하기 위한 프로세서

06:49.710 --> 06:52.050
확장을 제공합니다.

06:52.050 --> 06:53.021
이제 질문이 나올

06:53.021 --> 06:55.470
텐데요 가상화가 뭘까요?

06:55.470 --> 06:58.291
네 가상화는 컴퓨터 한 대가 여러

06:58.291 --> 07:02.729
대의 컴퓨터를 실행하는 척 하는 능력입니다

07:02.729 --> 07:04.560
이제 이것이 보이는 것은 MacBook과

07:04.560 --> 07:07.140
같은 노트북이 하나 있을 수 있다는 것입니다.

07:07.140 --> 07:11.700
저 MacBook에 운영 체제가 하나 있어요 macOS요

07:11.700 --> 07:13.710
이제 Windows나 Linux를 실행하려면

07:13.710 --> 07:15.600
컴퓨터를 다시 포맷하고 해당 소프트웨어를

07:15.600 --> 07:16.920
설치해야 했습니다.

07:16.920 --> 07:18.780
그건 정말 불편할 거예요.

07:18.780 --> 07:21.360
하지만 가상화를 사용하면 그렇게 할 필요가 없습니다.

07:21.360 --> 07:22.830
그 대신 VMware나 Virtualbox

07:22.830 --> 07:26.340
Parallles 같은 프로그램을 실행해 그 소프트웨어

07:26.340 --> 07:27.840
안에서 가상 컴퓨터를 만들

07:27.840 --> 07:30.000
수 있습니다

07:30.000 --> 07:32.370
프로세서 1개, 프로세서 2개, 프로세서

07:32.370 --> 07:34.950
4개를 갖기를 원한다고 말할 수 있습니다.

07:34.950 --> 07:36.600
원하는 메모리와 저장소를

07:36.600 --> 07:38.010
알 수 있습니다

07:38.010 --> 07:39.930
소프트웨어 안에서만 존재하는

07:39.930 --> 07:42.510
가상 컴퓨터를 만들어낼 거예요

07:42.510 --> 07:44.645
네 이제 새 운영 체제를 실행할 때 그 안에 Windows

07:44.645 --> 07:48.660
같은 거요 이건 2개의 코어 프로세서라고 말할 수도 있어요 ?

07:48.660 --> 07:52.770
램은 4기가고 하드는 50기가예요

07:52.770 --> 07:54.750
소프트웨어에만 존재하는 모든 것.

07:54.750 --> 07:57.296
하지만 해당 가상 머신에 Windows를 설치하면 Windows는

07:57.296 --> 07:59.670
그것이 완전한 컴퓨터라고 생각합니다.

07:59.670 --> 08:02.340
2개의 프로세서, 4gb의 메모리, 50gb의

08:02.340 --> 08:04.050
하드 드라이브를 갖추고 있다고

08:04.050 --> 08:06.270
생각합니다.

08:06.270 --> 08:07.200
그래서 Windows에서는

08:07.200 --> 08:09.390
물리적 하드웨어가 모두 있다고 생각하며 이것이 바로

08:09.390 --> 08:11.400
가상화를 통해 가능해진 것입니다.

08:11.400 --> 08:13.659
컴퓨터를 가상화하고 가상 하드웨어를

08:13.659 --> 08:15.600
제공하며 단일 물리적 호스트

08:15.600 --> 08:17.293
내에서 여러 운영 체제를

08:17.293 --> 08:20.280
실행하게 합니다

08:20.280 --> 08:23.100
네 이제 vt와 amd-v 외에 가상화 하드웨어

08:23.100 --> 08:24.450
지원의 두 번째 레벨이

08:24.450 --> 08:27.120
있습니다 여러분이 찾을 수 있는 건 현대

08:27.120 --> 08:28.860
프로세서죠

08:28.860 --> 08:31.800
인텔 시스템에서는 이것을 ept라고 부릅니다 확장된

08:31.800 --> 08:33.480
페이지 테이블이라는 뜻이죠

08:33.480 --> 08:35.490
그리고 amd 프로세서를 다룰

08:35.490 --> 08:39.810
때는 이를 신속한 가상화 인덱싱(rvi)이라고 부릅니다.

08:39.810 --> 08:42.390
네 이것들은 소프트웨어 가상화의

08:42.390 --> 08:45.450
2단계 주소 변환 혹은 slat 속성으로

08:45.450 --> 08:48.060
간주됩니다 하드웨어 프로세서를

08:48.060 --> 08:50.430
통해 가상 메모리 관리를 향상시키고

08:50.430 --> 08:56.913
가상 머신 내 메모리를 사용하여 성능을 향상시킵니다

08:57.870 --> 09:00.150
가상화에 대해 수업에서

09:00.150 --> 09:02.130
더 많이 얘기할 겁니다

09:02.130 --> 09:03.480
지금은 프로세서

09:03.480 --> 09:06.660
세트 내에서 이걸 할 수 있는 cpu와

09:06.660 --> 09:08.250
그 기능을 가진 프로세서

09:08.250 --> 09:10.530
인텔이나 amd-v가

09:10.530 --> 09:14.844
vt를 지원하면 가상화를 할 때 더 나은 성능을

09:14.844 --> 09:16.470
제공한다는 걸 아셨으면

09:16.470 --> 09:19.260
합니다

09:19.260 --> 09:20.698
따라서 머신을 구축하고

09:20.698 --> 09:22.710
이를 가상화에 사용하려는 경우(예:

09:22.710 --> 09:24.060
다른 많은 가상 서버를 실행할

09:24.060 --> 09:25.995
서버) 선택한 프로세서에 vt 또는

09:25.995 --> 09:28.034
vt가 있는지 확인해야 합니다.

09:28.034 --> 09:31.710
또는 amd-v를 사용하면 직접 하드웨어 가속 가상화를 지원할

09:31.710 --> 09:34.170
수 있습니다. 소프트웨어 가상화를 대신

09:34.170 --> 09:37.433
수행해야 하는 경우보다 훨씬 더 나은 경험과 성능을 제공할

09:37.433 --> 09:40.653
수 있기 때문입니다.
