본문 바로가기
Computer Science/운영체제

[운영체제] 스레드(Thread)

by Sky Titan 2020. 9. 14.
728x90

※출처 : TOPCIT 에센스

이미지를 클릭하면 사이트로 이동합니다.

스레드 (Thread)

- CPU를 사용하는 기본 단위

- '경량 프로세스' 라고도 한다

- 프로세스는 최소 하나의 스레드를 갖는다

- 높은 병렬성으로 나은 성능 제공

- 리소스의 효율적 사용

- data 공유 쉬움

- 공유 O : 코드, 데이터, 파일 (기억장치 공유)

- 공유 X : 레지스터, 스택

프로세스와의 차이점

  • 프로세스 : 중앙처리장치 사용시간을 문맥 교환(Context Switching)에 많은 시간 사용
  • 스레드 : 기억장치(코드, 데이터 영역)를 공유하기 때문에 더욱 경제적인 문맥 교환(Context Switching) 가능

 

프로세스와 스레드의 관계

 

멀티 스레드

  • 싱글 스레드 프로세스 : 하나의 프로세스, 하나의 스레드
  • 멀티 스레드 프로세스 : 하나의 프로세스, 여러개 스레드
  • CPU는 한순간에 오직 하나의 스레드만 점유가능
  • 스레드 동작 방식 : 준비, 블록, 수행, 종료

 

멀티 스레드 장점

  • 하나의 프로세스가 점유한 메모리를 공유하여 멀티 스레드에서 같은 메모리 주소로 접근 가능
  • 스레드의 생성과 문맥교환(Context Switching) 비용은 프로세스보다 경제적
  • 프로세스의 병렬성을 높여 멀티 프로세서를 활용 가능

 

Context Switching

  • CPU가 어떤 프로세스를 실행하는 중 인터럽트에 의해 그 다음 프로세스를 실행해야할 때 '기존 프로세스 상태 및 레지스터 값' (Context)를 PCB에 저장하고 '새 프로세스의 상태 및 레지스터 값을 PCB에서 불러와 교체하는 과정'

 

Context

  • CPU가 프로세스를 실행하기 위한 프로세스의 상태정보(State)
  • PCB에 저장
728x90

댓글