• 다수의 작업(프로세스, 이하 태스크)가 cpu같은 공용자원을 나누어 사용하는 것
  • 멀티태스킹은 운영체제가 지원하는것
  • 하드웨어는 이런거 모름. 걍 CPU는 인스트럭션 오는거 실행만 함.
    • CPU입장에서 스레드는 오직 하나임.
  • 멀티태스킹이 되려면 런타임 시스템에 다음과 같은게 꼭 있어야함!

엄밀히 말해 한 개의 CPU를 가진 개인용 컴퓨터가 특정 순간에 수행할 수 있는 태스크의 개수는 하나뿐이다. 따라서 멀티태스킹은 스케줄링이라는 방식을 사용하여 컴퓨터 사용자에게 병렬 연산이 이루어지는 것과 같은 환경을 제공한다. 스케줄링 방식은 CPU 사용시간을 일정한 기준에 따라 나누어 각 태스크가 사용할 수 있도록 분배한다. 분배받은 시간 동안 태스크가 CPU를 사용할 때 다른 태스크들은 자신의 차례가 오기를 기다린다. 분배받은 시간이 종료되어 태스크가 사용하던 CPU를 다른 태스크가 사용할 수 있도록 재배정하는 것을 문맥교환이라 하는데 스케줄링에서 이 문맥교환이 충분히 자주 발생하게 되면 컴퓨터 사용자는 병렬 연산이 이루어진 것처럼 느끼게 된다.