Linux는 멀티태스킹을 지원하지 않는 CPU에서 멀티태스킹을 어떻게 구현합니까?

Linux는 멀티태스킹을 지원하지 않는 CPU에서 멀티태스킹을 어떻게 구현합니까?

나는 Linux가 멀티태스킹을 지원하지 않는 CPU에서 실행될 수 있다고 들었습니다.

그러나 코어가 하나만 있고 멀티태스킹이 지원되지 않는 경우 Linux는 어떻게 멀티태스킹을 구현합니까?

각각 종료하는 데 1시간이 걸리는 두 개의 프로그램을 실행하고 싶다고 가정해 보겠습니다. Linux에서 약 100밀리초 후에 첫 번째 프로그램을 일시 중지하여 두 번째 프로그램으로 전환하는 방법은 무엇입니까?

다음 두 가지 상황을 생각해 볼 수 있습니다.

  • 여러 작업을 동시에 실행할 수는 없습니다.
  • Linux는 하드웨어 타이머를 사용하여 실행 중인 프로세스를 중단합니다.

답변1

멀티 태스킹을 지원하는 CPU가 무엇을 의미하는지 잘 모르겠습니다. 멀티코어 CPU를 생각하고 계시겠지만 멀티태스킹 운영 체제는 멀티코어 CPU보다 앞서 있습니다.

그러나 다른 프로세스를 실행하기 위해 한 프로세스를 일시 중지하는 경우 Linux는 하드웨어 타이머를 포함한 다양한 기술을 (간접적으로) 사용합니다. 본질적으로 커널이 호출될 때마다 실행 중인 프로세스를 변경하기로 결정할 수 있습니다. 자세한 내용은 다음 게시물을 참조하세요.

관련 정보