✊ 필오의 개발일지
Back to Posts
2019년 11월 1일

코드스피츠85 1회-(2) Runtime때 일어나는 일들

코드스피츠85 1회-(2) Runtime때 일어나는 일들

코드스피츠 85에서는 none blocking에 대한 이야기와 자바스크립트를 짜는 근본적인 방법에 대한 고찰을 이야기해본다.


🌕🌑🌑

TL;DR


Program

Program & Timing

  1. Language code
  2. Machine language로 트랜스파일한다.
  1. File로 내린다. (Load)
  2. 메모리에 적재되어 있는 File을 실행한다. (Run)
  3. 실행이 끝나고나면 종료된다. (Terminate)

1. Runtime

1.1 Runtime Execution

  1. Loading: 적재되는 중
  1. instruction - fetching & decoding

메모리의 첫번째 명령을 실행한다.

  1. execution

폰 노이만 머신

결국 런타임이란!

1.2 Runtime Details

  1. essential definition loading
  1. vtable mapping (variables table)
  1. run
  2. runtime definition loading
  3. run

4번과 5번은 반복


자바스크립트의 런타임

자바스크립트의 런타임은 브라우저 로드에서부터 런타임으로 친다.

  1. browser load
  2. browser parsing
  3. run


2. State Control

Directive Reference 직접참조

a = 'TEST' a주소 = 00, a크기 = 4 b = &a // b에 a의 주소값을 할당 c = &b // c에 b의 주소값(a의 주소값)을 할당. a = b & b =c (a=c) // 결국 a와 c도 같은 상황 d = 'ABC' b = &d // b에 d의 주소를 재할당 b = d & b != c (a=c)

Indirective Reference 간접참조

a = "TEST" a주소 = 00, a크기 = 4 b = { target: &a } c = &b d = 'ABC' b.target = &d // b를 직접 바꾸지 않기 때문에 더이상 싱크가 깨지는 문제가 일어나지 않는다.

사실 자료구조는 아래 2가지 원리에서 시작된다

  1. 메모리를 통으로 쓰는 배열과
  2. linked list형식을 빌린..


3. Flow Control

Sync flow Control

자세한건 여기! 

Blocking

Blocking 줄이기

그럼 Non Blocking이란?

Sync Flow가 납득할 만한 시간 내에 종료되는 것



4. Async

Sync & Async

Async 단점

sync 라는 순차적으로만 짤 수 있다는 식으로 처음부터 배웠기 때문에 우리는 async가 어색한 것이다.

Sync의 장점 + Async의 장점

Previous코드스피츠85 2회-(1) 자바스크립트의 동시성
Next코드스피츠85 1회-(1) JavaScript Now

Related

© 2025 Felix