상세 컨텐츠

본문 제목

[TIL] 2024.03.27 프로세스와 스레드

[TIL]

by 재호링 2024. 3. 27. 22:44

본문

프로그램 프로세스
작업을 하기 위해 실행할 수 있는 파일 실행되어 작업중인 컴퓨터 프로그램
파일이 있지만 메모리에는 공유되어 있지 않은 정적인 상태 메모리에 공유되고 자원을 할당받아 프로그램이 실행된 상태
코드 덩어리 코드 덩어리를 실행한 것

 

 

프로세스와 쓰레드

 

  • 프로세스는 운영체제로부터 자원을 할당받아 독립적으로 실행됨.
  • 총 4개의 코드, 데이터, 메모리공간, 파일 리소스를 포함하고 있고 독립적인 주소 공간을 가지고 있어 다른 프로세스 영역에 직접적으로 접근 불가

  • 쓰레드는 프로세스 '내'에서 실행되는 단위. 한 프로세스 내에서 쓰레드가 동작함
  • 쓰레드는 프로세스 내에서 코드, 데이터, 메모리 공간을 공유해 공유 메모리 방식으로 통신을 함

  • 차이점: 프로세스는 독립적 자원공간이라 서로의 영역에 침범 불가, 쓰레드는 공유 메모리를 사용해 통신이 간단함. 비
    용적인 측면에서도 쓰레드는 프로세스보다 비교적 싸다

멀티프로세스와 멀티쓰레드

  • 멀티프로세스는 여러개의 '프로세스가' 동시에 실행됨을 의미함.
  • 즉, 여러개의 CPU를 사용하여 여러 프로세스를 동시에 수행하는 것을 의미함.
  • 안정성이 높은 방면 프로세스 간의 통신이 복잡하고 느릴 수 있다.

  • 멀티쓰레드는 한 프로세스 내에서 여러개의 쓰레드가 동시에 실행되는 것
  • 하나의 프로그램에서 두가지 이상의 동작을 동시에 처리하도록하는 행위이며
    각 스레드는 자신이 속한 프로세스의 메모리를 공유해 시스템 자원의 낭비가 적음
  • 하나의 스레드가 작업을 할 때 다른 스레드가 별도의 작업이 가능해 응답성이 좋음.

  • 차이점: 멀티 프로세스는 안정성이 중시하는 경우에 사용하고, 멀티쓰레드는 성능을 개선하는데 많이 사용됨

 

관련글 더보기