process vs thread

JuHyung Yoon·2023년 4월 24일

<키워드>

  1. 실행 단위 - cpu core에서 실행하는 하나의 단위로 프로세스와 스레드를 포괄하는 개념

2.(부연 설명이 없는)프로세스 - 하나의 스레드만 가지고 있는 단일 스레드 프로세스

3.동시성 - 한 순간에 여러가지 일이 아니라, 짧은 전환으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것

순서

Process & Thread

Multi-process vs.Multi-thread

Multi-core

요약.

process = 실행을 위한 것 ex)레시피

프로그램이 프로세스가 되면 총 두가지 일이 일어나게된다.

  1. 프로세스가 필요로 하는 재료들이 메모리에 올라갸아한다.
  • code(실행 명령응 포함하는 코드들)
  • Data(Static 변수 혹은 Global 변수)
  • Heap(동적 메모리 영역)
  • Stack(지역변수, 매개변수, 반환 값 등 일시적인 데이터
  1. PCB Control Block이 생성된다
  • Pointer
  • Process State
  • Program Counter
  • Registers
  • Memory limits
  • List of open files
  • ...등등

프로세스 실행과정
컨테스트 스위칭: PCB_1 PCB_2 두개는 번갈아가면서 실행과 준비를 반복한다

Thread = 경량화 된 프로세스

앞서 얘기한 code, Data, Heap, Stack이 공유된 자원으로 있다

Multi-process & Multi-thread
개념 : 처리방식의 일종

Multi-process

  • 한번에 하나씩 밖에 처리하지못한다 그래서 부모 프로세스가 fork()를 해서 자식 프로세스를 여러개만들어 처리하도록 한다
  • 각 프로세스는 독립적이기 때문에 IPC를 통해서 통신을 해야한다,
  • 자원 소모적, 개별 메모리 차지
  • Context Switching. 비용이 큼
  • 동기화 작업이 필요하지 않음
    Multi-thread
  • 스레드는 한 프로세스 내에서 구분지어진 실행단위
  • Thread끼리 긴밀하게 연결되어 있음
  • 공유된 자원으로 통신 비용 절감
  • 공유된 자원으로 메모리가 효율적임
  • Context Switching 비용이 적음
  • 공유 자원 관리를 해야함

Multi-core

<키워드>

  • 동시성
  • 병렬 처리
    멀티코어는 하드웨어 측면에 가깝다
    물리적으로 여러 코어를 사용 해서 다수의 실행 단위를 한순간에 동시 처리할 수 있게 해준다.
profile
ㅋㅎ딩초보

0개의 댓글