An evaluation of the Java Card environment
|
|
|
- Anna Gray
- 9 years ago
- Views:
Transcription
1 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 St Ismier Cedex, France Phone: , Fax: [email protected] Advanced Topic Workshop: Middleware for Mobile Computing November 16, 2001 Heidelberg, Germany Abstract In this paper, we present the experiment we have conducted to evaluate the suitability of Java cards for advanced applications. We developed a resource-consuming application in a Java card using only the specified Java Card environment, and noted which missing features could have been useful to improve the functionalities of our application or to ease its development. We then propose new system services to improve the Java Card environment. 1 Introduction The advent of the Java Card technology [1] in 1996 opened new perspectives for smart card application providers. However, the use of Java cards has mostly been reduced to small applications, like electronic wallets or ID cards, for which their potential does not appear to be completely used. It therefore seems interesting to try and evaluate the Java Card environment for programming bigger applications. Since hardware limitations are bound to disappear as manufacturing techniques improve, we only focus on software limitations in this paper. We developed a resource-consuming application and noted the limitations of the Java Card environment which hindered the development. This experiment enabled us to identify new system systems for the Java Card environment which might be needed to ease the development of advanced applications. We first present the Java Card environment. Then we describe our application and point out the limitations of the Java Card environment which caused us problems during the development of the application. Finally, we propose new system services to improve the Java Card environment and address the problems previously identified. 2 The Java Card environment A Java card is essentially an Integrated Circuit Card (ICC) with an embedded Java Virtual Machine. The Central Processing Unit (CPU) can access three different types of memory: a Université Joseph Fourier (Joseph Fourier University), Grenoble, France Institut National de Recherche en Informatique et en Automatique (French National Institute for Research in Computer Science and Control), Grenoble, France 1
2 persistent read-only memory (ROM) which usually contains a basic operating system and the greatest part of the Java runtime environment, a persistent read-write memory (EEPROM) which can be used to store code or data even when the card is removed from the reader, and a volatile read-write memory (RAM) in which applications are executed. Java Card applications are written using the Java Card language. This language is a subset of the Java language [2]. Noticeable restrictions concern the primitive types available which are limited to booleans, bytes and shorts, and arrays which must be linear. Since Java Card applets are compiled using a plain Java compiler, they must undertake an additional checking phase to verify that they comply with the previous restrictions. Due to limitations of the Java Card class loader, the class files must then be converted to a simpler binary format before being loaded on the card. On the card, applets are executed in the Java Card Runtime Environment (JCRE) [3]. The JCRE includes the Java Card Virtual Machine (JCVM) [4], the Java Card Application Programming Interface (API) [5] classes and support services like the applet loader for example. Due to the small quantity of memory available on the card, the JCVM is significantly restricted compared to the Java Virtual Machine [6]. Main differences include no dynamic class loading, no garbage collection, and no support for multiple threads of control. The Java Card API is also very limited. Java Card applets are composed of two parts: a server part on the card and a client part run on the terminal linked to the reader. This client/server scheme is based on a low level protocol of communication through message exchanging. Application Protocol Data Units (APDUs) are sent by the terminal to the card to issue commands and the card send back responses in the same way. It is important to note that the card can only send APDUs as responses to a client request and cannot call the terminal on its own initiative. Before being usable, the server part of an applet must be loaded on the card. This operation is done by the applet installer, which is usually an applet dedicated to that use provided by the card manufacturer. Once loaded, an applet is initialised by calling the method install that all Java Card applets must implement. This method is usually used to allocate static fields and initialised them. It must finish by calling the method register which notifies the JCRE of the new installed applet. Since the card may contain several applications, the JCRE must maintain a list of all installed applets. Once it has been initialised, the client can select an applet by sending a select APDU to the JCRE which in turn calls the method select of the applet. This method can be used to initialise data that must be initialised every time the applet is run (and not only once when it is installed). Then the client can send command APDUs to the JCRE which passes them to the method process of the applet. The method corresponding to the command APDU sent by the client is then called and possibly returns a result. This result can be sent back to the client in a response APDU. Finally, the client can select another applet by first calling the deselect method of the applet through a deselect APDU and then selecting the new applet. 3 Application example To test the suitability of smart cards for real applications, we have developed a car driver s assistant application. This application becomes more and more common nowadays, even in cheap cars. The user simply enters his destination and guidance information is displayed on a screen and updated as the car moves. This application is based on three hardware components: the Java card on which the application runs, the terminal embedded in the car which is composed of a screen, a keyboard and of course a Java card reader, and the GPS which gives the current position of the car to the application. A wireless network connection can optionally be added, to allow dynamic downloading of maps for example. 2
3 Sons per Best path length node Figure 1: Computation times in the card (times are in seconds) Sons per Best path length node Figure 2: Computation times on the PC (times are in milliseconds) 3.1 Execution scheme The application provider sells a Java card which contains the application and the maps of several towns. The user inserts his card into the terminal and selects his destination from the proposed list. The map of the current town is explored (i.e. the application computes the best path from the current location to the appropriate town exit to get to the next town) and guidance information are displayed as the car moves. When the car reaches the town exit, the map of the next town is explored and so on until the user reaches his destination. Additional maps can be added after the card issuance, for example by downloading them from the application provider s web site into the card if the terminal include a wireless network connection. We chose this application as an example since it is memory and CPU-time expensive. The maps are represented as graphs, which consume a significant amount of memory when representing large maps. Moreover, the map-solving algorithm is a simple width-first search of the graph, a rather slow and memory-consuming algorithm on a smart card. One must note though that this application is not meant to be realistic and that alternative architectures could be devised to achieve much higher performances. We purposely chose a resource-consuming architecture to push the Java Card environment to its limits, not a realistic example to illustrate its use. 3.2 Prototyping issues We developed this application using Gemplus GemXpresso RAD 211 [7]. The Java card used includes an eight bits processor running at 5 MHz, 32 KB of ROM, 32 KB of EEPROM, and 2 KB of RAM. The embedded Java Card environment is compliant with the Sun Java Card 2.1 Specifications. The application is divided in two parts: the client part (on the terminal) which includes a graphic user interface, and the server part (in the Java card) which comprise the main application code. The client part (approximately 1300 lines) is written in standard Java 2 whereas the server part (around 540 lines) is subject to the restrictions of the Java Card language. We performed some benchmarks to compare the performance of our application in the card and on a standard personal computer (i.e. a PC with an Intel Pentium II processor and 128 MB of RAM). Since the most time consuming part of the application is the search for the best path in a map, we choose to monitor that function on both platforms. The parameters the most interesting to make vary are the maximum number of sons per nodes and the length of the best path computed since the maps are represented as graphs. We give in Figure 1 and Figure 2 the results of these benchmarks for the function in the card and on the PC. 3
4 3.3 Prototyping constraints The major problem we had to deal with was obviously the lack of memory in the card. The maps we used to test the application included approximately 20 nodes and the temporary data needed to find the best path in a town filled all the available memory. The algorithm used to find the optimal path is a simple breadth-first search of the tree representing the possible paths in the map, which requires an array to store the nodes of the same level during the search. Since the size of this array grows exponentially with the height of the tree, it soon becomes to big to fit in the card. Moreover, since the JCRE does not include a garbage collector, all object allocations must be done at installation time (i.e. when the application is downloaded in the card) and not at run time. Since the objects are never unallocated, reallocating them each time the application is run would quickly fill the card memory. So we had to know when we developed the application the size of all the arrays we used. This was impossible for some, since their size depended on an user input. This constrained us to set the sizes of these arrays to their maximum possible value, which worsened the memory shortage problem described above. Another problem we encountered concerns the lack of any dynamic remote class loading mechanism in the JCRE, which prevented us from improving the flexibility of our application. For example, if the application provider wants to modify the format of his maps, he must update the application embedded in the cards. The first way to do it would be to recall all the issued cards, which would be very expensive, and bothersome for users. Another way would be for the application to update itself automatically. For example, if the application connect to the application provider web site to download a map using the optional wireless network connection, it can detect that a new format is available, and download the code plug-in that will enable it to read that new format and translate it in its own internal format. To do that, a dynamic remote class loading mechanism would be necessary since the JCRE would have to download and link the code plug-in to the application. Unfortunately, this service is not available in the JCRE. In our application, the terminal is only used for user interaction and as a gateway for the GPS. Since the main operations (i.e.: finding the best path,...) are executed in the card, it would be logical to consider the card as the client to the terminal which would act only as an input/output device. Unfortunately, the Java Card communication model imposes that all commands come from the application on the terminal (i.e. the applet in the card can only response to commands and never issue them). This master/slave model is constraining for the design of an application since it forces a code architecture which might not be the one which the programmer would like to set up. Finally, the communication scheme between the terminal and the card is not very comfortable to use. As we have seen above, it is based on APDUs exchange. Unfortunately, the maximum length of these APDUs (approximately 250 bytes) makes the passing of large arguments (e.g.: arrays, complex objects,...) to a method on the card rather tedious since these arguments must be split by the client and then merged again on the card. Moreover, methods on the card cannot be called directly (i.e.: by using their symbolic name) and they must be assigned an identifier (an integer) which the client includes in the APDU to select the method it wants to call. It is then the task of the process method to decode the APDU and call the chosen method. 3.4 Synthesis We can differentiate the hardware and software limitations detailed above. The memory size and CPU power limitations are bound to be suppressed as the card manufacturers improve their miniaturization techniques (recent cards now include as much as 2 MB of persistent memory). So our study focuses only on software limitations and we expect the following services to be realistic on recent hardware. 4
5 4 Missing services In this section, we present the new system services that could be added to the JCRE to improve its features or ease of use. It should be noted that we were not able to actually implement any of these services on a Java Card since to our knowledge there does not exist any open-source Java Card Virtual Machine. Moreover, empty ICCs are not sold freely to prevent credit card piracy. Therefore, our propositions remain empirical, but we expect recent hardware progresses to cope with the additional cost induced by the implementation of these services in the JCVM. 4.1 Improved communications between the terminal and the card Remote method invocation Providing a remote method invocation service, like the one included in the Java 2 Platform, would greatly improve the programmer s comfort and efficiency, since he would not have to cope with APDUs which are uncomfortable to use. This service is sometime supplied by card manufacturers, but since it is not yet specified in the Java Card Platform, all these proprietary implementations are incompatible with one another. Examples of such proprietary implementations include Gemplus DMI [8] Reversing the client/server scheme With the communication protocol specified in the Java Card platform, the methods on the card are inherently passive: they can be called and return a result but they cannot call a method on the terminal on their own initiative. This scheme can be unsuited for application for which the main program should logically be located in the card. It might be interesting then to reverse this master/slave model. Allowing nested method invocations might also be interesting, though it might require support for multi-threading in the JCRE if the card is allowed to issue the first command. 4.2 Dynamic class loading The standard Java 2 environment provides a mechanism which enables the Java Virtual Machine to download remote classes and link them dynamically when they are needed (this mechanism is used by the Java Remote Method Invocation [9] protocol for example). The JCRE does not provide such a service. The applet installer can load applets on the card and call their install method, but it cannot be invocated by another applet since it is usually an applet itself and to select it would mean deselecting the other applet, thus losing its execution stack. So this applet installer cannot be used to dynamically load classes like it can be done in the Java 2 Platform. Providing such a service could be interesting, for example to update applications as we have seen above. 4.3 Advanced memory system The Java Card memory system is very restrictive compared to the Java 2 platform. As we have seen above, objects must be allocated at installation time since they cannot be unallocated. A garbage collector could be implemented to enable object unallocation. Since the JCVM is monothreaded, this garbage collector would not be able to work will another applet is running, but it could be called in the deselect method for example. Thus, an applet could allocate objects dynamically during its execution and these objects would be unallocated when it terminates. However, the main problem with Java cards remains the very small size of memory available. Technical limitations complicate the installation of memory, especially RAM, on small devices like smart cards. So it could be interesting to study a swapping system which would use the 5
6 memory installed on the terminal to discharge the memory on the card. Such a service is economically interesting since buying a few megabytes of RAM for a PC for example is very cheap compared to the cost of memory for smart cards. This service could be implemented in the operating system, in which case it would probably be similar to existing swapping systems in UNIX or Windows and would swap pages of memory. Or it could be a part of the JCVM which would enable it to swap whole objects. In that last case, a serialization service would be necessary to save and restore the state of swapped objects. 5 Conclusion As we have tried and shown in this paper, the Java Card environment is still very limited compared to the standard Java 2 environment. The memory system limitations are very constraining for the programmer and the lack of a dynamic remote class loading mechanism forbids whole types of applications. Extending the Java Card environment with advanced system services is therefore necessary if it is to be used for realistic applications. The cost of these services remains a pending question, but recent progresses in hardware let us believe that their implementation should not be too penalizing in term of resource-consumption. By providing these extensions to their virtual machines, Java cards manufacturers would enable advanced applications to be developed, thus finally exploiting fully the potential of smart cards. References [1] Java Card Technology home page. Sun Microsystems, Inc. [2] The Java Language Specification, Second Edition. James Gosling, Bill Joy, Guy Steele, Gilad Bracha. Addison-Wesley, June [3] Java Card 2.1 Runtime Environment (JCRE) Specification. Sun Microsystems, Inc. February [4] Java Card 2.1 Virtual Machine Specification. Sun Microsystems, Inc. March [5] Java Card 2.1 Application Programming Interface. Sun Microsystems, Inc. February [6] The Java Virtual Machine Specification, Second Edition. Tim Lindholm, Frank Yellin. Addison-Wesley, April [7] GemXpresso 211 product sheet. Gemplus. products/gemxpresso rad211/index.htm. [8] Direct Method Invocation. Jean-Jacques Vandewalle, Gemplus. [9] Java Remote Method Invocation Specification. Sun Microsystems. December
A Java-based system support for distributed applications on the Internet
A Java-based system support for distributed applications on the Internet D. Hagimont 1, D. Louvegnies 2 SIRAC Project INRIA, 655 av. de l Europe, 38330 Montbonnot Saint-Martin, France Abstract: We have
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
Smart Cards a(s) Safety Critical Systems
Smart Cards a(s) Safety Critical Systems Gemplus Labs Pierre.Paradinas [email protected] Agenda Smart Card Technologies Java Card TM Smart Card a specific domain Card Life cycle Our Technical and Business
Smart Card Application Development Using the Java Card Technology
Smart Card Application Development Using the Java Card Technology Milan Fort RWTH Aachen Abstract Through their combination of portability and security, smart cards are playing an increasingly important
RVS Seminar Deployment and Performance Analysis of JavaCards in a Heterogenous Environment. Carolin Latze University of Berne
RVS Seminar Deployment and Performance Analysis of JavaCards in a Heterogenous Environment Carolin Latze University of Berne Table of contents > Introduction Smartcards > Deployment Overview Linux Windows
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
Loyalty Systems over Near Field Communication (NFC)
Loyalty Systems over Near Field Communication (NFC) Diogo Simões IST - Technical University of Lisbon Av. Prof. Cavaco Silva Tagus Park 2780-990 Porto Salvo, Portugal [email protected] Abstract.
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 [email protected] Micaela Serra University of Victoria
Management Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System?
Management Challenge Managing Hardware Assets What computer processing and storage capability does our organization need to handle its information and business transactions? What arrangement of computers
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
FileMaker 11. ODBC and JDBC Guide
FileMaker 11 ODBC and JDBC Guide 2004 2010 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker, Inc. registered
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 [email protected] Micaela Serra
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 [email protected] 1,2 Information Technology Department, 1,2 Gujarat Technological University, Gujarat, India. Abstract: Sun Microsystems
Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design
Java in Education Introduction Choosing appropriate tool for creating multimedia is the first step in multimedia design and production. Various tools that are used by educators, designers and programmers
JPURE - A PURIFIED JAVA EXECUTION ENVIRONMENT FOR CONTROLLER NETWORKS 1
JPURE - A PURIFIED JAVA EXECUTION ENVIRONMENT FOR CONTROLLER NETWORKS 1 Danilo Beuche, Lars Büttner, Daniel Mahrenholz, Wolfgang Schröder-Preikschat, Friedrich Schön* University of Magdeburg * GMD-FIRST
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
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
JCAT. Java Card TM. An environment for attack and test on. Serge Chaumette, Iban Hatchondo, Damien Sauveron CCCT 03 & ISAS 03
CCCT 03 & ISAS 03 JCAT An environment for attack and test on Java Card TM Serge Chaumette, Iban Hatchondo, http:/www.labri.fr/~sauveron/ 2 nd august 2003 Plan 1) The Java Card Security project Context
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,
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,
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
Instrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
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 [email protected] 2 CNAM 292 rue Saint-Martin
Building Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
A Real Time, Object Oriented Fieldbus Management System
A Real Time, Object Oriented Fieldbus Management System Mr. Ole Cramer Nielsen Managing Director PROCES-DATA Supervisor International P-NET User Organisation Navervej 8 8600 Silkeborg Denmark [email protected]
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
CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
Discovering Computers 2011. Living in a Digital World
Discovering Computers 2011 Living in a Digital World Objectives Overview Differentiate among various styles of system units on desktop computers, notebook computers, and mobile devices Identify chips,
How To Install An Aneka Cloud On A Windows 7 Computer (For Free)
MANJRASOFT PTY LTD Aneka 3.0 Manjrasoft 5/13/2013 This document describes in detail the steps involved in installing and configuring an Aneka Cloud. It covers the prerequisites for the installation, the
Software: Systems and Application Software
Software: Systems and Application Software Computer Software Operating System Popular Operating Systems Language Translators Utility Programs Applications Programs Types of Application Software Personal
Stream Processing on GPUs Using Distributed Multimedia Middleware
Stream Processing on GPUs Using Distributed Multimedia Middleware Michael Repplinger 1,2, and Philipp Slusallek 1,2 1 Computer Graphics Lab, Saarland University, Saarbrücken, Germany 2 German Research
Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.
Objectives The Central Processing Unit: What Goes on Inside the Computer Chapter 4 Identify the components of the central processing unit and how they work together and interact with memory Describe how
EFFECTIVE QUERY RETRIEVAL SYSTEM IN MOBILE BUSINESS ENVIRONMENT
EFFECTIVE QUERY RETRIEVAL SYSTEM IN MOBILE BUSINESS ENVIRONMENT 1 R.Sivaraman, 2 RM.Chandrasekaran 1 Dy.Director, Center for Convergence of Technologies (CCT), Anna University Tiruchirappalli, Tiruchirappalli,
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
Chapter 4 System Unit Components. Discovering Computers 2012. Your Interactive Guide to the Digital World
Chapter 4 System Unit Components Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate among various styles of system units on desktop computers, notebook
DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service
DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service Achieving Scalability and High Availability Abstract DB2 Connect Enterprise Edition for Windows NT provides fast and robust connectivity
SecureDoc Disk Encryption Cryptographic Engine
SecureDoc Disk Encryption Cryptographic Engine FIPS 140-2 Non-Proprietary Security Policy Abstract: This document specifies Security Policy enforced by SecureDoc Cryptographic Engine compliant with the
Embedded Software development Process and Tools: Lesson-3 Host and Target Machines
Embedded Software development Process and Tools: Lesson-3 Host and Target Machines 1 1. Host-Target Based Development Approach 2 Host-Target System Development Approach During development process, a host
AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping
AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping 3.1.1 Constants, variables and data types Understand what is mean by terms data and information Be able to describe the difference
Study and installation of a VOIP service on ipaq in Linux environment
Study and installation of a VOIP service on ipaq in Linux environment Volkan Altuntas Chaba Ballo Olivier Dole Jean-Romain Gotteland ENSEIRB 2002 Summary 1. Introduction 2. Presentation a. ipaq s characteristics
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
Chapter 3: Operating-System Structures. Common System Components
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1
From Digital Television to Internet? A general technical overview of the- DVB- Multimedia Home Platform Specifications
From Digital Television to Internet? A general technical overview of the- DVB- Multimedia Home Platform Specifications Vita Hinze-Hoare Abstract This paper provides a general technical overview of the
Managing a Geographic Database From Mobile Devices Through OGC Web Services
Managing a Geographic Database From Mobile Devices Through OGC Web Services Nieves R. Brisaboa 1, Miguel R. Luaces 1, Jose R. Parama 1, and Jose R. Viqueira 2 1 Database Laboratory, University of A Coruña,
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.
Computer Systems Structure Input/Output
Computer Systems Structure Input/Output Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output Ward 1 Ward 2 Examples of I/O Devices
Mobile Operating Systems. Week I
Mobile Operating Systems Week I Overview Introduction Mobile Operating System Structure Mobile Operating System Platforms Java ME Platform Palm OS Symbian OS Linux OS Windows Mobile OS BlackBerry OS iphone
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
Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications
Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications White Paper Table of Contents Overview...3 Replication Types Supported...3 Set-up &
Enterprise Server. Application Sentinel for SQL Server Installation and Configuration Guide. Application Sentinel 2.0 and Higher
Enterprise Server Application Sentinel for SQL Server Installation and Configuration Guide Application Sentinel 2.0 and Higher August 2004 Printed in USA 3832 1097 000 . Enterprise Server Application Sentinel
FileMaker Server 7. Administrator s Guide. For Windows and Mac OS
FileMaker Server 7 Administrator s Guide For Windows and Mac OS 1994-2004, FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark
Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication
01PC-422 Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication Pascal Jost IAS, University of Stuttgart, Germany Stephan Hoffmann Vector CANtech Inc., USA Copyright
Computer Architecture. Secure communication and encryption.
Computer Architecture. Secure communication and encryption. Eugeniy E. Mikhailov The College of William & Mary Lecture 28 Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 1 / 13 Computer architecture
Selection Criteria for ZigBee Development Kits
Selection Criteria for ZigBee Development Kits This article gives an overview about different considerations, when it comes to prioritizing ZigBee Development Kits, supplied by different vendors. Before
Driving force. What future software needs. Potential research topics
Improving Software Robustness and Efficiency Driving force Processor core clock speed reach practical limit ~4GHz (power issue) Percentage of sustainable # of active transistors decrease; Increase in #
OPERATING SYSTEM - MEMORY MANAGEMENT
OPERATING SYSTEM - MEMORY MANAGEMENT http://www.tutorialspoint.com/operating_system/os_memory_management.htm Copyright tutorialspoint.com Memory management is the functionality of an operating system which
C# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
Real-time Java Processor for Monitoring and Test
Real-time Java Processor for Monitoring and Test Martin Zabel, Thomas B. Preußer, Rainer G. Spallek Technische Universität Dresden {zabel,preusser,rgs}@ite.inf.tu-dresden.de Abstract This paper introduces
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/
A+ Guide to Managing and Maintaining Your PC, 7e. Chapter 1 Introducing Hardware
A+ Guide to Managing and Maintaining Your PC, 7e Chapter 1 Introducing Hardware Objectives Learn that a computer requires both hardware and software to work Learn about the many different hardware components
Byte code Interpreter for 8051 Microcontroller
Byte code Interpreter for 8051 Microcontroller N. Jeenjun S. Khuntaweetep and S. Somkuarnpanit Abstract This paper proposes a design of byte code interpreter for 8051 microcontroller. We developed a program
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
What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.
What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications. 2 Contents: Abstract 3 What does DDS do 3 The Strengths of DDS 4
Characterizing Java Virtual Machine for More Efficient Processor Power Management. Abstract
Characterizing Java Virtual Machine for More Efficient Processor Power Management Marcelo S. Quijano, Lide Duan Department of Electrical and Computer Engineering University of Texas at San Antonio [email protected],
FileMaker 12. ODBC and JDBC Guide
FileMaker 12 ODBC and JDBC Guide 2004 2012 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and Bento are trademarks of FileMaker, Inc.
A3 Computer Architecture
A3 Computer Architecture Engineering Science 3rd year A3 Lectures Prof David Murray [email protected] www.robots.ox.ac.uk/ dwm/courses/3co Michaelmas 2000 1 / 1 6. Stacks, Subroutines, and Memory
Chapter 12 Programming Concepts and Languages
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
Your Mobile Phone as a Ticket (NFC)
Your Mobile Phone as a Ticket (NFC) Francisco Maria van Uden Chaves IST - Technical University of Lisbon Av. Prof. Cavaco Silva Tagus Park 2780-990 Porto Salvo, Portugal [email protected] Abstract.
Extending the Internet of Things to IPv6 with Software Defined Networking
Extending the Internet of Things to IPv6 with Software Defined Networking Abstract [WHITE PAPER] Pedro Martinez-Julia, Antonio F. Skarmeta {pedromj,skarmeta}@um.es The flexibility and general programmability
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
Contents. Preparation/SetUp...2
LAN Control Utility User Manual (for MH850U) Contents Preparation/SetUp... Preparation before using the network function... Connection...3 Installation...3 Setting the IP address of the projector...5 When
CHAPTER 1 ENGINEERING PROBLEM SOLVING. Copyright 2013 Pearson Education, Inc.
CHAPTER 1 ENGINEERING PROBLEM SOLVING Computing Systems: Hardware and Software The processor : controls all the parts such as memory devices and inputs/outputs. The Arithmetic Logic Unit (ALU) : performs
Raima Database Manager Version 14.0 In-memory Database Engine
+ Raima Database Manager Version 14.0 In-memory Database Engine By Jeffrey R. Parsons, Senior Engineer January 2016 Abstract Raima Database Manager (RDM) v14.0 contains an all new data storage engine optimized
Data Management for Portable Media Players
Data Management for Portable Media Players Table of Contents Introduction...2 The New Role of Database...3 Design Considerations...3 Hardware Limitations...3 Value of a Lightweight Relational Database...4
Persistent Binary Search Trees
Persistent Binary Search Trees Datastructures, UvA. May 30, 2008 0440949, Andreas van Cranenburgh Abstract A persistent binary tree allows access to all previous versions of the tree. This paper presents
COMPUTER BASICS. Seema Sirpal Delhi University Computer Centre
COMPUTER BASICS Seema Sirpal Delhi University Computer Centre What is a Computer? An electronic device that stores, retrieves, and processes data, and can be programmed with instructions. A computer is
Development of complex KNX Devices
WEINZIERL ENGINEERING GmbH WEINZIERL ENGINEERING GMBH Jason Richards 84558 Tyrlaching GERMANY Phone +49 (0) 8623 / 987 98-03 Web: www.weinzierl.de Development of complex KNX Devices Abstract The KNX World
PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS
PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS Adrian Mos, John Murphy Performance Engineering Lab, Dublin City University Glasnevin, Dublin 9, Ireland Tel: +353 1 700-8762,
Software: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS.
C H A P T E R 4 Software: Systems and Application Software Software and Hardware Software can represent 75% or more of the total cost of an IS. Less costly hdwr. More complex sftwr. Expensive developers
The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
Computer and Set of Robots
Lesson 11:DESIGN PROCESS EXAMPLES Mobile-Phone, Mobile- Computer and Set of Robots 1 Mobile Phone 2 Mobile phone SoC (System-on-Chip) Hardware units Microcontroller or ASIP (Application Specific Instruction
Chapter 6. Inside the System Unit. What You Will Learn... Computers Are Your Future. What You Will Learn... Describing Hardware Performance
What You Will Learn... Computers Are Your Future Chapter 6 Understand how computers represent data Understand the measurements used to describe data transfer rates and data storage capacity List the components
A+ Guide to Software: Managing, Maintaining, and Troubleshooting, 5e. Chapter 3 Installing Windows
: Managing, Maintaining, and Troubleshooting, 5e Chapter 3 Installing Windows Objectives How to plan a Windows installation How to install Windows Vista How to install Windows XP How to install Windows
TECHNOLOGY BRIEF. Compaq RAID on a Chip Technology EXECUTIVE SUMMARY CONTENTS
TECHNOLOGY BRIEF August 1999 Compaq Computer Corporation Prepared by ISSD Technology Communications CONTENTS Executive Summary 1 Introduction 3 Subsystem Technology 3 Processor 3 SCSI Chip4 PCI Bridge
A Comparison of Distributed Systems: ChorusOS and Amoeba
A Comparison of Distributed Systems: ChorusOS and Amoeba Angelo Bertolli Prepared for MSIT 610 on October 27, 2004 University of Maryland University College Adelphi, Maryland United States of America Abstract.
Seamless Thread and Execution Context Migration within a Java Virtual Machine Environment
Seamless Thread and Execution Context Migration within a Java Virtual Machine Environment Student: Andrew Dorman [email protected] Supervisor: Dr. Caspar Ryan [email protected] ABSTRACT
SQLBase. Starter Guide 20-2905-1004
SQLBase Starter Guide 20-2905-1004 Trademarks Centura, Centura net.db, Centura Ranger, the Centura logo, Centura Web Developer, Gupta, the Gupta logo, Gupta Powered, the Gupta Powered logo, Fast Facts,
GLOBAL PAYMENTS AND CASH MANAGEMENT. HSBCnet Application Guide August 2006
GLOBAL PAYMENTS AND CASH MANAGEMENT HSBCnet Application Guide August 2006 HSBCnet Application Guide TABLE OF CONTENT Page Overview 1 Step 1 Verifying the Minimum System Requirements 2 1.1 Operating System
S y s t e m A r c h i t e c t u r e
S y s t e m A r c h i t e c t u r e V e r s i o n 5. 0 Page 1 Enterprise etime automates and streamlines the management, collection, and distribution of employee hours, and eliminates the use of manual
Introducción. Diseño de sistemas digitales.1
Introducción Adapted from: Mary Jane Irwin ( www.cse.psu.edu/~mji ) www.cse.psu.edu/~cg431 [Original from Computer Organization and Design, Patterson & Hennessy, 2005, UCB] Diseño de sistemas digitales.1
CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study
CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what
Memory Systems. Static Random Access Memory (SRAM) Cell
Memory Systems This chapter begins the discussion of memory systems from the implementation of a single bit. The architecture of memory chips is then constructed using arrays of bit implementations coupled
Service and Resource Discovery in Smart Spaces Composed of Low Capacity Devices
Service and Resource Discovery in Smart Spaces Composed of Low Capacity Devices Önder Uzun, Tanır Özçelebi, Johan Lukkien, Remi Bosman System Architecture and Networking Department of Mathematics and Computer
Spreadsheet Programming:
Spreadsheet Programming: The New Paradigm in Rapid Application Development Contact: [email protected] www.knowledgedynamics.com Spreadsheet Programming: The New Paradigm in Rapid Application Development
An Easier Way for Cross-Platform Data Acquisition Application Development
An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers
