본문 바로가기

SYSTEM

프로세스, 스레드 차이

728x90
반응형

프로그램 ▶ 프로세스 ▶ 스레드

▶프로세스 

: 메모리에 올라와 실행되고 있는 프로그램 각각의 객체 (작업의 단위)

실행 시 운영체제로부터 프로세서, 메모리 영역(Code, Data, Stack, Heap) , CPU 시간 등의 자원을 할당 받음

같은 프로세스 내의 자원들을 스레드끼리 공유하면서 실행 

다른 프로세스의 자원에 접근하기 위해선 프로세스 간의 통신 필요 (EX. 파일)

 

 

▶스레드

프로세스가 할당받은 자원을 이용하는 실행의 단위

프로세스 내에서 stack 부분만 따로 할당 받음, code, data, heap 영역은 공유

(X 프로세스는 다른 프로세스의 메모리에 접근 X)

하나의 프로세스가 생성되면 하나의 (메인) 스레드가 생성됨

사용 이유)

# 작업들 간의 통신 비용 절감

→프로세스 간의 통신 비용 > 하나의 프로세스 내의 여러 스레드 간의 통신 비용

#메모리 절약

→ 1MB 이내의 메모리만 점유

 

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

멀티 프로세스 : 하나의 응용 프로그램을 여러 개의 프로세스로 구성 / 각 프로세스는 하나의 작업을 처리함

멀티 스레드 하나의 응용 프로그램을 여러 개의 스레드로 구성 / 각 스레드는 하나의 작업을 처리함

728x90
반응형

'SYSTEM' 카테고리의 다른 글

패킹, 언패킹  (0) 2023.01.05
안디디버깅 종류  (1) 2023.01.05
세마포어, 뮤텍스 차이  (0) 2023.01.05
하드웨어, 소프트웨어 BP  (0) 2023.01.05
멀티바이트, 유니코드  (0) 2023.01.05