Process vs Thread (+동시성, 멀티코어)

itonse·2023년 12월 27일
0

CS 스터디

목록 보기
16/56

영상 내용 정리

movie

해당 단원에서는 용어의 늪에 빠지지 말고 단어들을 혼동해서 사용하지 않도록 주의한다.
ex) 동시, 병렬, 병행

동시성

동시성: 한 순간에 여러가지 일이 아니라, 짧은 전환으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것
짧은 순간에 CPU의 시간을 분할해서 동시에 하는 것처럼 보이게 한다.

프로그램과 프로세스 비유 예시
-> 프로그램은 피자 레시피, 프로세스는 피자


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

멀티 프로세스

  • 각 프로세스는 독립적
  • 프로세스간 통신은 IPC를 사용
  • 자원 소모적, 개별 메모리 차지
  • Context Switching 비용이 큼
  • 동기화 작업이 필요하지 않음

멀티 스레드

  • 스레드 끼리 긴밀하게 연결되어 있음
  • 공유된 자원으로 통신 비용 절감
  • Context Switching 비용이 적음
  • 공유 자원 관리를 해야함

멀티 코어

스레드, 프로세스는 소프트웨어 관점이라면, 멀티 코어는 하드웨어 관점이다.
멀티코어와 관련된 키워드는 동시성병렬처리이다.

동시성(싱글 코어)

  • 하나의 코어에서 하나 이상의 프로세스(or 스레드)가 번갈아가면서 진행되지만 동시에 진행되는 것처럼 보이는 것

병렬처리(멀티 코어)

  • 둘 이상의 코어에서 동시에 하나 이상의 프로세스(or 스레드)가 한꺼번에 진행되는 것

요약 정리

  1. 프로세스는 프로그램이 실행된 것
  2. 스레드는 한 프로세스 내에서 나뉘어진 하나 이상의 실행 단위
  3. 한 어플리케이션에 대한 작업을 동시에 하기 위해서는 2가지 처리 방식(멀티 프로세스, 멀티 스레드)가 있다.
  4. 동시에 실행이 되는 것처럼 보이기 위해서 실행 단위는 시분할고 cpu를 점유하며 Context Switching을 한다.
  5. 멀티 프로세스는 독립적인 메모리를 가지고 있지만, 멀티 스레드는 자원을 공유한다. 그것에 따른 각각의 장단점이 있다.
  6. 멀티 코어는 하드웨어 측면에서 실행 단위를 병렬적으로 처리할 수 있도록 여러 프로세서가 있는 것이다.

0개의 댓글