운영체제 | 스레드

Faithful Dev·2025년 1월 25일

컴퓨터 공학

목록 보기
26/81

스레드(Thread)

스레드는 프로세스 내에서 실행되는 작업 단위이다. 하나의 프로세스는 최소 하나의 스레드를 가지며, 이를 메인 스레드라고 한다.

특징

  • 스레드는 프로세스의 자원을 공유한다.
    • 공유되는 자원: 메모리(코드, 데이터, 힙)와 열린 파일.
    • 개별적인 자원: 스택, CPU 레지스터.
  • 스레드는 경량화된 실행 단위로, 같은 프로세스 내에서 통신 속도가 빠르다.
  • 하나의 스레드가 실패하면 같은 프로세스의 다른 스레드에도 영향을 미칠 수 있다.

멀티스레드(Multi-threading)

멀티스레드는 하나의 프로세스에서 여러 스레드가 동시에 실행되는 구조를 말한다.

특징

  • 병렬성: CPU 코어 수에 따라 여러 스레드가 병렬적으로 실행.
  • 자원 효율성: 스레드는 프로세스의 자원을 공유하므로, 멀티프로세싱보다 메모리 사용량이 적다.
  • 스레드 간 통신: 공유 메모리를 사용하여 빠르고 간단하게 데이터 교환 가능.
  • 단점:
    • 스레드 간 자원 충돌 가능(예: 동시 접근으로 인한 데이터 손상).
    • 이를 해결하기 위해 뮤텍스, 세마포어 등의 동기화 도구가 필요.

멀티프로세싱(Multi-processing)

멀티프로세싱은 하나의 작업을 여러 프로세스로 분리하여 병렬 실행하는 구조이다.

특징

  • 독립성:
    • 각 프로세스는 자체 메모리 공간을 가진다.
    • 하나의 프로세스가 실패해도 다른 프로세스에는 영향을 미치지 않는다.
  • 병렬 처리:
    • 여러 CPU 코어를 활용해 작업 처리 속도를 높임.
  • 프로세스 간 통신(IPC):
    • 프로세스는 서로 독립적이므로 데이터 공유를 위해 IPC(메시지 전달, 공유 메모리 등)가 필요.
  • 단점:
    • 메모리 사용량이 크며, 프로세스 간 통신이 상대적으로 느림.

스레드 vs. 멀티스레드

항목스레드멀티스레드
실행 단위단일 스레드여러 스레드가 병렬 실행.
자원 공유단일 스레드로만 자원 사용프로세스 자원을 공유.
장점구현이 간단.작업을 병렬 처리해 성능 향상.
단점단일 작업 처리에 한정됨.동기화 문제로 디버깅이 복잡.

멀티프로세스와 멀티스레드의 차이

항목멀티프로세스멀티스레드
메모리 구조각 프로세스가 독립적인 메모리 공간을 가짐.하나의 메모리 공간을 공유.
통신 방식IPC(메시지 전달, 공유 메모리 등) 사용.공유 메모리를 통해 빠른 통신 가능.
병렬 처리 성능CPU 코어 수에 따라 독립적 병렬 처리 가능.병렬 처리 시 메모리 효율적 사용.
오버헤드프로세스 생성, 통신 비용이 큼.스레드 생성, 전환 비용이 적음.
안정성한 프로세스가 실패해도 다른 프로세스는 영향 없음.한 스레드 실패 시 전체 프로세스에 영향을 줌.
적합한 작업CPU 집약적인 작업(대규모 연산, 병렬 컴퓨팅).IO 중심 작업(네트워크 요청, 파일 읽기/쓰기).

멀티스레드와 멀티프로세싱을 함께 사용하는 경우

멀티스레드와 멀티프로세싱은 상호 보완적으로 사용할 수 있다.

활용 사례

  • 웹 서버:
    • 멀티프로세싱으로 여러 클라이언트를 처리.
    • 각 프로세스 내에서 멀티스레드로 작업(예: 데이터베이스 요청 처리).
  • 대규모 데이터 처리:
    • 멀티프로세싱으로 데이터 세그먼트를 분할하여 작업.
    • 각 프로세스에서 멀티스레드로 세부 작업 처리.

정리

  1. 스레드: 프로세스 내의 실행 단위로, 메모리를 공유하며 작업을 수행.
  2. 멀티스레드: 하나의 프로세스에서 여러 작업을 병렬로 수행.
  3. 멀티프로세싱: 프로세스를 여러 개 생성하여 병렬 작업 수행.
  4. 멀티프로세스 vs. 멀티스레드:
    • 멀티스레드는 메모리 공유로 자원을 효율적으로 사용하지만, 동기화 문제가 복잡.
    • 멀티프로세싱은 안정성이 높지만, 메모리 사용량과 통신 비용이 크다.

적합한 사용 방식은 작업의 특성에 따라 결정된다. CPU 집약적인 작업에는 멀티프로세싱이, IO 중ㅇ심 작업에는 멀티스레드가 유리하다.

profile
Turning Vision into Reality.

0개의 댓글