JAVA

(스레드) Multi-Tasking과 Multi-Process

silver-w 2024. 10. 21. 20:54

"멀티 태스킹은 소프트웨어 기반, 멀티 프로세스는 하드웨어 기반 개념이다"

 

1. Multi Tasking


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

CPU 코어는 하나로 가정하고, 한 번에 하나의 프로그램 코드만 실행한다.

Ex - CPU연산이 느리다면, 음악 프로그램을 모두 실행한 다음에 워드 프로그램을 실행할 수 있다.

이를 개선하기 위해 멀티 태스킹을 사용,

하나의 CPU 코어로 여러 프로그램을 동시에 실행할 수 있는 기술.

CPU가 매우 빠르게 두 프로그램의 코드를 번갈아 수행하여, 사용자가 동시에 실행되는 것 처럼 느끼게 해준다.

각 프로그램의 실행 시간을 분할해서 마치 동시에 실행되는 것 처럼 하는 기법을 시분할 기법이라고 한다.

하나의 컴퓨터가 동시에 여러 작업을 수행하는 능력을 멀티 태스킹이라고 한다.

 

운영체제 소프트웨어적 관점 : 소프트웨어 기반으로 CPU시간을 분할하여 각 작업에 할당한다.

 

2. Multi Processing


 

 과거에는 CPU안에 하나의 코어가 들어가있는 반면, 최근에는 하나의 CPU 안에 여러개의 코어가 들어있다.

물리적으로 각 코어마다 다른 프로그램을 실행할 수 있다.

 

멀티프로세싱은 둘 이상의 프로세서(CPU 코어)를 사용하여 여러 작업을 동시에 처리하는 기술.

 

하드웨어 장비 관점 : 하드웨어 기반으로 성능을 향상한다 

 

 


출처 : https://inf.run/NC7kS

 

 

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런

김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?

www.inflearn.com