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