Kiến trúc JVM (Java Virtual Machine)

ảnh minh họa - Đào tạo lập trình Java

 

I. Khái niệm JVM (Java Virtual Machine)

JVM (Java Virtual Machine) là 1 máy ảo java - trình phiên dịch của Java. Nó cung cấp môi trường để code java có thể được thực thi, chương trình Java khi biên dịch sẽ tạo ra các file *.class chứa byte code , Các file *.class này sẽ được JVM thực hiện chuyển byte code thành mã máy ứng với từng hệ điều hành và phần cứng khác nhau thực thi. Các bạn có thể tham khảo cơ chế thực hiện 1 chương trình Java trong sơ đồ dưới đây :

What is JVM Nó là:

A specification: Nơi làm việc của JVM được quy định.JVM cung cấp các thuật toán đọc lập được cung cấp bởi Sun và nhiều công ty phát triển phần mềm khác.

An implementation: 1 implemention được biết đến chính là JRE. JRE là một vận dụng nền giúp thực thi các file mã máy đã được biên dịch từ file nguồn *.java. Các thành phần của JRE chỉ bao gồm các gói Java và thư viện thực thi áp dụng (runtime libraries) nên JRE không có khả năng biên dịch file Java thành mã máy chỉ có khả năng thực thi các file byte code sau khi đã được JDK biên dịch.

Runtime Instance : Bất cứ khi nào bạn viết lệnh java trên dấu nhắc lệnh để chạy các lớp java, và instance của JVM được tạo ra.


Nó hoạt động như thế nào?

JVM thực hiện các công việc sau:
Loads code - tải mã lệnh
Verifies code - rà mã lệnh
Executes code - thực thi mã lệnh
Provides runtime environment - công cấp môi trường biên dịch mã

JVM cung cấp các định nghĩa cho:
Memory area - vùng nhớ
Class file format - Định dạng các class
Register set - setup đăng ký
Garbage-collected heap - Xóa dữ liệu rác
Fatal error reporting - Tổng hợp ít
...
II. Kiến trúc bên trong của JVM

Hãy hiểu cấu trúc bên trong của JVM. Nó chứa classloader, khu vực bộ nhớ, bộ máy thực thi,...
 
Classloader:

Classloader là một hệ thống phụ của JVM được dùng để tải các file class.
Class (Method) Area:

Cửa hàng lớp (Method): Vùng chứa các class và cung cấp các class nền tảng cho phép mở mang hoặc ghi đè lên nó
Heap:

Đây là khu vực dữ liệu thời gian chạy trong đó các đối tượng được phân bổ.
Stack:

Java stack store frames. Nó lưu trữ các biến địa phương và kết quả từng phần, và đóng một phần trong phương pháp gọi và trở về.

Mỗi thread cung cấp 1 JVM stack riêng, được tạo cùng thời kì với thread.

Một new frame được tạo ra mỗi lần method được gọi. Một frame bị hủy khi method được gọi của nó hoàn thành.
Program Counter Register::

PC (đếm chương trình) đăng ký. Nó chứa địa chỉ của các máy ảo Java chỉ dẫn hiện đang được thực hiện.
Native Method Stack:

Nó chứa ắt các phương pháp có cội nguồn được sử dụng trong các vận dụng.
Execution Engine:

Nó chứa:

Một bộ xử lý ảo

thông dịch: Đọc dòng bytecode sau đó thực hiện các chỉ dẫn.

Just-In-Time (JIT) biên dịch: Nó được dùng để cải thiện performance.JIT biên dịch các phần của mã byte có chức năng na ná như cùng một lúc, và do đó làm giảm số lượng thời kì cấp thiết cho compilation.Thuật ngữ: trình biên dịch: đề cập đến như một dịch giả từ những chỉ dẫn của một máy ảo Java (JVM) cho các tập lệnh của CPU cụ thể.
SHARE

Milan Tomic

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 nhận xét:

Đăng nhận xét