serversim
학습시뮬레이터템플릿가격
…
…
메뉴 열기
학습↗시뮬레이터↗템플릿↗가격↗
내 Documents문서
전체 목차/2장/2.913 / 40

2.9 · 프로세스와 동시성

코드와 데이터는 어떻게 컨테이너·가상 머신까지 이어질까?

프로그램을 “실행 환경째 포장한다”는 말은 무슨 뜻일까요?

코드가 실행되려면 변수와 메모리뿐 아니라 라이브러리, 파일, 운영 체제 환경도 필요합니다.

먼저 생활 비유

이삿짐과 집 전체

가구만 옮기는 것이 컨테이너에 가깝다면, 집 구조와 설비까지 통째로 복제하는 것은 가상 머신에 가깝습니다.

컴퓨터 예제로 바꾸기

같은 서버에 앱 두 개

docker run app-a
docker run app-b

각 앱은 자기 파일과 라이브러리 공간을 보지만 같은 호스트 커널을 공유할 수 있습니다.

직접 움직여 보기1 / 5

지금 일어나는 변화

코드·데이터

명령과 그 명령이 다룰 값이 기본 재료입니다.

실행권과 상태실행 · CPU 차례대기 · 메모리 · 운영 체제코드·데이터단계 1클로저단계 2프로세스단계 3컨테이너단계 4가상 머신단계 5실행 환경현재: 코드·데이터

이 그림에서 기억할 한 문장

아래로 갈수록 코드 조각이고 위로 갈수록 실행에 필요한 환경을 더 넓게 함께 묶습니다.

현재 상태

이동하는 것
실행 환경
현재 위치
코드·데이터
다음 위치
클로저

30초 확인 문제

일반적인 컨테이너가 호스트와 공유하는 것은?

처음 보는 용어 두 개

클로저
함수와 그 함수가 참조하는 주변 상태의 묶음
컨테이너
같은 커널 위에서 프로세스의 실행 환경을 격리하는 기술

이 절을 다 읽었다면

아래로 갈수록 코드 조각이고 위로 갈수록 실행에 필요한 환경을 더 넓게 함께 묶습니다.

← 이전 절

2.8 높은 동시성의 서버는 어떻게 만들까?

다음 절 →

3.1 메모리의 본질과 포인터·참조