개인공부/컴퓨터 구조와 운영체제

[컴퓨터구조와 운영체제] 스레드

개바리여리 2025. 1. 15. 12:27

 

스레드는 프로세스를 구성하는 실행흐름의 단위이다. (하나의 프로세스는 하나 이상의 스레드를 가질 수 있다.)

하나의 프로세스에서 여러개의 스레드를 사용함으로써 병렬 작업이 가능하다. 

 

ex: 워드프레세서 --> 입력 , 출력, 자동저장과 같은 기능이 병렬적으로 이루어진다. (동시작업 가능)

이처럼 실행 흐름이 여러 가지인 프로세스를 멀티 스레드 프로세스라고 한다.

 

 

스레디의 구성 요소

스레드 ID, 프로그램 카운터를 비롯한 레지스터 값, 스택 등 실행에 필요한 최소한의 정보를 가진다.

 

스레드들은 같은 하나의 프로세스 내에서 같은 자원을 공유한 --> 코드 영역, 데이터 영역을 공유한다.

어떤 파일이 열린다면 모든 스레드들은 해당 파일에 접근이 가능하게 된다는 것이다.

 

 

스레드와 프로세스의 차이를 이해하기 위해 동일한 작업을 수행하는 단일 스레드를 가진 멀티 프로세스와

멀티 스레드를 하는 단일 프로세스의 차이점을 이해하여야 한다.

 

멀티 프로세스는 동시에 작업을 진행하게 될것이다.

단일 프로세스 또한 해당 작업을 동시에 진행되지만 전자는 자원을 공유하지 않지만(PCB 값이 복수이며 다름) 후자는 자원이 공유하면서 실행(PCB가 단일이며 같음)할 수 있다.

 

*프로세스 간의 자원 공유는 가능하지만 스레드가 더 유리하다

 

멀티 프로세서 환경에서는 하나의 프로세스의 문제가 전체로 퍼치진 않지만

멀티 스레드 환경에서는 전체의 문제로 확산될 수 있다.