vm
-
VM이란?TECH 2023. 11. 23. 09:46
What is a virtual machine(VM)? Overview VM은 물리적 하드웨어 시스템 위에 생성된 자신의 CPU, 메모리, 네트워크 인터페이스, 스토리지를 갖는 가상 환경이다. 하이퍼바이저라고 불리는 소프트웨어는 머신의 리소스를 하드웨어로부터 분리하고 적절히 프로비저닝해서 VM에서 사용될 수 있도록 한다. 하이퍼바이저가 있는 Kernal-based Virtual Machine (KVM)과 같은 물리 장비는 호스트 머신, 호스트 컴퓨터, 호스트 운영체제, 혹은 단순히 호스트라고 불린다. 이 리소스를 사용하는 많은 VM은 게스트 머신, 게스트 컴퓨터, 게스트 운영체제, 혹은 단순히 게스트라고 불린다. 하이퍼바이저는 CPU, 메모리, 스토리지와 같은 컴퓨터 리소스를 이미 존재하는 게스트 혹은 ..
-
Managed Language 자바, 자바는 어떻게 힙에서 제거할 객체를 알아낼까?TECH/Java 2022. 11. 29. 11:23
Managed Language Java vm은 객체가 더 이상 필요 없을 때 메모리를 회수한다. 프로그래머가 직접 메모리를 해제해야 하는 다른 언어와 가장 큰 차이점이다. 자바에서 메모리 leak이 발생하는 것은 불가능하다. 자바에서 new 키워드를 사용할 경우 os에서 메모리를 가져오는 것이 아니라 virtual machine을 통해서 가져오게 된다. virtual machine은 c로 작성된 프로그램이고, 이 프로그램이 os에서 가져온 메모리를 관리한다. 따라서 vm에 문제가 없다면, os 레벨의 메모리 leak은 발생할 수 없다. 메모리 leak이 발생했다면 그것은 vm의 문제이고 자바 프로그래머의 책임이 아니다. GC는 메모리를 free up하는 과정이다. GC는 Lisp에서 개발되었고, 자바는 ..