CPU의 하나의 코어가 여러 프로세스를 처리할 수 있습니까?

CPU의 하나의 코어가 여러 프로세스를 처리할 수 있습니까?

그래서 제가 질문을 한 것입니다. 교과서에서 "각 CPU(또는 코어)는 한 번에 하나의 프로세스에서 작동할 수 있다"는 내용을 읽었습니다.

나는 이것이 정확했다고 가정하지만 더 이상 완전히 사실이 아닙니다. 멀티스레딩은 어떻게 작동하나요? 아니면 이것이 여전히 사실이고 Linux의 CPU 코어는 한 번에 하나의 프로세스에서만 작동할 수 있습니까?

답변1

단일 CPU는 한 번에 하나의 프로세스를 처리합니다. 그러나 "프로세스"는 운영 체제의 구성입니다. 운영 체제는 VLC에서 비디오를 단일 프로세스로 재생하는 것을 의미하지만 실제로는 많은 개별 명령으로 구성됩니다. 따라서 CPU의 임무는 비디오를 재생하는 것이 아니라 수행 중이던 모든 작업을 포기해야 합니다. CPU는 비디오 재생 → 키보드 또는 마우스 입력 확인으로 전환 → 화면에 무언가 그리기 → 장치가 알려진 포트에 연결되어 있는지 확인 → 등의 작업을 수행할 수 있습니다. 모든 일은 눈 깜짝할 사이에 일어납니다.

현대 컴퓨터는 멀티태스킹에 탁월합니다. 이것이 바로 VLC에서 비디오를 시작하고 컴퓨터가 100가지 다른 이상한 작업을 "동시에" 수행하는 동안에도 비디오를 계속 재생할 수 있는 이유입니다.

답변2

나는 하나를 믿는다단일 스레드프로세스(프로그램)는 멀티 코어 CPU가 있는 시스템에서 실행되더라도 단일 CPU 코어에서만 실행되도록 제한됩니다.
프로세스가 멀티스레드이고 멀티코어 CPU가 있는 시스템에서 실행되는 경우 개별 스레드의 실행이 다른 CPU 코어로 전달될 수 있으므로 프로그램은 병렬 처리의 이점을 누릴 수 있습니다.
2000년대 초반에 멀티 코어 CPU가 처음 등장했을 때 많은 프로그램이 여전히 단일 스레드 아키텍처를 사용했기 때문에 멀티 코어 CPU의 성능 이점을 얻지 못한 것 같습니다.
시스템 전체에서는 다른 CPU 코어에서 다른 프로세스를 실행할 수 있기 때문에 이점이 있습니다.

관련 정보