728x90
스레드는 프로세스를 구성하는 실행 흐름의 단위!
하나의 프로세스는 하나 이상의 스레드를 가질 수 있다
- 하나의 실행 흐름을 가지고 한 번에 하나의 부분만 실행 : 단일 스레드 프로세스
- 프로세스가 한 번에 여러 일을 동시에 처리한다 : 멀티스레드 프로세스
스레드를 이루는 구성 요소 및 특징
- 스레드 ID , 프로그램 카운터,레지스터 값, 스택 등이 있다
- 쉽게 말해 실행에 필요한 최소한의 정보를 가지고 있다
- 모든 스레드들은 프로세스의 자원을 공유 한다
멀티 프로세스와 멀티 스레드
동일한 작업을 수행하는 단일 스레드 프로세스 여러 개 실행
VS
하나의 프로세스를 여러 스레드로 실행
아래 내용을 참고!
멀티 프로세스
- 프로세스는 스레드처럼 서로 자원을 공유하지 않는다
- 프로세스를 fork 하면 코드/데이터/힙 영역 등 모든 자원이 복제되어 저장됨
- 저장된 메모리 주소를 제외하면 모든 것이 동일한 프로세스 두 개가 통째로 메모리에 적재!
멀티 스레드
- 스레드들은 각기 다른 스레드ID, 프로그램 카운터 값을 포함한 레지스터 값, 스택을 가질 뿐 프로세스가 가지는 자원을 공유한다
프로세스끼리는 자원을 공유하지 않는다 -> 서로 남남처럼 독립적으로 실행한다
스레드끼리는 자원을 서로 공유한다-> 협력과 통신에 유리하다
'운영체제' 카테고리의 다른 글
CPU 스케줄링 및 알고리즘 (0) | 2023.02.05 |
---|---|
프로세스 상태와 계층 구조 (0) | 2023.02.04 |
프로세스의 개요 (0) | 2023.02.04 |
운영체제란(OS : operating system)!? (0) | 2023.02.04 |