단일 프로세스 시스템
✔️ 단일 프로세스
단일 프로세스 시스템은 한 번에 하나의 프로그램만 실행합니다. 또 다른 프로그램을 실행하려면, 먼저 실행 중이던 프로그램을 종료시키고 그 다음 프로그램을 실행해야 합니다.
단점
CPU 사용률이 좋지 않습니다. 프로세스가 CPU를 사용하는 작업을 처리하다가, IO 작업을 하게 되면 CPU는 그 때 마다 아무런 일을 하지 않는 상태로 대기합니다.
이 문제를 개선하기 위해 멀티 프로그래밍
을 사용할 수 있습니다.
✔️ 멀티 프로그래밍 (Multi-Programming)
단일 프로세스 시스템과 달리 하나의 프로세스가 IO 작업을 하게 되어 대기하게 되면, 다른 프로세스가 실행되어 CPU가 아무 일도 하지 않는 시간을 줄입니다. 멀티 프로그래밍
의 주된 목적은 CPU 사용률을 극대화 하는데 있습니다.
단점
하나의 프로세스가 작업 시 CPU 사용하는 작업을 하면 계속 점유하게 되어 다른 프로세스가 작업을 하지 못하고 대기하는 것 입니다. 이를 위한 해결책은 두개 이상의 프로세스가 CPU를 사용할 때, 아주 짧은 시간 동안(Quantum)만 번갈아 가며 실행될 수 있도록 하여 하나의 프로세스가 CPU를 독점하거나, 대기해야 하는 비효율을 개선할 수 있습니다. 이런 종류의 시스템을 멀티 태스킹(Multi-Tasking)
이라고 합니다.
✔️ 멀티 태스킹 (Multi-Tasking)
동시에 여러 프로그램을 실행시킨다는 면에서 멀티 프로그래밍
과 유사하지만, CPU 타임을 아주 짧게 쪼개서 CPU 타임 안에서 프로세스들이 서로 번갈아 가면서 실행될 수 있도록 했다는 점이 차이가 있습니다.
멀티 태스킹
은 프로세스의 응답 시간을 최소화 시키는데 목적입니다. 응답 시간을 최소화 시킨다는 것은 사용자 입장에서 마치 정말 여러 프로그램이 동시에 실행되는 것 처럼 느껴지게 만듭니다. 아주 짧은 타임 슬라이스 안에서 여러 프로세스들이 교대로 실행이 되면서 즉각적인 응답을 보여줍니다.
멀티 태스킹
의 핵심은 타임 슬롯을 아주 짧게 쪼개서 프로세스들이 번갈아 가며 실행을 하게 됨으로써 어떤 프로그램을 실행시키거나 어떤 동작을 했을 때 즉각적인 반응을 받을 수 있도록 하여 동시에 여러 프로그램이 실행되는 것과 같은 느낌을 주는 것 입니다.