Research on On-card Bytecode Verifier for Java Cards
|
|
- Francine Pierce
- 8 years ago
- Views:
Transcription
1 502 JOURNAL OF COMPUTERS, VOL. 4, NO. 6, JUNE 2009 Research on On-card Bytecode Veriier or Java Cards Tongyang Wang, Pengei Yu, Jun-jun Wu and Xin-long Ma Institute o Inormation & System Technology,Huazhong Univ. o Sci & Tech.,Wuhan , China yup@vip.qq.com Abstract The bytecode veriication is a key point o the security chain o the Java Platorm. This eature is optional in many embedded devices since the memory requirements o the veriication process and the process capability o hardware are too high. In this paper we propose a veriier that utilizes the logical low graph based cache policy and an improved non stressing type coding method, or the bytecode veriication on the Java card, which remarkably reduces the use o the memory by the scheduling algorithm o the bytecode veriier. O-card pre-processing is unnecessary or the bytecode, hence it is possible to be implemented on card and to prevent any bytecode, which is correct yet not pre-processed, rom being reused by the oncard veriier. This algorithm also eatures strong transportability and easibility with a perect veriication process based on traditional bytecode veriication. The results o the experiments show that this bytecode veriication can be perormed directly on small memory systems. Index Terms java card, bytecode veriication, type deduction, cache scheduling policy I. INTRODUCTION The Java programming language was born in the early 90s in order to meet lexible and highly reliable smart electronic device programming requirements. It is used in a growing number o ields and lately also in the embedded system world. Actually, a Java Card is a Smart Card running a Java Virtual Machine (VM), the Java Card Virtual Machine (JCVM), and it is going to become a secure token in various ields, such as banking and public administration. The JCVM is the core o the Java Card: it is a sotware CPU with a stack based architecture that creates an execution environment between the device and the programs (Java Card Applets). The JCVM guarantees hardware-independence and enorces the security constraints o the sandbox model. In particular, the Java bytecode Veriier is one o the key components o the sandbox model: the Java Card Applets are compiled in a standardized compact code called Java Card bytecode and the Veriier checks the correctness o the code beore it is executed on the JCVM. As Java is a good trans-platorm language, it is easy to download Java applet rom internet to personal computers, and the Java card architecture [1] even allows users to download the applet, once released, to a smart card. However, we have to ace some security problems while enjoying this acility. For example, is the code downloaded online sae? Is there any malicious code attempting to alsiy or even destroy the original applets? What measures should be taken to ensure the applet security? These are some o the outstanding security problems, especially or the smart card, which is widely used in payment, mobile communication and the veriication system, where security requirements are very crucial. To combat the security risks associated with mobile code, Sun has developed a security model or Java in which a central role is played by bytecode veriication, which ensures that no malicious programs are executed by a Java Virtual Machine (JVM). Bytecode veriication takes place when loading a Java class ile and the process veriies that the loaded bytecode program has certain properties that the interpreter s security builds upon. The essential, and nontrivial, part o bytecode veriication is checking type-saety properties o the bytecode, that is, that operands are always applied to arguments o the appropriate type and that there can be no stack overlows or underlows. By checking these properties statically prior to execution, the JVM can saely omit the corresponding runtime checks. In Java language, a model named sandbox [3] is used to solve the security problems or the operational environment o the Java program. The security o the sandbox model relies on the ollowing three aspects: Firstly, the application is not compiled directly into an executable code but a virtual machine-oriented named bytecode. The operation o the virtual machine or data processing is better than the low level hardware processing operation, or example, substituting a memory address with an object, and thus ensuring the basic security. Secondly, a series o well designed and encapsulated API types and methods are required by the application to access hardware, and the old methods, or example, direct hardware access through a serial port, are prohibited. Thirdly, the bytecode o the application undergoes a static analysis called bytecode veriication to ensure the security o the bytecode. Bytecode veriication aims to veriy the downloaded bytecode. Any problems occurring
2 JOURNAL OF COMPUTERS, VOL. 4, NO. 6, JUNE in the veriication, such as mismatch type, are likely to incur hidden trouble or the security. The above sandbox model can be applied to Java card as well. Beore the applet is downloaded as bytecode, to smart card, it was veriied by the o-card veriier. This veriication method is based on the data type analysis and data overlow analysis during the operation. Bytecode veriication can be perormed o-card or oncard. However, because o the strong memory constraints o the Java Cards, the bytecode veriication is uneasible directly on-card in its standard orm. The bytecode, generated by Java program and veriied by an o-card bytecode veriier, is available in such an open environment as the internet, or users to download. However, the bytecode in this open environment is unreliable because o human alsiication and other actors. A veriication task which is not happened in the real Java card progress is thereore necessary to ensure the security ater the bytecode is downloaded. It can be seen that bytecode veriication plays a critical part in the security o Java card. The problem resulted rom the unreliable environment can be surmounted, i the bytecode veriier is transerred rom o-card to oncard. Subsequently the security o the Java card will be improved deinitely. However, it is very diicult to implement this veriication process on Java card due to the limitation o the smart card itsel. Figure 1 shows the utopian process o Java bytecode veriication. Ater the on-card veriier is inserted into the whole process, the o-card veriier can be kept or removed rom the schema according to the concrete veriication algorithm. O-card processing javac Java Compiler On-card veriier Class ile Veriied applet CAP converter JVM Bytecode Untrusted Applet installer CAP ile On-card processing O-card veriier Veriied Non-deensive CAP ile VM Figure 1. Utopian bytecode veriication schema. II. RELATED WORKS A. Bytecode Veriier rom SUN It is necessary to review the traditional method o standard veriication, as it was irstly implemented by SUN. This traditional bytecode veriier is based on a stack structure, where all the relevant local variables are stored. The traditional Java card veriication interprets each method constituting the applet in an abstract way, aiming to check the control low and data low statistically so that they will not cause any error, or example, overlow or underlow o the stack, incorrect type o variable etc. This algorithm is called type deduction, which is described in Leroy s paper [3] in detail. The algorithm o traditional bytecode veriication, launched by Sun and developed by Gosling and Yellin, can be roughly described as ollows. The veriier consists o a group o type stacks and a corresponding group o local variable arrays. When processing linear codes (without any branch or exceptional processing), the veriier will process each instruction in order. That is, it checks whether the entry is suicient or or match each instruction. While processing codes with branches, it respectively takes olks and joins into account, and employs a data structure called dictionary, which consists o the stacks and local variable types o each corresponding branch or exceptional processing program point. When a branch instruction is analyzed, the branch type stored in the corresponding dictionary must be changed. That is, it is decided by the previous type in the dictionary and the Least Upper Bound, LUB or short, deducted rom this instruction. Once the dictionary entry is changed, the corresponding instruction and the succeeding ones must be reanalyzed until a proper status is achieved. It can be calculated that the time complexity o this algorithm is O(S4), where S stands or the number o instructions o the veriied program, and the space complexity is (3S+3N +3) B, where S stands or the maximum stack space, N or the number o local variables in the method, and B or the number o dierent branches, given 3 bytes are needed to store each type. B. Resource Limitation From the above analysis o the traditional algorithm, it can be concluded that the Java Card Virtual Machine (JCVM) will mainly ace the problem o limitation on the resource, which includes two aspects, namely hardware stress and limited memory space, when we attempt to transer the o-card veriier to an on-card one. On a typical Java card, the RAM space is about 3k-6k, the EEPROM space about 16k-256k, and the CPU 16 or 32 bits. Based on the above discussed space complexity (3S + 3N + 3) B or the algorithm o traditional bytecode veriication, about 3150 bytes are needed or the to-bestored dictionary structure in order to process a moderately complicate bytecode veriication, given S = 5, N = 15, and B = 50. For the present Java card, it is impossible to allocate so many memory space o RAM to support the implementation o this algorithm. In addition, linear increase o the number o branches B in the program will probably lead to linear or even exponential rise on the memory space o dictionary in the algorithm, almost making the bytecode veriication on Java card an impossible task. I the dictionary structure is stored in nonvolatile memory (NVM), such as EEPROM or FLASH, the bytecode veriication will become very slow as it takes too long time (1-10ms) to write data into NVM. Besides, there are limited times or reading and writing o this kind o memory. The typical endurance o NVM is around 300,000, which can not meet the requirements or requent dictionary operations.
3 504 JOURNAL OF COMPUTERS, VOL. 4, NO. 6, JUNE 2009 All the above mentioned problems make it impossible to successully implement this kind o traditional bytecode veriication on Java card without any modiication to it. C. On-card Solutions Review To solve the problems above, many researchers have made great eorts in the bytecode veriication on Java card, as summarized below. A Digital Signature method [3] uses the digital signature o a trusted third party, thus omitting the bytecode veriication process on Java card. Though not relating to the narrowly deined veriication, this method does not apply to those cases, where there is no trusted third party, or example, an oline one. Lightweight algorithm [5] processes all branches at the o-card stage o veriication, and puts additional inormation into the bytecode. Then the instruction processed at the on-card stage o veriication will become a linear one, because there is no branch, thus reducing the RAM space required by the veriier. However, the volume o bytecode will greatly increase (approximately by 50%) due to the additional inormation attached at o-card stage. Xavier Leroy [4] attempts to make semantic translation at the o-card stage o veriication, so as to uniy all instructions. While veriying the data structure, keep the stacks empty both in the beginning and at the end o processing, thus lowering the space complexity. This algorithm contains less additional inormation than the lightweight algorithm [5] (by approximately 2%). However, this algorithm can not check the initialization o local variables dynamically. Cinzia Bernardeschi [10] described a dynamic algorithm, which processes all branches in the control low graph o the program, and deletes data in the stack ater processing a branch structure beore analyzing the ollowing one. The maximum space complexity o this algorithm depends on the veriication unit with the most branches in the program. PCC method [9] uses NVM to store the data structures corresponding to the bytecode veriication, and this method proves to be practical in experiment. However, it takes much more time than the traditional algorithm as the writing operation o NVM is much slower than that o RAM, though this method does not present any problem with the storage space. An improved PCC method [2] diers rom PCC in that a sot cache severs to try to put the bytecode veriication into RAM, thus saving more time by the virtue o the quick speed o accessing RAM. But no reasonable cache scheduling algorithm is proposed in this method. III. LOGICAL FLOW GRAPH BASED BYTECODE VERIFIER In response to the above-mentioned problems, this article presents a veriier based on the Logical Flow Graph (LFG), together with a corresponding cache scheduling algorithm. The LFG based bytecode veriier proposed in this article is to use NVM as the main memory, storing data types and relevant dictionary, and at the same time employs a part o RAM space as the cache. To solve the problem that it takes long time or NVM to complete writing or erasing operation, this veriier adopts an improved non stressing type encoding method and provides a corresponding cache scheduling policy. In this way, it is possible to build an on-card veriier to execute bytecode veriication. A. Improvement on Non Stressing Type Encoding With the consideration on the perormance o NVM on smart card, this article attempts to improve the non stressing type encoding method proposed by Damien [2], and applies it in our proposed on-card veriier. In traditional bytecode veriication, the data structure o dictionary occupies a very large storage space in the whole veriication process. To ease the space stress, we suggest storing this data structure in NVM. Since it takes quite long time or NVM to complete reading and erasing/writing, it is necessary to minimize the data processing in cache. As the whole process o bytecode veriication is type deduction, when processing complex branches, or example, when two branches converge on one instruction node, LUB can be available through a type comparison ( and logic) between the corresponding types on the two branches. In terms o hardware, this type comparison shows that this processing process involves a large volume o data storage processing via cache, and it also relates to the operation o and logic, which will slow down the whole bytecode veriication. Top int[ ] int 0001 loat[ ] Object 0010 D C loat 0100 E Object[ ] C[ ] D[ ] E[ ] NULL Figure 2. Improved non stressing type encoding The non stressing encoding proposed by Damien sets type encoding according to the type lattice, so that each type corresponds to a group o Boolean data. Since it takes less time or NVM to complete the writing operation than the erasing operation, we can change a certain bit position rom 0 to 1 when several types are combined as one in the lattice, thus obtaining an improved encoding mode. With characteristics o the above mentioned encoding mode taken into account, we represent encoding o dierent levels with Boolean data o dierent lengths according to the type lattice, with the improved non stressing coding shown in Figure 2. This kind o improved coding, compared with original one, reduces the type memory space, and abandons some data when it
4 JOURNAL OF COMPUTERS, VOL. 4, NO. 6, JUNE is necessary to get LUB o two types. For example, to get the LUB o D and E, just keep the irst 8 bit positions that are the same or D and E. In this way, the and operation in hardware can complete type deduction by abandoning some data. With the cache scheduling policy, which will be described later, this improved type encoding mode is advantageous in that it is only necessary to record the length o the corresponding data type when the data in cache are written back into NVM, which saves the time o writing or erasing operation in NVM, thus reducing time or the whole veriication process. Thereore, the improved non stressing type encoding can be well applied in bytecode veriication on Java card. B. Logical Flow Graph In our proposed bytecode veriier, a cache scheduling policy is used to solve the limited resource problem when doing bytecode veriication based on Logical Flow Graph, LFG or short. Figure 3 shows a simple example o bytecode and the corresponding LFG. Byte code Sample: 01: iload_1 02: iconst_3 03: i_icmpne 10 {ASN(03)=13} 04: aload_0 05: invokevirtual test 06: istore_2 07: jsr : iconst_0 11: iload_1 12: ireturn 13: astore_ v entry =ASN(03) v exit 10 OB2=OB1+01 OB1 Figure 3. Bytecode example and corresponding LFG Deinition 1: LFG (Logical Flow Graph) I a graph G is a logical low graph, then it conorms to the ollowing two conditions: G is a directed graph, where the number o directed paths is greater than 1 ( P( G) 1 ) and the number o nodes is greater than 3 ( VG ( ) 3); There are only one entry node u, the in-degree o which is zero ( Din ( u ) = 0), and only one exit node v, the out-degree o which is zero as well ( Dout () v = 0). The process o bytecode veriication can be imaged as a LFG, where any node u, except or the entry node and the exit one, can be subdivided into a new graph. When all the nodes in LFG can not be subdivided any more, every node in LFG stands or a VM instruction I u and every edge Euv (, ) the dependency between instruction I u and I v. Deinition 2: MN (Master Node) and SN (Slave Node) Supposed uv, V( LFG), i direct path Puv (, ) exists, then u is the MN o v and v is the SN o u. Specially, when e E( LFG) and e= { Euv (,) uv, VLFG ( )}, u is the DMN o v, and v the DSN o u. Otherwise, u is the indirect MN, and v the indirect SN o u. I v is the SN o u and the distance between them is longer than that between any other SN o u and u, u is the associated MN o v, denoted as u = AMN() v, when D ( u) 2 and Din ( v) 2. At the same time, v is the associated SN o u, expressed as v = ASN( u). Deinition 3: OB (Operation Block) Let uv, V( LFG), i path set P ( uv, ) = { Puv i (, ) 1 i n} stands or all the possible directed paths rom u to v, then V w = w 1 j m,w P( u, v) is the set o all ( ) { j j } the nodes located on P (, ) out uv, where w Puv (, ) means that w j is located on Puv (, ). E e = e 1 k q, w P( u, v) Furthermore, ( ) { k k } stands or the set o edges located on P ( uv, ). I v is the associated SN o u, namely v = ASN( u), then graph G = V w, E e is an OB. Supposed that { ( ) ( )} OBs, OB LFG and OBs OB, i a node OB t, which satisies OBs OBt OB can not be ound in LFG, OB is the minimal envelope graph o OB s, represented as OB = MEG ( OBs). When applied to bytecode veriication, an OB in act includes all the nodes which have the same entry and the same exit nodes, which can be considered as a basic veriication and cache unit ater combined with the other linear bytecode nodes or not. C. Bytecode Veriication Based on Cache Scheduling Policy In addition to the non stressing type encoding method, a cache scheduling policy based on LFG is necessary to copy some data rom NVM to RAM during bytecode veriication, and then to substitute the data in RAM through scheduling cache, thus enabling the veriying instruction to extract data rom RAM as more as possible. Beore describing the detailed veriication process, it should be helpul to deine some necessary unctions, namely abstract interpreters (AI), which are based on LFG and play an important role in the process. Every AI includes a state, represented as is,, where i is the value o the program counter and S is the current state o registers and operand stack. Deine type() i to return the label corresponding to the instruction i, targ et( i) to return the targets o instruction i, succ() i to return the successor o instruction i according to LFG and j
5 506 JOURNAL OF COMPUTERS, VOL. 4, NO. 6, JUNE 2009 outst () i to denote the unction o the standard veriier that generates the ater-state o instruction i. Specially, there are two other unctions regarding cache scheduling should be deined. One is writecache( S ), which represents that the current state S and the stack will be written into the cache when the instruction i does not hit the data in the cache, which is substituted according to the FIFO (First In, First Out) policy. Otherwise, i instruction i hit the data in the cache, the veriication will be done in this cache. The other is writeback ( S ), which represents that the veriier will write the current state and the stack back to the NVM, when the current instruction is veriied. Based on these deinitions, the detailed bytecode veriication process is described below. Step 1.initialization All the control nodes corresponding to instructions with i or switch are analyzed according to the structure o LFG, to search the ASN o every node. The additional message indicating the positions o these nodes and the number o branches or each veriication unit will be stored in the dictionary structure. Step 2.veriystr The instruction i will be veriied as the traditional way and the instruction j is predecessor o i, i it is not a control node or an ASN. I the instruction i does not hit the data in the cache, the data structure corresponding to instruction i will be put in the RAM, and the dictionary corresponding to instruction i in the cache. The state is, is transerred to succ(), i outst(, i. This step can be described as below. veriystr ( i, ={ writecache (, is, succi ( ), outstis (, ) i ASN( j), type( i) {i, switch}} Step 3.inunit When the control node (instructions with i and switch ) is veriied, the veriier inds the ASN corresponding to it. Then the NVM puts the instruction and the related stack in the RAM. The dictionary corresponding to the instruction is written in the Cache including the present state S to the ASN (i the space o the Cache is not large enough, the size o the data which is written in the Cache is equal to the size o the Cache). Then, veriy them. The state < is, > is transerred to <target( i), outst( I, S )>. This step can be described as below: inunit( i, ={ writecache( S,S min{ ipd ( j), i+ N} ), is, target( i), outstis (, ) i ASN( j), typei ( ) {i, switch} } Step 4.outunit When the ASN is veriied, the veriier judges whether all the branches is veriied (C is equal to 0 or not). I yes, all the control node-related node data, which can be substituted in the ollowing veriication, will be released rom the RAM. The related structure o the current instruction is put into the RAM to be veriied and the dictionary is put into the Cache. The state is, is transerred to <succ( i),outst( I, > and the state outst( is, ) is rewritten into the NVM. This process can be stated as below. outunit( i, ={ writecache(, i, S succ( i), outst ( i,, writeback ( outst ( i, i= ASN( j), typei ( ) {i, switch}, c= 0 } Step5.branch When the ASN is veriied, it should be determined whether all the branches are veriied (C is equal to 0 or not). I no, the writecache( is, ) is executed. When the instruction is not hit, the veriier substitutes the data in Cache and veriies it in the RAM. The state< is, > is transerred to <target( j),outst( i, S )>. Then the veriication jumps to the next branch. branch( i, ={ writecaches ( ), is, target( j), outstis (, ), c i= ASN( j), typei ( ) {i, switch}, c 0 } Step6.end When the exit node EXIT is veriied, the veriication process inishes. The state success stands or the veriication is completed successully. end( i, ={ i, S success i = EXIT } The low chart o this Cache scheduling algorithm is as shown in Figure 4. preprocess START veriystr( i, EXIT Y End( i, END N N type(i) {i,switch} Y inunit( i, i = ASN( j) outunit( i, Y C=0 N branch( i, Y N Figure 4. Flow chart o Cache scheduling algorithm As a whole, in this scheduling algorithm, the part between the olks and joins o each branch (OB) is veriied in the RAM and the veriication result is put into the Cache. In this way, it can greatly beneit rom the
6 JOURNAL OF COMPUTERS, VOL. 4, NO. 6, JUNE time advantage o RAM and the space advantage o NVM. IV. RESULT AND ANALYSIS A. Compare to the traditional algorithm Because the traditional algorithm puts all the data in RAM, the space complexity is (3S+3N +3) B. In our algorithm, the space complexity on RAM depends on the part with most branches in the LFG. Assume C as the maximum number o branches between the total control nodes and the corresponding ASN, then the corresponding space complexity o RAM will be (3S + 3N + 3) C, C < B. B. Compare to the improved PCC algorithm The veriication process can be described and analyzed in detail, with the ollowing bytecodes in Figure 3 as an example. In the beginning, the veriication program searches all control nodes, indicated by 3 in the igure, and the corresponding ASN (3) =10. The number o branches o a veriication unit is recorded as C=2.Veriication begins rom where START is indicated, and the dictionary is empty. The corresponding data in RAM are null, and instructions are scheduled in order rom NVM and stored in the corresponding status stacks. When veriication comes to the irst control instruction, which is 03: i_icmpne10, the instruction enters an OB, and the corresponding successor status is written into RAM until it reaches 13: astore_3. The veriier reads out corresponding status rom RAM and veriies this veriication unit. When veriication reaches 13 or the irst time, C=1, and not all the branches have been veriied. Then the veriication program returns to the entry control node 3 to continue veriication until it reaches the ASN o the control node. Ater the analysis, the program saves the entry status and input status into Cache, and all data o this OB in RAM can be substituted in the ollowing veriication. The veriication program implements operation in this way until it reaches the node indicated by END, then veriication inishes. The ollowing is an analysis o the above presented bytecodes. Assume 8 or the number o instruction stack structures that can be stored in RAM. Based on the algorithm o improved PCC [2], relevant data are called every time by the program low. When veriication starts rom node 1, relevant inormation o nodes 1-8 will be written into Cache, and both veriication nodes 2 and 3 are hit. When node 10 is not hit upon veriication, inormation o this node will be written into Cache and substitute node 1 based on the principle o First in, irst out. Similarly, i none o the nodes 11, 12, 13, 3, 4, 5, 6, 7 and 13 is hit upon veriication, the substituted nodes will be respectively 2, 3, 4, 5, 6, 7, 8, 10 and 11. See Table 1 or the hit status. Table 1 is based on the above-analyzed Improved PCC algorithm and the substitution policy introduced in this article. TABLE I. COMPARISON BETWEEN IMPROVED PCC ALGORITHM AND THE POLICY MENTIONED IN THIS ARTICLE ( STANDS FOR HIT WHILE FOR NOT HIT ) Label o nodes Improved PCC algorithm Our algorithm According to the data in the table, obviously the hit rate is approximately 23.08% or improved PCC algorithm, while it is approximately 92.31% or the scheduling algorithm introduced in this article, which means the hit rate can be greatly improved with the Cache scheduling policy introduced in this article. It is normal and reasonable or improvement o the hit rate since the scheduling algorithm in this article ollows the LFG, that is, the scheduling ollows the veriication process. It is improved on the complicated scheduling algorithm. However, since this scheduling algorithm process is similar to the low process, the program can guarantee its implementation without occupying large extra memory space while implementing the Cache scheduling policy during the veriication process. A comparison o the time or substitution between the algorithm introduced in this article and that with the algorithm o improved PCC shall be given or the Cache o dierent lengths because the time is aected by the size o the Cache block. Figure 5 and Figure 6 present these comparisons. In Figure 5, the real line represents a curve o the time or substitution with the algorithm introduced in this article, and the dotted line represents that with the algorithm o improved PCC. We suppose the time that write in one block o the Cache is T. The vertical axis in Figure 6 represents the ratio o time or substitution with the algorithm introduced in this article to that with the algorithm o improved PCC. The horizontal axis in both igures represents the size o the Cache block. As shown in the igures, the algorithm introduced in this article is most eicient when the size o the Cache block coincides with that o the OB in the LFG. The shorter the size o the Cache, the more obvious improvement the algorithm introduced in this article will make on eiciency o the substitutional time o the Cache. The longer the size o the Cache, the more service eiciency the algorithm introduced in this article will make. The less the traic o data exchange between
7 508 JOURNAL OF COMPUTERS, VOL. 4, NO. 6, JUNE 2009 Cache and NVM, the more there will be data veriied in Cache. Thereore, the dierence between algorithms will become insigniicant. The time or substitution 13 T 1 T The algorithm in this article Improved PPC algorithm Cache size Figure 5. The time or substitution between the algorithm introduced in this article and that with the algorithm o improved PCC or Cache o dierent length ratio Cache size Figure 6. Ratio o time with the algorithm introduced in this article to that with the algorithm o improved PCC As or the time o the algorithm, the whole veriication process consumes the traditional veriication time plus the time or the Cache scheduling algorithm, with the process o the Cache scheduling algorithm taken into account. The algorithm introduced in this article try to avoid the writing and reading problems o NVM by converting the writing and erasing operations o NVM into reading operation in the improved non stressing encoding mode, thus removing the bottleneck in the time o reading and writing with NVM. For the operation o writing into RAM necessary the scheduling algorithm, the whole veriication process consumes the traditional veriication time and the time or the Cache scheduling algorithm, based on the analysis o the time complexity, and as the processor reads and accesses data in a short time, the time complexity O( o the added veriication time T with the Cache scheduling algorithm is completely acceptable, compared with the time complexity o the traditional veriication algorithm O(S4). In addition, it will not take more than 0.2 or RAM to write in a bit data. Based on such time complexity, it can be guaranteed that the veriication process can be completed within the time acceptable to users with enough veriication space as mentioned above or the whole veriication process. C. Guarantee o the Algorithm Correctness The ollowing aspects can guarantee correctness o the veriication program. First, the basic principle o veriication is the algorithm o traditional veriication, which guarantees that the veriication has been testiied and proved correct in terms o algorithm. Second, the memory capacity o NVM guarantees the algorithm o traditional veriication, thus avoiding veriication ailure caused by any ault as a result o insuicient memory capacity during the veriication process. Last, the Cache scheduling policy and the improved non stressing encoding guarantee reliable veriication in terms o time. Based on the comparison between the abovementioned algorithm o improved PCC and the analysis o time complexity, we can draw a conclusion that this scheduling algorithm is better or the bytecode veriication on Java card. V. CONCLUSION This article designs a mode o bytecode veriication on Java card based on the Cache scheduling algorithm. In this mode, the bytecode veriication can be implemented completely on Java card through Cache, without being restricted by limitation o the Java card itsel. Another reason or preerence o this scheduling algorithm is that any preprocessing is unnecessary or the bytecode, that is, any bytecode, which is correct yet not pre-processed, will not been reused by the veriier. Through data scheduling o NVM and RAM, this algorithm realizes a perect veriication process based on traditional bytecode veriication, eaturing strong transportability and easibility. ACKNOWLEDGMENT Instructions and supervisions rom Pro. Xinang Zhang, constructive suggestions rom Xinlong Ma and Mingwei Fang, and collaborations o Tongyang Wang and Jun-jun Wu are grateully acknowledged. REFERENCES [1] Zhiqun Chen. Java Card Technology or Smart Cards: Architecture and Programmer s Guide. Addison Wesley Longman Publishing co., Inc., [2] Damien Deville. Building an impossible veriier on a Java Card. In USENIX Workshop on Industrial Experiences with Systems Sotware(WIESS 02), [3] X.Leroy. Java bytecode veriication: algorithms and ormalizations. Journal on automated reasoning, 30, [4] X.Leroy. Bytecode veriication on Java Smart card. Sotware Practice & Experience, 32: , [5] Rose E, Rose K. Lightweight bytecode veriication. In Workshop Fundamental Underpinnings o Java, 1998.
8 JOURNAL OF COMPUTERS, VOL. 4, NO. 6, JUNE [6] Joachim Posegga and Harad Vogt. Java bytecode veriication using model checking. In 26th symposium Principles o Programming Languages, pages ACM Press, [7] Raymie Stata and Martín Abadi. A Type system or Java bytecode subroutines. ACM Transactions on Programming Languages and System, 21(1): , [8] Virtual Machine Speciication. Java Card TM Platorm, Version Sun Microsystems, Inc, [9] George C.Necula. Proo-carrying code. In 24th symposium Principles o programming Language, pages ACM Press, [10] C. Bernardeschi, L. Martini, and P. Masci. Java bytecode veriication with dynamic structures. International Conerence on Sotware Engineering and Applications (SEA), Cambridge, MA, USA, Tongyang Wang(1963-), male, Wuhan Hubei, Institute o Inormation & System Technology, Huazhong Univ. o Sci & Tech. associate proessor, Ph.D, Research in Embedded System, CAD. Pengei Yu(1981-), male, Chibi Hubei, Institute o Inormation & System Technology, Huazhong Univ. o Sci & Tech. Ph.D Candidate, Research in Embedded System, Trusted Computing, Secured Portable Storage, Inormation Security. Jun-jun Wu(1972-), male, Wuhan Hubei, Institute o Inormation & System Technology, Huazhong Univ. o Sci & Tech. associate proessor, Ph.D, Research in Inormation Security, Embedded System, CAD.
8. Hardware Acceleration and Coprocessing
July 2011 ED51006-1.2 8. Hardware Acceleration and ED51006-1.2 This chapter discusses how you can use hardware accelerators and coprocessing to create more eicient, higher throughput designs in OPC Builder.
More informationpicojava TM : A Hardware Implementation of the Java Virtual Machine
picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer
More information02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
More informationInterpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
More informationChapter 7D The Java Virtual Machine
This sub chapter discusses another architecture, that of the JVM (Java Virtual Machine). In general, a VM (Virtual Machine) is a hypothetical machine (implemented in either hardware or software) that directly
More informationA FRAMEWORK FOR AUTOMATIC FUNCTION POINT COUNTING
A FRAMEWORK FOR AUTOMATIC FUNCTION POINT COUNTING FROM SOURCE CODE Vinh T. Ho and Alain Abran Sotware Engineering Management Research Laboratory Université du Québec à Montréal (Canada) vho@lrgl.uqam.ca
More informationAn evaluation of the Java Card environment
An evaluation of the Java Card environment Christophe Rippert, Daniel Hagimont Contact: Christophe Rippert, Sirac Laboratory INRIA Rhône-Alpes, 655 avenue de l Europe Montbonnot 38334 St Ismier Cedex,
More information2. Developing Nios II Software
2. Developing Nios II Sotware July 2011 ED51002-1.4 ED51002-1.4 Introduction This chapter provides in-depth inormation about sotware development or the Altera Nios II processor. It complements the Nios
More informationCloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
More information8. Exception Handling
8. Exception Handling February 2011 NII52006-10.1.0 NII52006-10.1.0 Introduction This chapter discusses how to write programs to handle exceptions in the Nios II processor architecture. Emphasis is placed
More informationMaintenance Scheduling Optimization for 30kt Heavy Haul Combined Train in Daqin Railway
5th International Conerence on Civil Engineering and Transportation (ICCET 2015) Maintenance Scheduling Optimization or 30kt Heavy Haul Combined Train in Daqin Railway Yuan Lin1, a, Leishan Zhou1, b and
More informationIs the trailing-stop strategy always good for stock trading?
Is the trailing-stop strategy always good or stock trading? Zhe George Zhang, Yu Benjamin Fu December 27, 2011 Abstract This paper characterizes the trailing-stop strategy or stock trading and provides
More information1. Overview of Nios II Embedded Development
May 2011 NII52001-11.0.0 1. Overview o Nios II Embedded Development NII52001-11.0.0 The Nios II Sotware Developer s Handbook provides the basic inormation needed to develop embedded sotware or the Altera
More informationA performance analysis of EtherCAT and PROFINET IRT
A perormance analysis o EtherCAT and PROFINET IRT Conerence paper by Gunnar Prytz ABB AS Corporate Research Center Bergerveien 12 NO-1396 Billingstad, Norway Copyright 2008 IEEE. Reprinted rom the proceedings
More informationChecking Access to Protected Members in the Java Virtual Machine
Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/
More informationSystem-Level Security for Network Processors with Hardware Monitors
System-Level Security or Network Processors with Hardware Monitors Kekai Hu, Tilman Wol, Thiago Teixeira and Russell Tessier Department o Electrical and Computer Engineering University o Massachusetts,
More informationPower functions: f(x) = x n, n is a natural number The graphs of some power functions are given below. n- even n- odd
5.1 Polynomial Functions A polynomial unctions is a unction o the orm = a n n + a n-1 n-1 + + a 1 + a 0 Eample: = 3 3 + 5 - The domain o a polynomial unction is the set o all real numbers. The -intercepts
More informationJava Card. Smartcards. Demos. . p.1/30
. p.1/30 Java Card Smartcards Java Card Demos Smart Cards. p.2/30 . p.3/30 Smartcards Credit-card size piece of plastic with embedded chip, for storing & processing data Standard applications bank cards
More information2. Getting Started with the Graphical User Interface
May 2011 NII52017-11.0.0 2. Getting Started with the Graphical User Interace NII52017-11.0.0 The Nios II Sotware Build Tools (SBT) or Eclipse is a set o plugins based on the Eclipse ramework and the Eclipse
More informationA NOVEL ALGORITHM WITH IM-LSI INDEX FOR INCREMENTAL MAINTENANCE OF MATERIALIZED VIEW
A NOVEL ALGORITHM WITH IM-LSI INDEX FOR INCREMENTAL MAINTENANCE OF MATERIALIZED VIEW 1 Dr.T.Nalini,, 2 Dr. A.Kumaravel, 3 Dr.K.Rangarajan Dept o CSE, Bharath University Email-id: nalinicha2002@yahoo.co.in
More informationSIMPLIFIED CBA CONCEPT AND EXPRESS CHOICE METHOD FOR INTEGRATED NETWORK MANAGEMENT SYSTEM
SIMPLIFIED CBA CONCEPT AND EXPRESS CHOICE METHOD FOR INTEGRATED NETWORK MANAGEMENT SYSTEM Mohammad Al Rawajbeh 1, Vladimir Sayenko 2 and Mohammad I. Muhairat 3 1 Department o Computer Networks, Al-Zaytoonah
More informationCopyright 2005 IEEE. Reprinted from IEEE MTT-S International Microwave Symposium 2005
Copyright 2005 IEEE Reprinted rom IEEE MTT-S International Microwave Symposium 2005 This material is posted here with permission o the IEEE. Such permission o the IEEE does t in any way imply IEEE endorsement
More informationTypes of Separated Java Bytecode
Improving the Java Virtual Machine Using Type-Separated Bytecode Philipp Adler and Wolfram Amme Friedrich-Schiller-Universität, Ernst-Abbe-Platz 1-4, 07743 Jena, Germany, [phadler amme]@informatik.uni-jena.de
More information!!! Technical Notes : The One-click Installation & The AXIS Internet Dynamic DNS Service. Table of contents
Technical Notes: One-click Installation & The AXIS Internet Dynamic DNS Service Rev: 1.1. Updated 2004-06-01 1 Table o contents The main objective o the One-click Installation...3 Technical description
More information1. Overview of Nios II Embedded Development
January 2014 NII52001-13.1.0 1. Overview o Nios II Embedded Development NII52001-13.1.0 The Nios II Sotware Developer s Handbook provides the basic inormation needed to develop embedded sotware or the
More informationReconfigurable Architecture Requirements for Co-Designed Virtual Machines
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada ken@unb.ca Micaela Serra
More informationJonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
More informationJava Smart Cards as a Platform for Electronic Commerce
Java Smart Cards as a Platform for Electronic Commerce 1 Java Smart Cards as a Platform for Electronic Commerce Joachim Posegga Deutsche Telekom AG Technologiezentrum IT Sicherheit/FE34a D-64276 Darmstadt
More informationSmart Cards a(s) Safety Critical Systems
Smart Cards a(s) Safety Critical Systems Gemplus Labs Pierre.Paradinas Paradinas@gemplus.com Agenda Smart Card Technologies Java Card TM Smart Card a specific domain Card Life cycle Our Technical and Business
More informationFachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert
Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications
More informationTHE MODELING AND CALCULATION OF SOUND RADIATION FROM FACILITIES WITH GAS FLOWED PIPES INTRODUCTION
THE MODELING AND CALCULATION OF SOUND ADIATION FOM FACILITIES WITH GAS FLOWED PIPES INTODUCTION Analysis o the emission caused by industrial acilities like chemical plants, reineries or other production
More informationlanguage 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
More informationApplication-Level Optimizations on NUMA Multicore Architectures: the Apache Case Study
Application-Level Optimizations on NUMA Multicore Architectures: the Apache Case Study Fabien Gaud INRIA abien.gaud@inria.r Gilles Muller INRIA gilles.muller@inria.r Renaud Lachaize Grenoble University
More informationExponential Functions
Eponential Functions Deinition: An Eponential Function is an unction that has the orm ( a, where a > 0. The number a is called the base. Eample:Let For eample (0, (, ( It is clear what the unction means
More informationCan You Trust Your JVM Diagnostic Tools?
Can You Trust Your JVM Diagnostic Tools? Isaac Sjoblom, Tim S. Snyder, and Elena Machkasova Computer Science Discipline University of Minnesota Morris Morris, MN 56267 sjobl014@umn.edu, snyde479@umn.edu,
More informationUsing quantum computing to realize the Fourier Transform in computer vision applications
Using quantum computing to realize the Fourier Transorm in computer vision applications Renato O. Violin and José H. Saito Computing Department Federal University o São Carlos {renato_violin, saito }@dc.uscar.br
More informationCode Generation for High-Assurance Java Card Applets
Code Generation for High-Assurance Java Card Applets Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/ coglio
More informationThe Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
More informationIntegrated airline scheduling
Computers & Operations Research 36 (2009) 176 195 www.elsevier.com/locate/cor Integrated airline scheduling Nikolaos Papadakos a,b, a Department o Computing, Imperial College London, 180 Queen s Gate,
More informationThe Hotspot Java Virtual Machine: Memory and Architecture
International Journal of Allied Practice, Research and Review Website: www.ijaprr.com (ISSN 2350-1294) The Hotspot Java Virtual Machine: Memory and Architecture Prof. Tejinder Singh Assistant Professor,
More informationA MPCP-Based Centralized Rate Control Method for Mobile Stations in FiWi Access Networks
A MPCP-Based Centralized Rate Control Method or Mobile Stations in FiWi Access Networks 215 IEEE. Personal use o this material is permitted. Permission rom IEEE must be obtained or all other uses, in any
More informationTopics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
More informationA3 Computer Architecture
A3 Computer Architecture Engineering Science 3rd year A3 Lectures Prof David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/3co Michaelmas 2000 1 / 1 6. Stacks, Subroutines, and Memory
More informationSecurity Architecture and Verification of Java Bytecode
Security Architecture and Verification of Java Bytecode Ankit Tyagi, Abhishek Anand, Archana Bharti, Rashi Kohli Scholar, Department of Computer Science and Engineering, Amity University, Greater Noida,
More informationInternational Journal of Pure and Applied Sciences and Technology
Int. J. Pure Appl. Sci. Technol., 18(1) (213), pp. 43-53 International Journal o Pure and Applied Sciences and Technology ISS 2229-617 Available online at www.iopaasat.in Research Paper Eect o Volatility
More informationThe Complex Step Method Applied to Waterflooding Optimization
JOSE L. CARBALLAL JR. and BERNARDO HOROWITZ. THE COMPLEX STEP METHOD APPLIED TO WATERFLOODING 45 The Complex Step Method Applied to Waterlooding Optimization José L. Carballal Jr. 1, Bernardo Horowitz
More informationC Compiler Targeting the Java Virtual Machine
C Compiler Targeting the Java Virtual Machine Jack Pien Senior Honors Thesis (Advisor: Javed A. Aslam) Dartmouth College Computer Science Technical Report PCS-TR98-334 May 30, 1998 Abstract One of the
More informationCHAPTER 7: The CPU and Memory
CHAPTER 7: The CPU and Memory The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint slides
More informationAccommodating Transient Connectivity in Ad Hoc and Mobile Settings
Accommodating Transient Connectivity in Ad Hoc and Mobile Settings Radu Handorean, Christopher Gill and Gruia-Catalin Roman Department o Computer Science and Engineering Washington University in St. Louis
More informationThe Tangled Web of Agricultural Insurance: Evaluating the Impacts of Government Policy
Journal o Agricultural and Resource Economics 40(1):80 111 ISSN 1068-5502 Copyright 2015 Western Agricultural Economics Association The Tangled Web o Agricultural Insurance: Evaluating the Impacts o Government
More informationDevelopment and application of lightweight cloud platform workflow system
Abstract Development and application o lightweight cloud platorm worklow system Qing Hou *, Qingsheng Xie, Shaobo Li Key Laboratory o Advanced Manuacturing Technology, Ministry o Education, Guizhou University,
More informationLast Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
More informationTowards the Hardware Accelerated Defensive Virtual Machine - Type and Bound Protection
Towards the Hardware Accelerated Defensive Virtual Machine - Type and Bound Protection Michael Lackner 1, Reinhard Berlach 1, Johannes Loinig 2, Reinhold Weiss 1, and Christian Steger 1 1 Institute for
More informationManufacturing and Fractional Cell Formation Using the Modified Binary Digit Grouping Algorithm
Proceedings o the 2014 International Conerence on Industrial Engineering and Operations Management Bali, Indonesia, January 7 9, 2014 Manuacturing and Fractional Cell Formation Using the Modiied Binary
More informationFIXED INCOME ATTRIBUTION
Sotware Requirement Speciication FIXED INCOME ATTRIBUTION Authors Risto Lehtinen Version Date Comment 0.1 2007/02/20 First Drat Table o Contents 1 Introduction... 3 1.1 Purpose o Document... 3 1.2 Glossary,
More information2) Write in detail the issues in the design of code generator.
COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage
More information- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire
- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire il funzionamento della Java Virtual Machine (JVM): -
More informationUniversity of Twente. A simulation of the Java Virtual Machine using graph grammars
University of Twente Department of Computer Science A simulation of the Java Virtual Machine using graph grammars Master of Science thesis M. R. Arends, November 2003 A simulation of the Java Virtual Machine
More informationHardware/Software Co-Design of a Java Virtual Machine
Hardware/Software Co-Design of a Java Virtual Machine Kenneth B. Kent University of Victoria Dept. of Computer Science Victoria, British Columbia, Canada ken@csc.uvic.ca Micaela Serra University of Victoria
More informationSolving Newton s Second Law Problems
Solving ewton s Second Law Problems Michael Fowler, Phys 142E Lec 8 Feb 5, 2009 Zero Acceleration Problems: Forces Add to Zero he Law is F ma : the acceleration o a given body is given by the net orce
More information8-Bit Flash Microcontroller for Smart Cards. AT89SCXXXXA Summary. Features. Description. Complete datasheet available under NDA
Features Compatible with MCS-51 products On-chip Flash Program Memory Endurance: 1,000 Write/Erase Cycles On-chip EEPROM Data Memory Endurance: 100,000 Write/Erase Cycles 512 x 8-bit RAM ISO 7816 I/O Port
More informationIntroduction to Embedded Systems. Software Update Problem
Introduction to Embedded Systems CS/ECE 6780/5780 Al Davis logistics minor Today s topics: more software development issues 1 CS 5780 Software Update Problem Lab machines work let us know if they don t
More informationFinancial Services [Applications]
Financial Services [Applications] Tomáš Sedliačik Institute o Finance University o Vienna tomas.sedliacik@univie.ac.at 1 Organization Overall there will be 14 units (12 regular units + 2 exams) Course
More informationv11 v12 v8 v6 v10 v13
Analyzing Control Flow in Java Bytecode Jianjun Zhao Department of Computer Science and Engineering Fukuoka Institute of Technology 3-10-1 Wajiro-Higashi, Higashi-ku, Fukuoka 811-02, Japan zhao@cs.t.ac.jp
More informationJavaCard. Java Card - old vs new
JavaCard 1 Old Smart Cards: One program (applet) Written in machine-code, specific to chip Burned into ROM Java Card - old vs new old vs new smartcards New Smart Cards: Applet written in high-level language
More informationFPGA area allocation for parallel C applications
1 FPGA area allocation for parallel C applications Vlad-Mihai Sima, Elena Moscu Panainte, Koen Bertels Computer Engineering Faculty of Electrical Engineering, Mathematics and Computer Science Delft University
More informationMerkle Hash Trees for Distributed Audit Logs
Merkle Hash Trees for Distributed Audit Logs Subject proposed by Karthikeyan Bhargavan Karthikeyan.Bhargavan@inria.fr April 7, 2015 Modern distributed systems spread their databases across a large number
More informationArmed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors
2005 ACM Symposium on Applied Computing Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors Mourad Debbabi Computer Security Research Group CIISE, Concordia
More informationHVM TP : A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014
: A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014 Kasper Søe Luckow 1 Bent Thomsen 1 Stephan Erbs Korsholm 2 1 Department of Computer Science Aalborg
More informationA Tabu Search Algorithm for the Parallel Assembly Line Balancing Problem
G.U. Journal o Science (): 33-33 (9) IN PRESS www.gujs.org A Tabu Search Algorithm or the Parallel Assembly Line Balancing Problem Uğur ÖZCAN, Hakan ÇERÇĐOĞLU, Hadi GÖKÇEN, Bilal TOKLU Selçuk University,
More information1. Overview of the Java Language
1. Overview of the Java Language What Is the Java Technology? Java technology is: A programming language A development environment An application environment A deployment environment It is similar in syntax
More information2 Introduction to Java. Introduction to Programming 1 1
2 Introduction to Java Introduction to Programming 1 1 Objectives At the end of the lesson, the student should be able to: Describe the features of Java technology such as the Java virtual machine, garbage
More informationAutomated Detection of Non-Termination and NullPointerExceptions for Java Bytecode
Automated Detection of Non-Termination and NullPointerExceptions for Java Bytecode Marc Brockschmidt, Thomas Ströder, Carsten Otto, and Jürgen Giesl LuFG Informatik 2, RWTH Aachen University, Germany Abstract.
More informationStudy of Java Card and its Application 1 Nainesh Rawani, 2 Akhil Patel
Study of Java Card and its Application 1 Nainesh Rawani, 2 Akhil Patel nainesh279@gmail.com 1,2 Information Technology Department, 1,2 Gujarat Technological University, Gujarat, India. Abstract: Sun Microsystems
More informationGarbage Collection in the Java HotSpot Virtual Machine
http://www.devx.com Printed from http://www.devx.com/java/article/21977/1954 Garbage Collection in the Java HotSpot Virtual Machine Gain a better understanding of how garbage collection in the Java HotSpot
More informationThe Tangled Web of Agricultural Insurance: Evaluating the Impacts of Government Policy
The Tangled Web o Agricultural Insurance: Evaluating the Impacts o Government Policy Jason Pearcy Vincent Smith July 7, 2015 Abstract This paper examines the eects o changes in major elements o the U.S.
More informationInstruction Set Design
Instruction Set Design Instruction Set Architecture: to what purpose? ISA provides the level of abstraction between the software and the hardware One of the most important abstraction in CS It s narrow,
More informationA Two Step Approach in the Development of a Java Silicon Machine (JSM) for Small Embedded Systems
A Two Step Approach in the Development of a Java Silicon Machine (JSM) for Small Embedded Systems H. Ploog R. Kraudelt N. Bannow T. Rachui F. Golatowski D. Timmermann Department of Electrical Engineering
More informationA Java Virtual Machine Architecture for Very Small Devices
A Java Virtual Machine Architecture for Very Small Devices Nik Shaylor Sun Microsystems Research Laboratories 2600 Casey Avenue Mountain View, CA 94043 USA nik.shaylor@sun.com Douglas N. Simon Sun Microsystems
More informationChapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
More informationSection II. Hardware Abstraction Layer
Section II. Hardware Abstraction Layer This section describes the Nios II hardware abstraction layer (HAL). It includes the ollowing chapters: Chapter 5, Overview o the Hardware Abstraction Layer Chapter
More informationRedpaper. Performance Metrics in TotalStorage Productivity Center Performance Reports. Introduction. Mary Lovelace
Redpaper Mary Lovelace Performance Metrics in TotalStorage Productivity Center Performance Reports Introduction This Redpaper contains the TotalStorage Productivity Center performance metrics that are
More informationCombinational-Circuit Building Blocks
May 9, 24 :4 vra6857_ch6 Sheet number Page number 35 black chapter 6 Combinational-Circuit Building Blocks Chapter Objectives In this chapter you will learn about: Commonly used combinational subcircuits
More informationJava Card TM Open Platform for Smart Cards
Java Card TM Open Platform for Smart Cards Wolfgang Effing Giesecke & Devrient GmbH C:\Presentations - JavaCard_OpenPlatform.ppt - ef - 29.04.04 - page 1 What happened in the past? Every company created
More informationPhysical Data Organization
Physical Data Organization Database design using logical model of the database - appropriate level for users to focus on - user independence from implementation details Performance - other major factor
More information1 The Java Virtual Machine
1 The Java Virtual Machine About the Spec Format This document describes the Java virtual machine and the instruction set. In this introduction, each component of the machine is briefly described. This
More informationCost Model: Work, Span and Parallelism. 1 The RAM model for sequential computation:
CSE341T 08/31/2015 Lecture 3 Cost Model: Work, Span and Parallelism In this lecture, we will look at how one analyze a parallel program written using Cilk Plus. When we analyze the cost of an algorithm
More informationJava Virtual-Machine Support for Portable Worst-Case Execution-Time Analysis
Java Virtual-Machine Support for Portable Worst-Case Execution-Time Analysis I. Bate, G. Bernat Department of Computer Science University of York York, YO10 5DD, UK iain.bate, bernat @cs.york.ac.uk P.
More informationJava CPD (I) Frans Coenen Department of Computer Science
Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials
More informationGeneral Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
More informationEffective Java Programming. efficient software development
Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of
More informationCall Tracking & Google Analytics Integration
Call Tracking & Google Analytics Integration A How to Guide Table o contents Integrating call tracking with web data Why? The beneits What you need to get started Virtual Telephone Numbers A Google Analytics
More informationPatch management is a crucial component of information security management. An important problem within
MANAGEMENT SCIENCE Vol. 54, No. 4, April 2008, pp. 657 670 issn 0025-1909 eissn 1526-5501 08 5404 0657 inorms doi 10.1287/mnsc.1070.0794 2008 INFORMS Security Patch Management: Share the Burden or Share
More informationTheoretical Computer Science
Theoretical Computer Science 410 (2009) 4489 4503 Contents lists available at ScienceDirect Theoretical Computer Science journal homepage: www.elsevier.com/locate/tcs A push relabel approximation algorithm
More informationTime-Optimal Online Trajectory Generator for Robotic Manipulators
Time-Optimal Online Trajectory Generator or Robotic Manipulators Francisco Ramos, Mohanarajah Gajamohan, Nico Huebel and Raaello D Andrea Abstract This work presents a trajectory generator or time-optimal
More informationAN 589: Using the Design Security Feature in Cyclone III LS Devices
AN 589: Using the Design Security Feature in Cyclone III LS Devices July 2012 AN-589-1.1 This application note describes the design security eature in Cyclone III LS devices. The design security eature
More informationDynamic Resource Allocation in Software Defined and Virtual Networks: A Comparative Analysis
Dynamic Resource Allocation in Software Defined and Virtual Networks: A Comparative Analysis Felipe Augusto Nunes de Oliveira - GRR20112021 João Victor Tozatti Risso - GRR20120726 Abstract. The increasing
More informationPerformance Evaluation of Java Card Bytecodes
Performance Evaluation of Java Card Bytecodes Pierre Paradinas 1, Julien Cordry 2, and Samia Bouzefrane 2 1 INRIA Rocquencourt 78150 Le Chesnay France Pierre.Paradinas@inria.fr 2 CNAM 292 rue Saint-Martin
More informationAn Epicor White Paper. Improve Scheduling, Production, and Quality Using Cloud ERP
An Epicor White Paper Improve Scheduling, Production, and Quality Using Cloud ERP Table o Contents Introduction...1 Best Practices or Discrete anuacturers...2 Inventory-based manuacturing...2 Discrete
More informationSecurity Technology for Smartphones
Security Technology for Smartphones Yasuhiko Abe Hitoshi Ikeda Masafumi Emura Service functions are implemented on smartphones by storing on them personal information, network-operator information, corporate
More information