[OS] 스레드
3줄 요약
스레드는 프로세스를 구성하는 실행 흐름의 단위
멀티 프로세스는 자원을 공유하지 않고, 멀티 스레드는 자원을 공유
스레드는 프로그램 실행 효율성을 높이지만 동기화 문제가 발생할 수 있음
💻 컴퓨터 구조 & 운영체제 시리즈
이 시리즈는 『혼자 공부하는 컴퓨터 구조+운영체제』 (강민철 저)
+ 인프런 강의를 기반으로 개인적으로 복습 및 정리한 기록입니다.
📌 스레드란?
프로세스를 구성하는 실행 흐름의 단위
- 실행 흐름이 하나인 프로세스 → 단일 스레드 프로세스
- 실행 흐름이 여러 개인 프로세스 → 멀티 스레드 프로세스
- 프로세스를 이루는 여러 명령어를 동시에 실행
스레드는 프로세스 내부에서 독립적으로 실행되는 흐름을 의미
CPU가 스레드를 스케줄링하여 실행함
🧩 스레드의 구성 요소
스레드 ID
→ 스레드를 식별하기 위한 고유 번호프로그램 카운터
→ 다음에 실행할 명령어의 주소레지스터 값
→ 스레드 실행 중 필요한 데이터 저장스택(Stack)
→ 함수 호출 시 지역 변수 및 복귀 주소 저장
스레드는 프로세스의 코드, 데이터, 힙 영역은 공유하지만, 레지스터와 스택은 개별적으로 유지
⚡ 멀티 프로세스 vs 멀티 스레드
항목 | 멀티 프로세스 | 멀티 스레드 |
---|---|---|
자원 공유 | 자원 공유 없음 (독립 메모리 공간) | 자원 공유 (코드, 데이터, 힙) |
통신 방식 | 프로세스 간 통신(IPC) 필요 | 공유 메모리로 간편한 통신 가능 |
장점 | 하나가 죽어도 다른 프로세스는 영향 없음 | 메모리 절약, 빠른 통신 |
단점 | 통신 복잡성, 오버헤드 | 하나가 죽으면 전체 프로세스에 영향 가능 |
✅ 마무리 정리
스레드는 하나의 프로세스 안에서 실행 흐름을 나누어 작업 효율을 높이는 단위
멀티 스레드는 메모리 공유 덕분에 빠르지만,
동기화 문제나 데드락 위험에 주의해야 함
📚 참고 자료
- 『혼자 공부하는 컴퓨터 구조+운영체제』 - 강민철 저
- 인프런 강의 - 혼자 공부하는 컴퓨터 구조+운영체제 기반 강의
읽어주셔서 감사합니다 🙌
내용이 도움이 되었거나, 틀린 부분이 있다면 댓글이나 GitHub Issue로 알려주세요 😊
This post is licensed under CC BY 4.0 by the author.