CS

[Process와 Thread - 2] 프로세스와 스레드의 개념과 차이: 멀티스레드의 작동 원리

옥돔이와 연근이 2025. 2. 20. 12:52
반응형
   ↘️ [Process와 Thread]

[Process와 Thread - 3] 멀티 프로세스와 멀티 스레드 비교

[Process와 Thread - 1] 프로세스의 구조와 동작 방식

 

 

 

 


📍 프로세스와 스레드 개념 정리

 

1. 프로세스란?

  • 프로세스: 운영체제로부터 자원을 할당받는 작업의 단위.
    • 실행 파일이 메모리에 적재되어 CPU를 할당받아 실행됨.
    • 메모리의 Code, Data, Heap, Stack 영역으로 구성됨.
    • 각 프로세스는 독립적인 메모리 공간을 가지며, 다른 프로세스와 메모리를 공유하지 않음.

 


2. 스레드란?

  • 스레드: 프로세스가 할당받은 자원을 이용하는 실행의 단위.
    • 하나의 프로세스 내에서 여러 스레드가 독립적으로 동작함.
    • 스레드는 Code, Data, Heap 영역을 프로세스 내의 다른 스레드와 공유.
    • Stack 영역과 PC Register는 각 스레드마다 독립적으로 존재함.
      • Stack 영역: 지역 변수, 매개변수, 함수 호출 기록 등을 저장.
      • PC Register: 실행 중인 명령어의 주소를 저장.

 


3. 멀티스레드란?

멀티스레드

  • 멀티스레드: 하나의 프로세스가 동시에 여러 개의 일을 수행하도록 하는 구조.
    • 한 프로세스 내에서 여러 스레드가 병렬로 작업을 처리함.
    • 예시: 유튜브 앱
      • 동영상 재생 (스레드 1).
      • 댓글 로드 (스레드 2).
      • 네트워크 데이터 처리 (스레드 3).
  • 장점:
    1. 자원을 공유하기 때문에 프로세스 간 통신보다 효율적.
    2. 작업 병렬 처리로 실행 속도 향상.
  • 단점:
    1. 메모리 공유로 인한 동기화 문제 발생 가능.
    2. 동기화 구현이 복잡할 수 있음.

4. 스레드와 메모리 구조

  • 공유 영역:
    • Code 영역: 실행 코드 저장.
    • Data 영역: 전역 변수, 정적 변수 저장.
    • Heap 영역: 동적 메모리 할당 영역.
  • 독립 영역:
    • Stack 영역: 함수 호출 기록, 지역 변수, 매개변수 저장.
    • PC Register: 스레드가 실행할 다음 명령어의 주소를 저장.

 


5. 스레드와 Context Switch

  • 한 프로세스 내에서도 스레드 간에 Context Switch가 발생할 수 있음.
  • Context Switch 과정:
    1. 현재 스레드의 PC Register 값을 저장.
    2. 새 스레드의 PC Register 값을 로드하여 작업 재개.

 


💡 요약

  • 프로세스는 독립적인 작업 단위로, 운영체제로부터 자원을 할당받아 실행됨.
  • 스레드는 프로세스가 할당받은 자원을 이용하는 실행 단위로, 같은 프로세스 내에서 자원을 공유하며 독립적으로 동작.
  • 멀티스레드는 하나의 프로세스에서 여러 작업을 병렬로 처리하기 위한 기술.
  • 스레드 메모리 구조:
    • Code, Data, Heap은 공유.
    • Stack, PC Register는 독립적으로 유지.
반응형