Linux 시스템의 코어, CPU, 스레드 및 프로세서 간의 차이점은 무엇입니까? 차이점을 설명해주세요
답변1
핵심은 CPU, 프로세서입니다. 머신은 단일 코어(CPU 1개) 또는 다중 코어(CPU 여러 개)일 수 있습니다. 프로세서는 CPU의 다른 이름입니다.
컴퓨터에서는 CPU 리소스가 필요한 많은 프로세스가 실행되는 경우가 많기 때문에 컴퓨터는 경쟁 작업을 처리하는 방법을 예약해야 합니다. 단일 프로세서(단일 코어) 시스템에서는 각 프로세스에 작은 시간 조각을 할당하여 스케줄링이 수행됩니다. 컴퓨터의 성능과 각 프로세스가 실행되는 짧은 시간(밀리초)으로 인해 사용자는 프로세스가 동시에 실행되고 있다는 느낌을 받게 됩니다.
스레드와 프로세스의 차이점은 운영 체제에 따라 다를 수 있습니다. 이 답변은 기본적인 설명만 제공하려고 시도합니다. 일반적으로 프로세스에는 많은 스레드가 포함될 수 있습니다. 운영 체제는 각 스레드를 개별적으로 예약할 수 있습니다. 각 프로세스의 스레드는 프로세스 코드를 공유하고(각 스레드에는 자체 명령 레지스터가 있음) 프로세스 데이터를 공유합니다. 그러나 각 스레드에는 자체 스택 세그먼트가 있습니다. 호출 스택은 함수 호출 후 반환 지점을 추적합니다.
다중 코어 시스템(CPU가 2개 이상)은 시간 분할을 통해서만 프로세스를 예약할 수 있습니다. 또한 각 코어에 대해 별도의 스레드를 실행할 수도 있습니다. 별도의 코어에서 실행되는 스레드는 진정한 동시성입니다(시간 분할 동시성이라는 인상을 주는 단일 코어 시스템과 달리).
멀티스레딩은 더 나은 컴퓨터 처리 성능을 제공합니다. 몇 년 전, CPU 성능의 지속적인 개선이 둔화되었습니다(무어의 법칙더 이상 적용되지 않음) 이후 CPU 성능 기술은 멀티 코어 및 멀티 스레딩 기술에 의해 주도되었습니다.
답변2
프로세서는 소켓에 연결되는 물리적 칩입니다. 초기 프로세서는 대부분 CPU로 구성되었습니다. 나중에 MMU(가상 메모리 관리), FPU(부동 소수점), 캐시, 때로는 GPU(그래픽)가 프로세서에 추가되었습니다.
코어는 CPU입니다. 프로세서에는 하나 이상의 코어가 있을 수 있습니다. 2코어 CPU는 대략 2개의 싱글 코어 프로세서와 동일하지만, 하나의 구성 요소가 병목 현상을 일으키는 경우 구성 요소를 공유하면 이득이 줄어들 수 있습니다. 또는 반대로 코어 간 내부 통신 속도가 빨라져 성능이 향상되는 경우가 더 많습니다.
코어는 여러 하드웨어 스레드를 지원하여 여러 실행 컨텍스트(주로 레지스터)를 동시에 처리할 수 있습니다. 또한 모든 스레드가 동일한 CPU를 공유하더라도 성능이 향상됩니다. 이러한 이득은 메모리 액세스 대기 시간으로 인해 더 빠른 컨텍스트 전환과 거의 동시 실행으로 인해 발생합니다.