본문 바로가기
컴퓨터 공학(CS)/운영체제

[OS] 런타임(Runtime)과 런타임 환경(Runtime Environment)

by gf0308 2022. 3. 5.

컴퓨터를 사용하다 보면 종종 런타임이라는 말을 볼 때가 있다.

런타임 에러(Runtime Error), 런타임 환경(Runtime Environment) 등등 친숙할 정도로 꽤 많이도 접하는데

정작 정확한 의미는 몰랐었다.

그래서 이번 기회에 정확하게 정리를 하고 넘어가고자 런타임런타임 환경에 대해 포스팅을 하였다.

(구글에서의 자료들을 읽고 비교하며 정리한 것으로 혹시 부정확한 부분이 있을 시 댓글로 첨언해주시면 감사히 반영하겠습니다)

 

 

런타임(Runtime)

런타임(Runtime)은 '어떤 프로그램이 실행되고 있는 동안의 동작'을 가리킨다.
구체적으로 말하면 "해당 프로그램이 필요한 시스템 자원(RAM, 시스템 변수, 환경변수 등)을 할당받고 실제로 시스템 자원을 사용해서 어떤 처리를 하고 있는 것 (그러한 상태/그런 처리가 행해지고 있는 것)"이다.
- 런타임은 프로그램이 (필요한 프레임워크, 컴포넌트, 라이브러리들과 함께) 메모리에 로드되었을 때 시작된다.
- 메모리에 로드되는 작업은 보통 소프트웨어 개발 유틸리티와 언어(개발언어) 안에 있는 Compiler 나 Loader 애플리케이션에 의해 이뤄진다.
- 런타임을 위해 운영체제(OS)는 실행이 처음 시작될 때부터 끝날 때까지 
  모든 프로그램에 필요한 만큼의 메모리, 프로세서, 입출력(I/O) 리소스들을 할당한다.

그리고 이 Runtime이 일어나기 위해, 즉 해당 프로그램(애플리케이션)이 시스템 자원을 사용하기 위하여 '시스템 자원에 액세스 할 수 있도록 해주는 실행 환경' 이 '런타임 환경(Runtime Environment: RTE)'이다.
(아주 간단히 표현하자면, '시스템 자원 제공기')

 

런타임 환경(Runtime Environment: RTE)

런타임 환경(Runtime Environment)은 애플리케이션이 운영체제(OS)의 '시스템 자원 (ex: RAM, 시스템 변수, 환경 변수 등과 같은 시스템 리소스)에 액세스 할 수 있도록 해주는 실행 환경'이다. 
- 애플리케이션은 런타임 환경을 통해 프로세서에 명령을 보낼 수 있으며, 시스템 리소스를 접근하고 사용한다.
- 이런 런타임 환경 같은 매개가 없다면 애플리케이션 프로그램은 (대부분 고수준의 언어로 짜이므로) 시스템 리소스에 접근할 방법이 없다.
- 런타임 환경은 운영체제 자체에 속하는 경우도 있고, 운영체제 위에서 작동하는 소프트웨어일 경우도 있다.