"운영체제가 스케줄링을 수행하고
CPU를 최대한 사용하면서 작업이 골고루 수행될 수 있게 최적화 한다."
1. 멀티태스킹에서의 Scheduling 과정
한 CPU 코어가 프로세스A<스레드A1을 실행> - 잠깐 중단 하고 프로세스B<스레드 B1을 실행> - 잠깐 중단...(반복)
□ 단일 코어 스케쥴링 (CPU 코어1개)
대기
스케쥴링 큐 | 스레드A1, 스레드B2, 스레드B1 |
CPU 코어 | - |
프로세스A<스레드A1를 실행>
스케쥴링 큐 | 스레드B2, 스레드B1 |
CPU 코어 | 스레드A1 |
- 잠깐 중단 하고 프로세스B<스레드 B2를 실행>
스케쥴링 큐 | 스레드A1, 스레드B1 |
CPU 코어 | 스레드B2 |
- 잠깐 중단.. 프로세스B<스레드 B1를 실행>
스케쥴링 큐 | 스레드A1 , 스레드B2 |
CPU 코어 | 스레드B1 |
□ 멀티 코어 스케쥴링 (CPU 코어 2개 이상)
대기
스케쥴링 큐 | 스레드A1, 스레드B2, 스레드B1 |
CPU 코어 | - |
프로세스A<스레드A1를 실행> , 프로세스B<스레드 B2를 실행>
스케쥴링 큐 | 스레드B1 |
CPU 코어1 | 스레드A1 |
CPU 코어2 | 스레드B2 |
- 스레드A1 잠깐 중단 하고 프로세스B<스레드 B1를 실행>
스케쥴링 큐 | 스레드A1 |
CPU 코어1 | 스레드B2 |
CPU 코어2 | 스레드B1 |
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런
김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?
www.inflearn.com
'JAVA' 카테고리의 다른 글
스레드 생성과 실행 - Runnable (0) | 2024.10.23 |
---|---|
스레드 생성과 실행 - 스레드 종류 (0) | 2024.10.23 |
Context switching와 스레드작업 종류(CPU-bound tasks, I/O-bound tasks) (0) | 2024.10.21 |
프로세스와 스레드 (0) | 2024.10.21 |
(스레드) Multi-Tasking과 Multi-Process (0) | 2024.10.21 |