멀티태스킹 ?
쉽게 설명하기 위해 싱글 코어 CPU로 예를 들겠다
한 컴퓨터에서 여러 프로세스나 스레드를 동시에 실행하고 싶은데 싱글 코어 CPU에서는 한 번에 하나의 프로세스 혹은 스레드만 실행될 수 있다는 제약이 있다
그러면 어떻게 동시에 실행하게 만들 수 있을까?
이 문제를 해결하는 방식이 멀티태스킹(multitasking) 방식이다
예를 들어 스레드 t1, t2, t3가 있다고 가정해 보자 (각 스레드가 같은 프로세스 소속인지 아닌지는 중요하지 않다)
멀티태스킹 방식은 (간단하게 설명해서) 이 세 개의 스레드들에게 아주 짧은 CPU 시간을 할당해 주고,
그 시간을 다 사용하면 다음 스레드가 실행될 수 있도록 하는 방식이다
그리고 이때 각 스레드마다 동일하게 부여되는 CPU 시간을 time slice 혹은 quantum 이라고 부른다
이 time slice는 몇십 ~ 몇 milliseconds 정도로 매우 짧은 시간이라서
여러 스레드들이 이렇게 짧은 시간 간격으로 번갈아 가면서 CPU에서 실행되면
사용자 입장에서는 마치 여러 스레드가 동시에 실행되는 것 같은 느낌을 준다
그래서 멀티태스킹 방식은 사용자에게 빠른 응답성을 주는 최적화된 방식이다
쉬운코드는 본질에 충실합니다
👉 프로세스, 스레드, 멀티프로그래밍, 멀티태스킹, 멀티스레딩, 멀티프로세싱 한번에 알려주는 영상 보러 가자