Research on On-card Bytecode Verifier for Java Cards

Size: px
Start display at page:

Download "Research on On-card Bytecode Verifier for Java Cards"

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

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 information

picojava TM : A Hardware Implementation of the Java Virtual Machine

picojava 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 information

02 B The Java Virtual Machine

02 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 information

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters

Interpreters 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 information

Chapter 7D The Java Virtual Machine

Chapter 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 information

A FRAMEWORK FOR AUTOMATIC FUNCTION POINT COUNTING

A 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 information

An evaluation of the Java Card environment

An 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 information

2. Developing Nios II Software

2. 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 information

Cloud Computing. Up until now

Cloud 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 information

8. Exception Handling

8. 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 information

Maintenance Scheduling Optimization for 30kt Heavy Haul Combined Train in Daqin Railway

Maintenance 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 information

Is the trailing-stop strategy always good for stock trading?

Is 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 information

1. Overview of Nios II Embedded Development

1. 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 information

A performance analysis of EtherCAT and PROFINET IRT

A 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 information

Checking Access to Protected Members in the Java Virtual Machine

Checking 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 information

System-Level Security for Network Processors with Hardware Monitors

System-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 information

Power functions: f(x) = x n, n is a natural number The graphs of some power functions are given below. n- even n- odd

Power 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 information

Java Card. Smartcards. Demos. . p.1/30

Java 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 information

2. Getting Started with the Graphical User Interface

2. 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 information

A 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 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 information

SIMPLIFIED CBA CONCEPT AND EXPRESS CHOICE METHOD FOR INTEGRATED NETWORK MANAGEMENT SYSTEM

SIMPLIFIED 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 information

Copyright 2005 IEEE. Reprinted from IEEE MTT-S International Microwave Symposium 2005

Copyright 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 information

Types of Separated Java Bytecode

Types 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 : 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 information

1. Overview of Nios II Embedded Development

1. 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 information

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

Reconfigurable 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 information

Jonathan Worthington Scarborough Linux User Group

Jonathan 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 information

Java Smart Cards as a Platform for Electronic Commerce

Java 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 information

Smart Cards a(s) Safety Critical Systems

Smart 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 information

Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert

Fachbereich 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 information

THE MODELING AND CALCULATION OF SOUND RADIATION FROM FACILITIES WITH GAS FLOWED PIPES INTRODUCTION

THE 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 information

language 1 (source) compiler language 2 (target) Figure 1: Compiling a program

language 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 information

Application-Level Optimizations on NUMA Multicore Architectures: the Apache Case Study

Application-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 information

Exponential Functions

Exponential 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 information

Can You Trust Your JVM Diagnostic Tools?

Can 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 information

Using quantum computing to realize the Fourier Transform in computer vision applications

Using 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 information

Code Generation for High-Assurance Java Card Applets

Code 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 information

The 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 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 information

Integrated airline scheduling

Integrated 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 information

The Hotspot Java Virtual Machine: Memory and Architecture

The 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 information

A MPCP-Based Centralized Rate Control Method for Mobile Stations in FiWi Access Networks

A 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 information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. 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 information

A3 Computer Architecture

A3 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 information

Security Architecture and Verification of Java Bytecode

Security 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 information

International Journal of Pure and Applied Sciences and Technology

International 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 information

The Complex Step Method Applied to Waterflooding Optimization

The 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 information

C Compiler Targeting the Java Virtual Machine

C 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 information

CHAPTER 7: The CPU and Memory

CHAPTER 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 information

Accommodating Transient Connectivity in Ad Hoc and Mobile Settings

Accommodating 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 information

The Tangled Web of Agricultural Insurance: Evaluating the Impacts of Government Policy

The 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 information

Development and application of lightweight cloud platform workflow system

Development 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 information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last 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 information

Towards the Hardware Accelerated Defensive Virtual Machine - Type and Bound Protection

Towards 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 information

Manufacturing and Fractional Cell Formation Using the Modified Binary Digit Grouping Algorithm

Manufacturing 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 information

FIXED INCOME ATTRIBUTION

FIXED 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 information

2) Write in detail the issues in the design of code generator.

2) 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 - 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 information

University of Twente. A simulation of the Java Virtual Machine using graph grammars

University 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 information

Hardware/Software Co-Design of a Java Virtual Machine

Hardware/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 information

Solving Newton s Second Law Problems

Solving 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 information

8-Bit Flash Microcontroller for Smart Cards. AT89SCXXXXA Summary. Features. Description. Complete datasheet available under NDA

8-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 information

Introduction to Embedded Systems. Software Update Problem

Introduction 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 information

Financial Services [Applications]

Financial 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 information

v11 v12 v8 v6 v10 v13

v11 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 information

JavaCard. Java Card - old vs new

JavaCard. 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 information

FPGA area allocation for parallel C applications

FPGA 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 information

Merkle Hash Trees for Distributed Audit Logs

Merkle 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 information

Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors

Armed 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 information

HVM TP : A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014

HVM 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 information

A Tabu Search Algorithm for the Parallel Assembly Line Balancing Problem

A 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 information

1. Overview of the Java Language

1. 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 information

2 Introduction to Java. Introduction to Programming 1 1

2 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 information

Automated Detection of Non-Termination and NullPointerExceptions for Java Bytecode

Automated 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 information

Study 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 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 information

Garbage Collection in the Java HotSpot Virtual Machine

Garbage 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 information

The Tangled Web of Agricultural Insurance: Evaluating the Impacts of Government Policy

The 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 information

Instruction Set Design

Instruction 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 information

A 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 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 information

A Java Virtual Machine Architecture for Very Small Devices

A 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 information

Chapter 3 Operating-System Structures

Chapter 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 information

Section II. Hardware Abstraction Layer

Section 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 information

Redpaper. Performance Metrics in TotalStorage Productivity Center Performance Reports. Introduction. Mary Lovelace

Redpaper. 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 information

Combinational-Circuit Building Blocks

Combinational-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 information

Java Card TM Open Platform for Smart Cards

Java 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 information

Physical Data Organization

Physical 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 information

1 The Java Virtual Machine

1 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 information

Cost Model: Work, Span and Parallelism. 1 The RAM model for sequential computation:

Cost 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 information

Java Virtual-Machine Support for Portable Worst-Case Execution-Time Analysis

Java 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 information

Java CPD (I) Frans Coenen Department of Computer Science

Java 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 information

General Introduction

General 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 information

Effective Java Programming. efficient software development

Effective 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 information

Call Tracking & Google Analytics Integration

Call 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 information

Patch management is a crucial component of information security management. An important problem within

Patch 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 information

Theoretical Computer Science

Theoretical 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 information

Time-Optimal Online Trajectory Generator for Robotic Manipulators

Time-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 information

AN 589: Using the Design Security Feature in Cyclone III LS Devices

AN 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 information

Dynamic Resource Allocation in Software Defined and Virtual Networks: A Comparative Analysis

Dynamic 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 information

Performance Evaluation of Java Card Bytecodes

Performance 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 information

An Epicor White Paper. Improve Scheduling, Production, and Quality Using Cloud ERP

An 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 information

Security Technology for Smartphones

Security 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