@ 추가적으로 이 개념을 먼저 더 보고 넘어가도록 하겠습니다
@ Multiprogramming 혹시 기억하시나요?
// 여러개의 Active한 Process(job)가 동시에 수행되는 것을 의미합니다.
> 이는 Memory의 관점입니다.
.. 그래서 Main Memory에 여러개의 active한 job이 로드가 되어있는 것을 의미합니다.
// 반대는 Unitprogramming입니다.
@ Multiprocessing은 그럼 뭘까요?
// 이도, 여러개의 Process가 수행되는 것을 의미합니다.
> 다만, 이것은 CPU의 관점입니다.
.. CPU가 여러개의 Process에 의해서 Multiplexing된다는 의미입니다.
.. CPU는 프로세싱을 이것 저것 수행했다가 Keep했다가 또 수행하다가 하니까요.
@ 이 두 개념을 구분해서 생각할 수 있어야 합니다.
// 사실 요새는 Multiprocessing을 한다는 것은 Multiprogramming을 한다는 의미와 같게 쓰이지만,
> 과거에는 Main Memory가 작았기 때문에,
.. Multiprocessing을 하면서 Unitprogramming을 하는 경우가 많았습니다.
@ 그렇기 때문에 과거에는 Main Memory에 현재 수행되는 Process의 이미지만 올라와 있었으며,
// 어떤 Process가 Scheduling이 되어
> CPU를 사용하지 않는 프로세스의 데이터를 메모리에서 다른 저장 장치로 내보내고
> CPU를 사용할 프로세스의 데이터를 메모리로 로드하는 것
.. 이를 Swapping이라고 합니다.