0

OS 레벨에서 프로세스의 메모리 레이아웃을 이해하려고하는데이 다이어그램에서는 익숙합니다.인터프리터 (JVM/JS)의 메모리 레이아웃 이해

이제는 일반적인 목적으로 다이어그램의 멀티 스레딩 부분을 잊어 버렸습니다. 위 다이어그램에 표시된 "코드"블록은 우리 프로그램의 2 진 명령어라고 가정합니다. 이 코드는 이미 바이너리 형식으로 사용할 수 있도록 컴파일 된 것으로 가정합니다. 하지만 해석 된 언어는 어떻게됩니까? JVM 인터프리터에 의해 실행되는 바이트 코드. 여기에서 JVM 인터프리터를 선택하는 동안 제 질문은 해석 된 언어에 대한 것이며, 위에 표시된 다이어그램에 어떻게 맞습니까? 제 이해는 인터프리터 자체가 프로그램이므로 위의 다이어그램에 표시된 코드 블록에 앉아 있어야하고 Java의 경우 .class 프로그램이나 Javascript 인터프리터의 경우 .js 파일은 "인수"이므로 이 인터프리터가 OS/기계에서 이해할 수있는 코드로 변환 한 후 실행됩니다. 이것에 대한 생각을 요청하십시오.

답변

0

바이트 코드 "코드"를 고려할 것인지에 대한 관점은 중요합니다. 용어는 약간 퍼지다.

다이어그램의 "코드"는 네이티브 실행 코드, 즉 인터프리터입니다. CPU와 운영체제에 관한 한, 그것이 실행되는 유일한 코드입니다. 운영 체제에 해석되는 바이트 코드는 실제 네이티브 코드가 작동하는 데이터입니다.

이 경우 데이터는 지침의 한 형태 일뿐만 아니라 CPU가 알지도 못하는 세부 사항입니다.

+0

정확하게 내 이해가 무엇인지 .. 해석 중에 CPU는 네이티브 코드 (인터프리터 코드)가 데이터에서 작동하고 있다는 사실을 알지 못합니다.이 데이터는 다음과 같은 프로그램입니다. 해석되고있다. 정말 고맙습니다. –