Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News

SYS-CON.TV
Cloud Expo & Virtualization 2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
Cloud Computing & Enterprise IT: Cost & Operational Benefits
How and Why is a Flexible IT Infrastructure the Key To the Future?
Click For 2008 West
Event Webcasts
Starting to PERC
Starting to PERC

PERC is the embodiment of the technologies described in last month's article. PERC is a commercial clean-room implementation of Java designed specifically to address the needs of developers of embedded and real-time systems.The PERC acronym stands for Portable Executive for Reliable Control. PERC is intended to serve a spectrum of real-time application domains ranging from simple multimedia entertainment software for children to highly complex hard-real-time applications critical to the nation's defense systems. The intention is to standardize this programming notation as a common platform for the development of shared real-time software development tools and reusable real-time software components. Clearly, the rigor with which particular applications need to comply with real-time constraints depends on price and performance issues and risk analyses that are different for each application. The design of PERC is such that individual developers can choose to handle these tradeoffs differently.

PERC is a superset of Java in that it offers additional syntax and additional time and memory related semantics to the Java programmer. However, it is a subset in that it forbids certain legal Java practices in situations where the use of these practices would interfere with the system's ability to support reliable compliance with real-time requirements. In particular, there are certain contexts in which PERC must be able to analyze the time required to execute particular code segments. In these contexts, PERC disallows the use of code that cannot be efficiently analyzed.

The PERC development and execution environment is illustrated in Figure 1. PERC syntax includes two control structures that are not a part of standard Java. These are the timed and atomic statements, which will be described in next month's column. Thus, PERC source code cannot be directly compiled by traditional Java compilers. The preprocessor, p2jpp, converts the timed and atomic statements into standard Java source code. The output of p2jpp is ready for a traditional Java compiler, such as Sun's javac. Note that PERC source code can also be translated directly to Java byte codes by the Percolator program. Percolator outputs byte codes that are essentially the same as what is generated by Sun's javac. However, the class files emitted by Percolator also include special attribute information to identify particular parts of the program that require real-time determinism. The PERC virtual machine uses this attribute information to assist in its analysis of worst-case execution times and to enable it to perform transformations on the byte code that will allow the real-time program to run much faster than would be possible without the transformations.

Execution of PERC programs on a traditional Java virtual machine with accompanying PERC libraries is less efficient and less predictable than execution on a PERC virtual machine. For example, the traditional Java virtual machine:
1. Does not understand the special attributes that are inserted by Percolator. As a result, it is not able to perform the transformations necessary to improve performance and determinism.
2. Is unable to perform schedulability analysis so it cannot guarantee that real-time tasks will execute within their real-time constraints.
3. Lacks the ability to distinguish between memory allocated to different real-time activities. Thus, it cannot enforce memory budgets on particular real-time tasks.
4. Probably lacks support for real-time garbage collection. Thus, there is no way for the PERC program to configure the system's garbage collector to support a guaranteed rate of new memory allocation.

Nevertheless, for applications that are constrained by real-time expectations, executing PERC on a traditional virtual machine offers important benefits over attempting to achieve real-time determinism without the use of PERC extensions. In particular:
1. Application programmers are provided with standard notations in which to encode the desired real-time behavior as part of their source program. This contributes to the ease of long-term software maintenance.
2. Though the execution environment may not be able to satisfy all of the desired real-time constraints, the PERC libraries are able to determine where real-time performance is falling short. This information can be used by the run-time system and the application code itself to dynamically adjust service quality and load balancing.

Of course, for best performance and real-time determinism, it is desirable to run the PERC byte codes on a PERC virtual machine.

About Kelvin Nilsen
Kelvin Nilsen received his Ph.D. in 1988 from the University of Arizona, where he worked on a real-time dialect of Icon under the direction of Professor Ralph Griswold. Since 1988, he has continued work on high-level support for real-time programming as an employee of Iowa State University. His work on real-time garbage collection has resulted in four patent applications, the first of which will issue in 1996. His involvement in Java has resulted in a new startup company, NewMonics Inc., which is currently developing a real-time dialect of Java under the PERC product name.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Latest Cloud Developer Stories
In a surprise move Tuesday Oracle wheeled out its Big Data Appliance. That’s the one it said in October would be ready sometime in the first half. Only nobody believed it meant early in the first half. Heck, it’s not even clear anybody thought Oracle could make the first half...
Rackspace Hosting, the service leader in cloud computing, on Thursday announced its acquisition of SharePoint911, an industry leader in SharePoint consulting, training, and "JumpStart" services within SharePoint. The unification of both companies provides capabilities to deliver ...
Wyse Technology, the global leader in cloud client computing, on Thursday announced it's working with Microsoft to market school IT labs and one-to-one computing solutions that allow a cost effective delivery of innovative IT enabled education. These solutions are available throu...
With Cloud Expo 2012 New York (10th Cloud Expo) now under four months away, what better time to start introducing you in greater detail to the distinguished individuals in our incredible Speaker Faculty for the technical and strategy sessions at the conference... We have techn...
Nimble, the social CRM platform has announced the launch of Nimble 2.0, billed as the “most social” CRM platform on the market today. Nimble was designed entirely with social CRM in mind and is the first social business platform that empowers companies with the ability to get clo...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON Featured Whitepapers
ADS BY GOOGLE