멀티 태스킹, 멀티 프로세싱

멀티 태스킹

개념 위주보다는 실무에 적합한 형태의 정리

프로그램의 실행이란 프로그램을 구성하는 코드를 순서대로 CPU에서 연산(실행)하는 일이다.

여기서 CPU 코어는 하나로 가정하므로, 한 번에 하나의 프로그램 코드만 실행할 수 있다.

이를 해결하기 위해 하나의 CPU 코어로 여러 프로그램을 동시에 실행하는 '멀티태스킹' 기술이 등장했다.

<aside> <img src="/icons/code_green.svg" alt="/icons/code_green.svg" width="40px" />

참고: CPU에 어떤 프로그램이 얼마만큼 실행될지는 운영체제가 결정하는데 이것을 스케줄링(Scheduling)이라한다

이때 단순히 시간으로만 작업을 분할하지는 않고, CPU를 최대한 활용할 수 있는 다양한 우선순위와 최적화기법을 사용한다.

</aside>

멀티 프로세싱

여러 CPU(여러 CPU 코어)를 사용하여 동시에 여러 작업을 수행하는 것을 의미한다

예: 다중 코어 프로세서를 사용하는 현대 컴퓨터 시스템


프로세스

이렇게 운영체제 안에서 실행중인 프로그램을 프로세스라 한다.

프로세스는 실행 중인 프로그램의 인스턴스이다

프로세스의 메모리 구성