본문 바로가기
Programing/Knowledge

[Knowledge] Runtime (런타임)

by 꾸압 2022. 9. 12.

 

<설명>

  - Runtime은 프로그래밍 언어의 실행 model 일부를 구현하는 코드 조각.

  - Runtime은 프로그램이 작업하는데 필요한 Computing Resource와 상호작용하게 해줌.

  - 종종 프로그래밍 언어의 중요한 부분이라 따로 설치할 필요 없음.

 

  - Program이 동작하는 것 자체를 Runtime 이라 함.

  - 개발자들은 종종 program compilation 과정이 '프로그램'에 포함되는지, runtime에 포함되는지 구별한다.

    ==> compile이 'program'에 포함되는걸 Complie Time 이라 명명.

 

    @@ [참고] Compile Time과 Runtime의 차이

이미지 출처 : Baeldung

 


 

<Runtime 작동 원리>

[설명]

  - Runtime 은 Programming Lifecycle 의 한 단계.

  - 적절한 실행에 필요한 모든 외부 지시들을 따라 동작하는 program 전반의 시간.

    ==> 여기서 말하는 외부 지시들은 Runtime system 이나 Rutime Environment 등의 프로그래밍 중요 요소를 의미.

 


 

[과정]

  1) main 프로그램 실행에 필요한 작업을 하는 other(다른) 프로그램이 있다. other 프로그램을 포함하는 OS 위에 Runtime System 은 Layer를 형성.

    ==> Other 프로그램은 main 프로그램에 대한 메모리 할당 및 예약 등의 작업을 처리.

이미지 출처 : TechTarget

 

  2) Application이 Runtime 단계에 이르면, program의 실행 가능 파일이 RAM 으로 load 됨.

  2-1) 이 과정에선 user가 작성하지 않았지만, program 실행을 위해 백그라운드에서 작동하는 code가 포함될 수 있음.

이미지 출처 : Baeldung

 

  3) 백그라운드 동작 code는 computer의 프로세스로 보내져 기계어 code로 변환.

  4) 그 뒤에 하드웨어가 program 실행.

 


 

<Runtime Error>

[설명]

  - 문제 발생에 따라 Program이 runtime 순간의 처리를 막는 것.

    ==> 문제 원인은 손상되거나, 사라진, 호환하지 않는 요소 등이 있다.

 


 

[예시]

  - Insufficent System Resource : System Resource 부족으로 runtime 환경이 동작 불가.

  - Coding Error : 걍 code 버그

  - Broken Dependency : main program 작동에 필요한 other(다른) application 과의 연결이 끊어져서 발생.

 


 

<Runtime Environment>

[설명]

  - Low-level 작업을 함

    ==> Parallel Execution, Disk I/O, Task Scheduling, Garbage Collection (resource 관리)

  - High-level 명령어 를 구현하는 경우도 있음

    ==> Type Checking, Debugging, Code Optimization

 


 

[종류]

  1) Java Runtime Environment (JRE)

  2) Common Language Runtime (CLR)

  3) Node.js

 


 

<출처 1> https://www.techtarget.com/searchsoftwarequality/definition/runtime

<출처 2> https://www.baeldung.com/cs/runtime-vs-compile-time

<출처 3>

 

 

'Programing > Knowledge' 카테고리의 다른 글

[CS] Transparancy  (0) 2022.11.19
[Knowledge] Procedure 의미  (0) 2022.11.17
[Knowledge] Parity Bit  (0) 2022.09.08
[Knowledge] Method Chaining (메소드 체이닝)  (0) 2022.08.30

댓글