카테고리 없음

Process vs Thread

두잇 두두 2024. 10. 11. 13:31
728x90

키워드 정리

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

프로세스: 하나의 스레드만 가지고 있는 단일 스레드 프로세스

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

 

메모리:

code: 실행 명령을 포함하는 코드들

Data: Static 변수 혹은 Global 변수

Heap: 동적 메모리 영역

Stack: 지역 변수, 매개변수, 반환 값 등 일시적인 데이터

 

Context Switching: 짧은 시분할로 프로세스 들을 바꿔치기

Thread의 Context Swtich은: 공유 되는 자원이 있음

 

Multi-process & Multi-Thread: 한 어플리 케이션에 대한 처리 방식

Multi-process

로그인을 예시로 한번에 하나의 로그인만 처리 가능 자식 process를 fork하여 만듬

자식 process는 각각의 독립적인 메모리를 가짐

 

Multi- Thread

프로세스 내에서 분리되 여러 스레드로 나뉘어서 실행단위가 나눠지면 그게 멀티스레드가 됨

한 애플리 케이션 내에 일이 나눠져있다고 생각하면 됨 

 

 

쓰레드의 단점: 영향을 많이 받으니 안좋은 영향도 많이 받음

크롬의 경우 각 탭들이 멀티프로세서를 이용하기에 멀티탭 간 영향을 덜 받음

 

Multi-core

하드웨어 측면에서 실행 단위를 병렬적으로 처리할 수 있도록 여러 프로세서가 있음

 

리눅스 커널

리눅스 커널 에서는 프로세스와 스레드를 동일하게 봅니다

프로세스가 각각의 메모리를 공유 light weight process

 

 

 

출처 : https://www.youtube.com/watch?v=1grtWKqTn50&list=WL&index=1