[운영체제] 스레드

·2024년 6월 26일
0

운영체제

목록 보기
2/10

스레드

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

  • 하나의 프로세스는 여러 개의 스레드를 가질 수 있다.

  • 스레드를 통해 하나의 프로세스가 한번에 여러가지 일을 처리할 수 있다.

  • 스레드는 프로세스의 자원(코드, 데이터, 힙 영역)을 공유한다.

    • 실행에 필요한 pc, 레지스터, 스택은 따로 가진다.
    • 따라서 공유하는 자원에 문제가 생기면, 모든 스레드에 영향을 미친다.
    • 프로세스의 자원을 공유하여 실행에 필요한 최소한의 정보만으로 실행된다.

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

멀티 프로세스: 여러 프로세스를 동시에 실행하는 것
멀티 스레드: 여러 스레드로 프로세스를 동시에 실행하는 것

결과는 같지만…

왼쪽은 프로세스는 자원을 공유하지 않으므로, 메모리 주소를 제외하고 모든 것이 동일한 프로세스가 3번 적재
→ 낭비가 될 수도

오른쪽의 스레드끼리는 같은 프로세스 내의 자원을 공유

이러한 특성을 활용하면, 스레드는 프로세스의 자원을 공유하여 협력하고 통신할 때 훨씬 효율적. 낭비 없음.


하지만, 멀티스레드 환경에서는 자원을 공유하기 때문에, 하나의 스레드에서 문제가 생기면 프로세스에 문제가 생길 수도.

멀티프로세스 환경에서는 독립적으로 실행되기 때문에 이와 같은 문제는 발생하지 않음.



Reference

혼자 공부하는 컴퓨터구조+운영체제
공룡책

0개의 댓글

관련 채용 정보