스레드(Thread)
어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위입니다.
Light Weight Process라고도 합니다.
멀티 스레드(Multi Thread)
하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미합니다.
멀티 프로세싱(Multi Processing)
여러 개의 CPU를 사용하여 여러 프로세스를 동시에 수행하는 것을 의미합니다.
스레드(Thread)의 장단점
장점 | 단점 | |
Thread | 1. 응답성 향상 2. 자원 공유 효율성 3. 작업이 분리되어 코드가 간결 |
1. 하나의 스레드에 문제가 있어도 전체 프로세스가 영향을 받는다. 2. 스레드를 많이 생성하면, Context Switching이 많이 일어나 성능이 저하됩니다. 3. 동기화 이슈로 비정상적으로 동작할 가능성이 있습니다. |
프로세스(Process) vs 스레드(Thread)
프로세스(Process) | 스레드(Thread) |
독립적 | 프로세스의 서브셋 |
각각 독립적인 자원을 갖는다. | 프로세스의 자원을 공유합니다. |
자신만의 주소영역을 갖는다. | 주소영역을 공유한다. |
프로세스간에는 IPC기법으로 통신해야한다. | 그냥 공유된다. |
참고
Reference
http://donghoson.tistory.com/15
'Computer Science > Operating System' 카테고리의 다른 글
가상 메모리(Virtual Memory System) (0) | 2023.05.14 |
---|---|
동기화(Synchronization) (2) | 2023.05.14 |
스케쥴링 알고리즘(Schduling Algorithm) (2) | 2023.05.14 |
프로세스 스케쥴링(Process Scheduling) (0) | 2023.05.14 |
프로세스(Process)란? (0) | 2023.05.14 |