1. 운영체제
하드웨어를 관리하고, 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 자원과 동작을 제어하는 시스템 소프트웨어
- CPU를 점유해야 할 프로세스를 결정하고,
- 실제로 CPU를 프로세스에 할당하며,
- 프로세스 간 공유 자원 접근과 통신 등을 관리하게 된다.
프로그램: 실행파일
프로세스: cpu가 프로그램을 실행시키고 있는 상태
cpu: 프로그램을 실행시키는 주체
core: 는 cpu안에서 일하는 핵심 부품
CPU란?
- cpu - 프로그램을 실행시키는 주체로 프로세서라고도 한다
- core가 많을 수록 여러 프로세스 실행이 가능하다.
- 주요 동작 과정
- 프로그램을 가져와서 (RAM → CPU)
- 디코더를 사용해 기계어로 해석해 풀어냄(컴파일)
- 해석된 파일을 실행시킴

2. 프로세스
프로세스 동작
- 운영체제가 여러 개의 프로세스(멀티 프로세스)를 함께 돌리고 있다.
- 동시적/병렬적/혼합의 방법을 이용한다
- 운영체제는 프로세스마다 자원을 분할해 할당한다
동시성이란?
- cpu에 코어 하나
- 여러 프로그램을 돌면서 일부분을 연속적으로 실행시키는 것 (context switching)
- 속도가 매우 빠르기 떄문에 동시적으로 진행되는 것처럼 느껴지는 것
병렬성이란?
- cpu에 코어 여러개
- 여러 프로그램을 병렬적으로 실행시킬 수 있는 것
3. 스레드
- 프로세스 안에서 실행되는 여러 흐름 단위
ex) 브라우저 한 탭(프로세스)안에서 음악 재생(스레드), 동영상 재생(스레드)을 할 수 있는 것
- 스레드들은 프로세스마다 정해진 자원을 함께 사용한다 → 여러 스레드가 공통된 자원에 접근해 조작할 경우 에러가 발생한다

- Code : 프로그램 소스 코드 저장
- Data : 전역 변수 저장
- Heap: 동적 변수 저장
- Stack : 함수, 지역 변수 저장
💡 함수가 실행되면 해당 함수가 실행될 환경이 stack에 쌓이는데, 위에서부터 꺼내져서 cpu가 실행시킨다
브라우저에서는? (크롬 기준)
- 크롬은 1탭-1프로세스이다. (다중 프로세스 지원)
- 프로세스는 메모리 영역이 독립적으로 할당된다.
- 프로세스간에는 메모리 영역을 침범하지 않는다.
- 위의 이유로 프로세스가 강제 종료 되어도 다른 프로세스에는 영향을 끼치지 않는다.
→ 그렇다면 크롬의 탭 중 하나가 강제 종료 혹은 실행 중지되어도 다른 탭에는 영향이 없다.
CPU란 무엇인가?
프로세스와 스레드
최신 브라우저의 내부 살펴보기