스레드 효율 & 용어정리

sun·2024년 6월 26일
0

간단하게 프로세스의 구조 나타내기

Stack

  • 임시 데이터(함수 호출, 로컬 변수 등)가 저장되는 영역

<--->

  • Text, Data는 고정된 메모리를 가지는 반면 Stack과 Heap 영역은 메모리 적재량이 동적을 바뀌기 때문에 남은 공간을 사용한다.

Heap

  • 동적으로 생성되는 데이터가 저장되는 영역

Data

  • 전역 변수 / 초기화된 데이터가 저장되는 영역

Text

  • 컴파일된 소스 코드가 저장되는 영역
  • 프로세스는 위와 같은 구조로 주기억장치에(RAM)에 적재된다.
  • 스레드라는 개념이 없었을떈 실행 단위가 프로세스 였지만, 스레드가 생긴 이후부터는 프로세스란 적어도 하나의 스레드를 갖고 실행되는 개념으로 바뀌었다.

멀티 프로세서

  • 멀티 프로세서는 말 그대로 프로세서(CPU)가 여러개 달린 컴퓨터를 말한다.
  • 멀티 코어 프로세서를 멀티 프로세서와 혼용해서 말하기도 하는 듯 하다.

멀티 프로세싱(=멀티 프로세스)

  • 여러 프로세서를 통해 프로세스를 수행하는 것을 말한다. 이때 프로세스는 하나 이상을 말하고 보통 요즘 컴퓨터에서는 하나의 프로세스만이 실행되지 않기 때문에 사실상 여러 CPU로 여러 프로세스를 수행하도록 하는 것을 멀티 프로세싱이라고 이해하면 되지 않을까 싶다.

  • 멀티 프로세싱은 프로세서가 여러 개인 상황을 가정하기 때문에, 실질적으로 병렬처리가 가능하다.

  • 말 그대로 진짜 동시에 여러 작업을 처리할 수 있다는 뜻이다.

멀티 프로그래밍

  • 하나의 프로세서로 여러 개의 프로세스를 수행할 수 있도록 하는 것을 말한다.
  • 멀티 프로그래밍은 병행처리에 해당한다.
  • 현재는 멀티 프로세싱 + 멀티 프로그래밍이 더해져 여러 CPU들에 의해 여러 프로세스들이 병렬 + 병행 처리된다.

멀티 스레딩(=멀티 스레드)

  • 하나의 프로세스에서 여러 개의 스레드 작업을 수행하는 경우를 말한다. 이러한 멀티 스레드는 병렬 또는 병행으로 처리될 수 있다.

CPU의 코어

  • CPU에서 코어란 연산을 담당하는 핵심 부분이라 생각하면 된다.
  • 코어가 여러 개라는 것은 CPU가 여러 개라는 것과도 사실상 같다.

CPU의 스레드

  • CPU에서 말하는 스레드는 우리가 위에서 공부한 스레드와는 조금 다른 개념으로 보는 것이 맞다.
    좀 더 물리적인 개념에 가깝기 때문이다.

참고 :
https://velog.io/@yukicow/%EC%8A%A4%EB%A0%88%EB%93%9C%EC%99%80-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4

0개의 댓글