Thread를 공부할 때 맨날 헷갈리던 것이 있다.
CPU에서도 Thread가 나오고, 프로그래밍을 할 때도 Thread가 나오는데 이거 두 개가 같은 것인가?
전자보다 후자의 갯수가 훨씬 더 많을 것 같은데... 이 부분이 이해가 안갔다.
이번에 확실히 정리를 해본다.
https://the-boxer.tistory.com/24
이게 핵심이다.
운영체제가 스케줄링을 할 때 동시에 실행 가능한 스레드 수(물리적 스레드)는 정해져 있습니다. 하지만 메모리가 허용하는 논리적 스레드
수는 얼마든지 많을 수 있습니다.이들 중 운영체제에 의해 실행되지 않는 스레드는 잠들어 있을 수 있으며 운영체제는 이들 중 물리적 스레드가 허용 가능한 만큼의 스레드를 할당하여 동시에 실행시킵니다.
책에 비유하자면, 4코어 8스레드는 상/하권으로 분권된 책이 4세트(8권)있는 것과 같습니다. 이를 읽고 싶은 독자(논리적 스레드)는 수십 혹은 수백명이지만 도서관에서 빌릴 수 있는 사람은 최대 8명 입니다. 나머지는 책이 반납될때 까지 기다려야 합니다.
즉 쉽게 말해서, 프로그래밍할 때 나오는 Thread는 Logical thread고, CPU가 갖고있는 Thread는 Physical thread다.
글고 Process는 하나 이상의 Thread를 갖고 있다.
https://junshock5.tistory.com/146
https://junshock5.tistory.com/117?category=758386
https://popcorntree.tistory.com/2
'Computer Science > Operating System' 카테고리의 다른 글
Virtualization 정리 (+Ring level, binary translation [소프트웨어 전가상화], trap&emulate[하드웨어 전가상화]) (0) | 2022.07.25 |
---|---|
캐시와 버퍼의 차이 (0) | 2022.07.21 |
CPU 스케줄러 완벽 정리 (0) | 2022.06.10 |
[OS] 멀티프로세싱, 멀티프로그래밍, 멀티태스킹, 멀티스레딩 (0) | 2022.04.25 |
Hypervisor 공부 방향 (0) | 2022.04.04 |
최근댓글