메인 메모리에 실행 파일이 올라간 상태를 프로세스가 실행 중이다. 라고 볼 수 있다.

프로세스의 스케줄링 CPU는 하나인데, 우리는 여러 프로세스를 동시에 실행하고 있다. 이를 위해 프로세스를 번갈아 실행하고 있는데, 고속으로 스위칭을 하기 때문에 우리는 그것을 동시라고 느끼게 되는 거다.

A1 B1 A2B2 와 같은 형태로 번갈아가며 실행.

이를 위해 CPU는 각 프로세스에게 할당 시간을 나누어서 관리를 하고 있다. 그런데 그 할당 시간을 나누는 기준은 CPU가 정하게 되는데, 이를 스케줄링이라고 부르게 되는 것이다.

입출력을 하는 시간은 매우 길기 때문에 CPU입장에서는 하나의 프로그램이 입출력을 진행하는 동안에는 매우 긴 시간동안 놀게 된다. 그렇기 때문에 그 동안에 다른 프로세스가 실행될 수 있도록 스케줄링하여 효율적으로 프로세스를 관리하게 되는 것이다.


컨텍스트_스위칭 #키워드 CPU의 레지스터는 현재 실행하고 있는 프로세스를 위한 데이터로 채워지게 되는데, 프로세스의 스케줄링에 따라 이전에 실행했던 데이터에 대한 정보를 어딘가에 저장해두어야 한다. (그래야 이어서 작업하니까)

그래서 이 부분은 시스템에 많은 부담을 주게 된다.