1/30JalapeoJavaJavaJalapeoJalapeoJavaJavatype-accurateJalapeoJalapeoIBMJavaJalapeoJavaJavavirtualmachineJVMJVMJVM1.just-in-timeJIT2.SMPShared-memorymultiprocessorSMPJVMJavaJavaSMPJava3.JVM4.JVM5.90%1JVM6.JavabeanJVM7.Jalapeo123JalapeoJavaJalapeo4JavaJava56Jalapeo72/30JalapeoJVMJalapeoJalapeoJalapeoJalapeoJavaJalapeopJalapeoJVMJalapePowerPC1AIXAdvancedInteractiveExecutive2SMPsymmetricalmultiprocessorsJalapeoJalapeoJalapeoJalapeoJavaJalapeo3JavaJavamemorymodelJavaJalapeoJavaJalapeoAJalapeoJalapeoJavaJalapeoAIXAIXCAIXJalapeoCJavaC1000JavaCJavaCCB3/30100JalapeoJVMJalapeoobjectmodelrun-timesubsystemthreadandsynchronizationsubsystemmemorymanagementsubsystemcompilersubsystemJavaJVMreflectionCC++JalapeoJavaJalapeoJavaJavaJavaAIXpthread4JalapeoJalapeoJalapenoJalapeoJalapeoJavaintdoubleJalapeoJava4/30101JavaNullPointerExceptionJalapeo0”nullAIX5Jalapeo4Jalapeo1base-displacementbase-indexObjectheader1215/30TypeInformationBlockTIBTIBJavaVirtualmethodTIBJalapeovirtualmethodtableintsTIBTIBPowerPC“link-registerbranch-and-linkJalapeoJalapeotableofContentsJTOCJTOCJalapeoJTOCJTOCJTOCTIB2JTOCJTOCintsJTOCJTOC6/30Methodinvocationstack3JalapeoJalapeo7/30JTOCJavaJalapeoJavaJTOCJalapeoreferencemapMAGICAJalapeoJavaI/OCJavadeliverExceptiondeliverException“catch”“try”“catch”catch8/30JavaJalapeoputstaticinvokevirtualJTOCbaselinecompilerJalapeoSMP6quickcompilerI/OAIXCJavaAI/OJavaJalapeoJavaJalapeoJavaAIXpthreadAIXJalapeoI/OAIXincintervalJalapeo9/30Quasi-preemptionJalapeorun-until-blockedJalapeoJalapeoyieldpointsafepointSMPJalapeoprocessorJalapeoJavaPRCPUPowerPClwarxPRPowerPCstwcxstwcxstwcxspinnullbusywaitJalapeothinlock78heavyweightlockJalapeoJavaA”B”thicklockthin-lockowner50recursioncount10/30threadidentifierTIlwarxstwcxJavamutexassociatedObjectownerIdrecursionCountenteringQueuewaitingQueueassociatedObject1.2.mutex3.lwarx4.stwcx5.346.7.mutexPowerPClwarxCPUisyncthreadschedulingJalapeoleanthreadschedulingjava.lang.Objectyieldsleepjava.lang.ThreadwaitnotifynotifyAllidleQueuereadyQueueready-to-executetransferQueuetransferQueue11/30monitorJava9JavaJalapeo1.2.lwarxstwcx13.64.mutexthreadindexTIownerId5.recursionCountrecursionCount6.enteringQueueenteringQueueJava1011JalapeoJalapeo12/3016slot12JalapeorendezvouspointJalapeoJalapeoJalapeomarkallocation13/30rootidentificationJTOCworkJTOCTIBlistreadbarrierwritebarrierJalapeoJalapeoJalapeoJalapeoJava14/30JalapeoPowerPC3232Java12longone-basic-blockstaticfinalstaticshortpeepholeJalapeoprologuetableJalapeoSelf1314JavaJavaJalapeoJavaSMP15/30Jalapeo154intermediaterepresentationJavahigh-levelintermediaterepresentationHIRJalapeonJava171617reaching-definition18HIR16/3019HIRfinalstaticJavaJava20JavaJalapeoHIRlist021meet19HIRJavaHIRJavaHIRHIRincrementingA[i]HIR1.2.Java“Java”2017/30-Java223.HIRHIRHIRJalapeoJavaJavaJalapeoHIRlow-levelintermediaterepresentationLIRLIRHIRJalapeoinvokevirtualHIRHIRLIRTIBTIBLIRLIRHIRLIRLIRHIRLIRHIRLIR17LIR17monitor_entermonitor_exitJava20LIRmachine-specificintermediaterepresentationMIRMIRPowerPCJalapeoMIRbottom-uprewritingsystemBURS23MIR18/30epilogueBURScode-generatortreegrammarBURSBURSJalapeoPowerPC300BURSregister-true-dependence2425MIR18Choi1626MIR1012staticsingleassignmentSSA2728MIRBURSLIR19/3032915HIRJalapeo30JVM5Jalapeoon-linemeasurementcontrollersubsystem6bootimageBJalapeoJVMJVM20/30JITJVMJITJVMJava1JalapeoJavaJalapeoJavaJalapeoJavaJavaJavaNativeInterfaceJNIJalapeoJNICJalapeoCJalapeoJNIJalapeoJalapeo21/30JalapeoAIXIBMDeveloperKitDKJVMJVMIBMJITJava1.1.831JalapeoSMPIBMJVMAIXPowerPCJalapeoIBMJVMJalapeoJVM17JalapeoJavaJalapeoIBMDKJITJIT3045JIT8SymantecmicrobenchmarkJITIBMDK32JalapeoIBMDKJIT22/30IBMJIT440JalapeoJIT910%SPECjvm983334JITJIT23/3010portablebusinessobjectbenchmarkpBOB2.0a12SMPAIX4.3262MHzPowerPCS7a12JalapeoTPC-CBaylor3510warehouse13Jalapeo24/30JavaJavaTaivalsaari36JavaJava”JVMJavaJVMMassachusettsInstituteofTechnologyMITRivetJVM37JVMJVMBIBMVisualAgeforJava38JVMSmalltalkJVM39JVMHotSpot40HotSpotJalapeoHotSpotJalapeoHotSpotHotSpotJalapeoJalapeoHotSpotJalapeoJavaJalapeo25/30HotSpotCHotSpotJavaJalapeoHotSpotJalapeoJalapeoillCHotSpotJalapeoJalapeoJalapeoHotSpotSMPJalapeoCPUHotSpotHotSpottrain”44transition-to-collectionHotSpotSqueak45SmalltalkSmalltalkCSmalltalkDeutschSchiffmanSmalltalk-80Smalltalk46JalapeoSelf47SelfJalapeoJava3148DAISY49VLIWverylonginstructionword”JavaVLIWVLIW50545556574658595655Java602226/30JavaJalapeoJavaJavaJalapeoJTOCJalapeoJalapeoJalapeoJalapeoJavaJavaAMAGICJalapeocatch“goto”JavaJavaJavaJalapeoPowerPCJavaJavaJalapeoJavaJava27/30JalapeoJalapeoMAGICJalapeoJavaJalapeoJavaJalapeoMAGICRJavaJalapeoMAGICJVMMAGICMAGICobjectAsAddressJalapeoJavaJalapeo650Java110MAGIC12BJVMJVMJVMJVMJalapeo28/30JVMJalapeoboot-imagewriterJavaJalapeomock-upJavaJVMJVMJVMJalapeoJVMJalapeoJavaJVMJavaJVMJavaJVMJalapeoJalapeoJavaJavaJalapeoJVMJVMJalapeoJVMJVMJalapeoJalapeoVMJalapeoJavajava.lang.Objectjava.lang.Classjava.lang.StringI/OVM_JavaIntegerFloatDoubleXXVM_JalapeoJalapeoJTOCJTOC29/30JTOCJTOCjava.lang.ClassgetFieldsJalapeoJavaJVMJVMJavaSunJavaJavaDevelopmentKit1.1.4Java2Java2SoftwareDe