프로세스와 스레드

넙데데맨·2022년 5월 22일
0

프로세스

프로그램?

어떤 작업을 위해 실행하는 파일

프로세스?

  • 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
  • 메모리에 올라와 실행되고 있는 프로그램의 인스턴스
  • 운영체제로부터 시스템 자원 할당받는 작업의 단위
  • 실행된 프로그램

시스템 자원 예

  • CPU 시간
  • 운영되기 위한 주소공간
  • 메모리 영역

특징

  • 프로세스는 각각 독립된 메모리 영역 할당받음
  • 프로세스당 최소 1개의 스레드 보유
  • 프로세스는 별도 주소공간에서 실행되며 다른 프로세스에 접근 불가
  • 다른 프로세스에 접근 하기 위해서는 프로세스 간 통신 사용
    ex) 파이프, 파일, 소켓 등을 사용

멀티 프로세스(Multi Process)

하나의 프로그램을 여러 프로세스로 구성해 하나의 작업을 처리
장점 : 하나의 프로세스가 잘못되어도 프로그램 동작
단점 : Context Swtiching 비용 발생

Context Swtiching

  • CPU에서 여러 프로세스를 돌아가면서 작업 처리하는 과정
  • 실행되던 프로세스의 상태를 저장했다가 다시 복구하는 시간

스레드

프로세스 내 실행되는 여러 흐름의 단위
프로세스의 특정 수행 경로
프로세스가 할당받은 자원 이용하는 실행 단위

특징

  • 동일 프로세스 내 독립적 다중 수행 가능
  • 응답 시간 단축
  • 실행 환경을 공유시켜 기억장소 낭비가 줄어든다.

멀티 스레드 (Multi Thread)

프로그램을 여러 스레드로 구성하고 각 스레드가 하나의 작업을 처리
장점 : 시스템 자원 소모 감소, 처리 비용 감소, 실행 속도 향상, 스레드간 자원 공유
단점 : 디버깅 어려움, 하나 쓰레드 오류로 전체 문제 발생

Thread Safe

여러 스레드가 동시 사용되도 안전하다!

profile
차근차근

0개의 댓글