Process, Thread 개념 한방 정리

Y39·2023년 3월 13일
0

toBeProgrammer

목록 보기
40/88

movie

process

  • 컴퓨터에서 실행되는 프로그램
  • 각각 메모리 공간을 할당 받음
  • 명령어와 data를 갖는다.

cpu

  • 명령어를 실행하는 곳

main memory

  • process가 cpu에 실행되기 위해 대기하는 곳

process의 종류

  • 단일
    • 한번에 하나의 process를 사용
    • 단점: 성능이 매우 떨어짐
      • 게임이라도 하나 다운 받으면 컴퓨터가 멈춤
  • 멀티 프로그래밍
    • cpu 사용을 극대화
    • p1이 끝나면 바로 p2를 진행
    • 하지만 p1이 매우 길면 효율이 나빠짐
  • 멀티 태스킹
    • 작업을 작은 단위로 쪼개고 process를 번갈아 가면서 작업
    • process의 응답 시간을 최소화하는 것이 목정
      • 사용자는 동시에 process가 돌아간다고 느끼게 됨
    • 아쉬움 1: 여러 작업을 실행하지는 못함
    • 아쉬움 2: process 간의 data 공유는 까다로움
    • 아쉬움 3: 듀얼 코어를 제대로 활용이 안 됨
  • Multi Processing
    • 여러개의 processer 또는 core를 활용

Thread

  • cpu에서 실행되는 단위
  • 위의 아쉬움을 해결하기 위함
    • 실행 단위이기 때문에 같은 process에 속한 것끼리 메모리 영역을 공유가능
  • Multi Thread
    • multi core일 경우 각 core에서 thread 실행

예제

  • 싱글코어 cpu, 싱글 스레드 프로세스 2개
  • 싱글코어 cpu, 듀얼 스레드 프로세스 1개
    • 멀티프로세싱x
  • 듀얼 코어 cpu, 듀얼-스레드 프로세스 1개
  • 듀얼 코어 cpu, 듀얼-스레드 프로세스 2개
profile
System.out.print("Bold")

0개의 댓글