티스토리 뷰

CS/OS

프로세스와 스레드의 차이

이지홍 2022. 3. 29. 00:09
반응형

📌프로세스와 스레드의 차이 

 

👉프로세스와 스레드에 대한 정의 

프로세스: 운영체제로부터 자원을 할당받은 작업의 단위
스레드 : 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위 


우선 운영체제에 대해 기본 배경지식이 없다면 정의만 들었을 때 무슨 소리인지 쉽게 이해가 잘 안된다...^^
프로세스의 정의에서 작업이라는 단어와 스레드의 정의에서 실행흐름이라는 단어를 기억해두고 공부해보자!

 

프로그램 -> 프로세스 -> 스레드 

 

1) 프로그램 -> 프로세스 

먼저 프로세스와 스레드에 대해 본격적으로 설명하기 전에 프로그램에 대해서 설명하고 가야 한다.

프로그램: 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태를 말한다.  

이게 무슨말이냐 하면 아직 실행되지 않은 파일 그 자체를 가리키는 말이다. 윈도우위 *.exe파일이나 MacOS의 *.dmg 파일 등등 사용자가 눌러서 실행하기 전의 파일을 말한다. 쉽게 말해 그냥 코드 덩어리라고 한다. 

그렇다면 이 프로그램을 실행시켜야 하는데 프로그램을 실행하는 순간 해당 파일은 컴퓨터 메모리에 올라가게 되고, 이 상태를 동적인 상태라고 하며 이 상태의 프로그램을 프로세스라고 한다.   따라서 위키피디아에서는 프로세스에 대해 정의를 내릴 때 그냥 실행되고 있는 컴퓨터 프로그램이라고 정의를 내리고 있으며, 스케줄링 단계에서의 "작업"과 같은 단어라고 봐도 무방하다고 하고 있다. 실제로 프로세스라는 단어가 작업중인 프로그램을 의미하는 단어이기 때문이다. 

결론 :  프로그램은 운영체제에서 메모리를 할당받지 않은 정적인 코드덩어리, 그 정적인 상태의 프로그램을 실행시켜 동적인 상태의 프로그램을 프로세스 라고 한다.

1) 프로세스 -> 스레드

보통 한 프로그램당 하나의 프로세스를 진행할 수 있는데 시간이 지날수록 프로그램에 여러가지의 작업들이 추가되면서 프로세스와는 다른 더 작은 실행 단위의 개념이 필요하게 되었고, 이것이 바로 스레드라고 한다.

 

 스레드는 프로세스와 다르게 스레드간 메모리를 공유하며 작동한다. 스레드끼리 프로세스의 자원을 공유하면서 프로세스 실행 흐름의 일부가 되는 것이다. 아까 프로그램이 코드 덩어리라고 했는데, 스레드도 코드에 비유하자면 스레드는 코드 내에 선언된 함수들이 되고 따라서 main함수 또한 일종의 스레드라고 볼 수 있게 되는 것이다.


중요한것은

1. 프로그램,프로세스,스레드에 대한 기본 개념 이해
2.운영체제가 시스템 자원을 어떤 방식으로 할당하고 실제 프로그램은 이 자원을 어떤 방식으로 활용하여 작동되는지 
3. 프로세스와 스레드의 차이
4.프로세스와 스레드의 작동방식
5.멀티스레드

 

반응형

'CS > OS' 카테고리의 다른 글

프로세스와 스레드의 차이  (0) 2022.03.29
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함