Кіріспе

Jupiter JVM – бұл модульділік және кеңейтімділік принципінде жасалған, магистрлік диссертация ретінде әзірленген ашық бастап кодты Java виртуалды машинасы. Ол Boehm қоқыс жинаушысын және GNU Classpath-ты пайдаланады. Юпитер виртуалды машинасының дизайнының негізгі аспектілерін былай қарастыруға болады:

Жад локалдығы – Объектілер жадқа орналастырылғанда локалдылық ескерілмейді немесе аз ескеріледі. Бұл тәсіл унипроцессорлар немесе кішкентай SMP жүйелері үшін қолайлы болғанымен, жұмыс станцияларының кластерінде тиімді болмайды, себебі онда қашық жадқа қол жеткізу жергілікті жадқа қол жеткізуден бір немесе екі есе баяу.

Параллель қоқыс жинау – Қоқыс жинау бағдарламаның жұмыс уақытының көп бөлігін алады. Көбінесе JVM-дер «дүние тоқтату» (stop-the-world) қоқыс жинаушыларын қолданады, онда қоқыс жинау кезінде бағдарламалық жіптер тоқтатылады. Бұл тәсіл көп процессорлы жүйелерде екі себептен жұмыс істемейді. Біріншіден, процессорлардың саны артқан сайын «дүние тоқтату» операциясының құны артады. Екіншіден, қоқысты жинау үшін бір жіпті пайдалану кез келген бағдарлама үшін қабылдауға болмайтын үлкен тізбекті бөлікті тудырады.

Жад тұрақтылығы моделі – Көп процессорлы жүйелерде жоғары өнімділікке қол жеткізу үшін «бос» Java жад моделін пайдалану маңызды. Қазіргі таңдағы JVM-дердің ешқайсысы JMM-ді толыққанды іске асырмайды, ал көптегендері оны дұрыс емес іске асырады, бұл жадтың үйлесімсіздігіне және оңтайландыру мүмкіндіктерін жоғалтуға әкеледі. JMM-нің спецификациясы 2007 жылы қайта қарастырылды.

Тиімді жіптер және синхрондау – Көп процессорлы жүйелерде тиімді жіптік қолдау және жақсы масштабталатын синхрондау механизмдерін қамтамасыз ету өте маңызды.