1-
آلة جافا الإفتراضية (Java Virtual Machine) (JVM)
2-
التركيب الداخلي لل (JVM)
واحدة من
مشاكل المحتوى العربي ان الإختصارات بالعربية قد تشكل مشكلة كبيرة فمثلاً إختصار (JVM) لا تستطيع عمل إختصار له بالعربية (آلة
جافا الإفتراضية) فهل يمكن كتابته بالشكل التالي (آ.ج.ف) أو (آ.ج.ا)
ال (JVM) أو ما يسمى بآلة جافا الإفتراضية (Java Virtual Machine) هي آلة مجردة . وهي
مواصفات توفر بيئة التشغيل التي يمكن تنفيذ جافا بايت كود.
ال (JVMs) تكون
متاحة للعديد من الأجهزة (hardware) و منصات البرمجيات (software platforms) فمثلاً ال ()هو منصة عمل معتمدة .
ماهو ال (JVM) ؟
هو :-
1- (A specification) مواصفة و المواصفة هنا هي المكان
الذي يتم فيه تحديد عمل آلة جافا الإفتراضية (جافا فيرتوال ماشين)، و لكن مزود
التنفيذ يكون مستقل لأجل إختيار الخوارزمية . و تضمينها يكون مدعوم بواسطة شركة صن
و غيرها من الشركات
2-
(An implementation)
تضمين او تنفيذ و التضمين يعرف ب (JRE)
(Java
Runtime Environment)
(بيئة تشغيل جافا).
3-
(Runtime Instance )
وقت التشغيل عند كتابة أمر جافا على موجه الأوامر لتشغيل كلاس جافا، يتم إنشاء
مثيل او نسخة من ال (JVM)
ما هو
عمل ال (JVM)؟
ال (JVM) يقوم بالعمليات التالية :-
1- تحميل
الكود
2- التحقق
من الكود
3- تنفيذ
الكود
4- دعم بيئة
التنفيذ
ال (JVM) يقدم تعريفات ل :
a- منطقة
الذاكرة (Memory Area)
b- تنسيق
ملف الفئة
c- سجل
المجموعة
d- كومة
تجميع المهملات
e- الإبلاغ
عن خطأ فادح ... إلخ
التركيب
الداخلي لل (JVM) (Internal Architecture of JVM)
دعنا نفهم التركيب الداخلي لل (JVM) .
التركيب الداخلي لل (JVM) يحوي محمل الكلاس (class loader)، منطقة الذاكرة ، محرك التنفيذ ... إلخ
المصدر:-(https://www.javatpoint.com/)
1.
مُحمل الكلاس او الفئة (Classloader)
ال Classloader هو نظام فرعي من ال (JVM) و الذي
يستخدم لتحميل ملفات الفئات او الكلاسات .
2. كلاس او فئة
المنطقة (Class(Method)
Area)
وهذه تُخزن هيكل كل فئة او كلاس مثل ال
الفئة (الطريقة) تخزن هياكل ال(per-class) مثل (runtime constant pool) ، بيانات الحقل والطريقة (field and method data)، رمز للطرق (the code for methods).
3. كومة (Heap)
وهي منطقة بيانات وقت التشغيل التي يتم فيها تخصيص
الكائنات.
4. المكدس ( Stack)
مكدس الجافا يخزن الأُطر (frames). و يحمل المتغيرات المحلية والنتائج الجزئية، ويلعب دورا في اسلوب
الاستدعاء و الإرجاع .
كل عملية (thread) لديها مكدس (JVM) خاص (private) و يتم إنشاؤه في نفس وقت انشاء ال (Thread)
يتم إنشاء إطار جديد في كل مرة يتم فيها استدعاء الميثود (method). و يتم
تدمير الإطار عند اكتمال استدعاء الميثود (method).
5.
Program Counter Register
ال Program Counter Register او PC و يسمى (برنامج عكس / رد) التسجيل. و يحتوي على عنوان تعليمات الجهاز
الظاهري جافا (Java virtual machine) قيد
التنفيذ حاليا.
6. Native
Method Stack
و يحتوي كل الأساليب
الأصلية المستخدمة في التطبيق.
7. سيبيس
7) محرك التنفيذ Execution Engine
و يحتوي على:
1) معالج الظاهري A virtual processor
2) مترجم Interpreter : قراءة بايت كود ستريم ثم ينفيذ
التعليمات.
3) مترجم فقط في الوقت المناسب
(JIT): Just-In-Time(JIT) compiler يتم استخدامه لتحسين
الأداء. ال (JIT) يجمع أجزاء من كود البايت (byte code) التي
لها وظائف مماثلة في نفس الوقت، وبالتالي يقلل من مقدار الوقت اللازم للتجميع.هنا
المصطلح ؟ مترجم (compiler) ؟ يشير إلى مترجم من مجموعة التعليمات لجهاز ظاهري جافا (JVM) إلى
مجموعة التعليمات لوحدة المعالجة المركزية المحددة (JVM) .
فضلاً إترك تعليقك و استفساراتك حول هذا الموضوع في جزء
التعليقات اسفل كي أحسن انا من مهاراتي في الكتابة و التدوين و إظهار التدوين بشكل
جيد و مفيد ، انشر المقال وانفع به غيرك . شكراً لمرورك و قراءتك للمقال .
مدونة (https://sunwaytech.blogspot.com)
ۚ فَأَمَّا الزَّبَدُ فَيَذْهَبُ جُفَاءً ۖ وَأَمَّا مَا
يَنفَعُ النَّاسَ فَيَمْكُثُ فِي الْأَرْضِ ۚ
شارك المقال و انفع به غيرك
المرجع /
(https://www.javatpoint.com/)
ليست هناك تعليقات