[운영체제] 쓰레드란?

Woogie·2023년 2월 7일
0

쓰레드란?

1. 쓰레드의 개념

프로세스 내에서 프로세스가 할당 받은 자원을 이용하는 실행 흐름의 단위를 의미
한 프로세스 내에는 여러개의 쓰레드가 동시에 실행될 수 있습니다.
그렇다면 프로세스 안에 쓰레드가 있다고 생각해야겠네 !!!!!!!!!!!!!!!!!

2. 쓰레드의 특징

쓰레드끼리 Code/Data/Heap 영역을 공유하고, Stack 영역은 별도로 관리한다.
기본적으로 하나의 프로세스가 생성되면 하나의 쓰레드가 같이 생성된다 [메인 쓰레드]
물론, 하나의 프로세스는 여러 개의 쓰레드를 가질 수 있으며, 이를 멀티 쓰레드라고 한다.

❓ 쓰레드와... 프로세스가 너무 헷갈리는데요...?

프로그램 및 프로세스가 하나의 코드 덩어리라면
쓰레드는 코드 내에 선언된 함수라고 이해하면된다 [쓰레드는 스택을 가지고있으니까]

3. 쓰레드와 프로세스의 차이

  1. 일부 프로세스의 종료는 다른 프로세스에 영향을 미치지 않습니다.

각각의 프로세스는 독립적이구나..?

  1. 일부 쓰레드의 종료는 해당 프로세스에 영향을 미친다.

쓰레드는 한 프로세스 내에서 Code/Data/Heap 메모리 영역의 내용을 공유하기 때문에
어떤 쓰레드 하나라도 오류가 발생한다면, 같은 프로새스 내의 다른 쓰레드까지 모두 강제로 종료
예를 들어보면 코드[프로세스] 내의 어떤 함수[쓰레드] 하나에서 오류가 발생할 경우 , 해당 오류가 어떤 함수에서 발생했는지와 상관 없이, 해당프로세스는 종료된다

  1. CPU 의 최소작업 단위는 쓰레드
  1. 운영체제의 최소 작업 단위는 프로세스다.
profile
ssafy_9th / CS

0개의 댓글