Post

[OS] 스레드

3줄 요약
스레드는 프로세스를 구성하는 실행 흐름의 단위
멀티 프로세스는 자원을 공유하지 않고, 멀티 스레드는 자원을 공유
스레드는 프로그램 실행 효율성을 높이지만 동기화 문제가 발생할 수 있음

💻 컴퓨터 구조 & 운영체제 시리즈

이 시리즈는 『혼자 공부하는 컴퓨터 구조+운영체제』 (강민철 저)
+ 인프런 강의를 기반으로 개인적으로 복습 및 정리한 기록입니다.


📌 스레드란?

프로세스를 구성하는 실행 흐름의 단위

  • 실행 흐름이 하나인 프로세스 → 단일 스레드 프로세스
  • 실행 흐름이 여러 개인 프로세스 → 멀티 스레드 프로세스
    • 프로세스를 이루는 여러 명령어를 동시에 실행

스레드는 프로세스 내부에서 독립적으로 실행되는 흐름을 의미
CPU가 스레드를 스케줄링하여 실행함


🧩 스레드의 구성 요소

  • 스레드 ID
    → 스레드를 식별하기 위한 고유 번호

  • 프로그램 카운터
    → 다음에 실행할 명령어의 주소

  • 레지스터 값
    → 스레드 실행 중 필요한 데이터 저장

  • 스택(Stack)
    → 함수 호출 시 지역 변수 및 복귀 주소 저장

스레드는 프로세스의 코드, 데이터, 힙 영역은 공유하지만, 레지스터와 스택은 개별적으로 유지


⚡ 멀티 프로세스 vs 멀티 스레드

항목멀티 프로세스멀티 스레드
자원 공유자원 공유 없음 (독립 메모리 공간)자원 공유 (코드, 데이터, 힙)
통신 방식프로세스 간 통신(IPC) 필요공유 메모리로 간편한 통신 가능
장점하나가 죽어도 다른 프로세스는 영향 없음메모리 절약, 빠른 통신
단점통신 복잡성, 오버헤드하나가 죽으면 전체 프로세스에 영향 가능

✅ 마무리 정리

스레드는 하나의 프로세스 안에서 실행 흐름을 나누어 작업 효율을 높이는 단위
멀티 스레드는 메모리 공유 덕분에 빠르지만,
동기화 문제데드락 위험에 주의해야 함


📚 참고 자료


읽어주셔서 감사합니다 🙌
내용이 도움이 되었거나, 틀린 부분이 있다면 댓글이나 GitHub Issue로 알려주세요 😊

This post is licensed under CC BY 4.0 by the author.