CS/운영체제&네트워크

스레드(쓰레드)란?

린예라 2024. 2. 22. 23:13

어떤목적을 갖는 코드의 집합이 프로그램이고, 이것이 메모리에 적재되어 실행되게 되면 프로세스가 된다.

 

빗대어 표현하면 프로그램이라는 클래스로 부터, 실행을 위해 나온 객체를 프로세스라고 할 수 있는 것이다. 이때 프로세스는 여러개가 될 수 있다.

 

그리고 이 프로세스에서, 실질적으로 동작을 하는 단위를 스레드라고 한다. 프로세스 내의 스레드 또한 여러개가 될 수 있다.

 

스레드(thread)는 프로세스 내에서 실행되는 흐름의 단위를 말한다. 혹은 프로세스내에서 실행체계의 단위를 말한다.

 

영어사전을 살펴보면 Thread는 실을 뜻한다. 실이란 어떤 흐름을 빗대어 표현한 것으로 -> 처음과 끝이 중간에 끊어지는 것 없이 이어져 있는 것을 말한다.

 

 

현실에 빗대어서 표현을 해보겠다.

 

1.어떤 복서가 있다고 해보자. 복싱을 하기위한 목적의(약간 억지스럽지만) 몸의 집합(팔이라던가 다리라던가 등등)인 복서는 프로그램이라고 할 수 있다.

 

2.복서가 시합을 뛰게 되었다. 이 시합중인 복서를 프로세스라고 할 수 있다. 

 

3.복서는 시합 중 주먹을 뻗어서 공격을하거나, 상대의 공격을 피하거나, 혹은 상대 공격을 피하면서 동시에 공격하는 카운터를 날릴 수도 있다. 이런 각각의 행동을 모두 스레드라고 할 수 있다.

 

펀치를 예로들자면, 뒷쪽의 오른발을 회전하듯이 박차면서 -> 허리를 돌리고 -> 그 반동으로 어깨가 젖혀지면서 -> 오른쪽 손이 뻗어져 나간다. 

 

즉 오른발을 박찬다는 시작동작이 있고/ 중간에 이어지는 동작이 있으며 / 최종적으로 오른손이 뻗어져 나가면서 끝나는/ 일련의 동작의 흐름이다.

 

그렇기에 이 펀치를 날리는 하나의 과정을 쓰레드라고 할 수 있는 것이다. 또 동작의 단위라고도 할 수 있다.

 

 

'CS > 운영체제&네트워크' 카테고리의 다른 글

메모리 외부단편화 내부단편화  (0) 2024.04.06
OSI 7계층  (1) 2024.02.27
인터럽트 동작 과정  (0) 2024.02.20
스케줄링 알고리즘  (0) 2022.04.02
운영체제 대략적인 큰 그림  (0) 2022.03.29