[SystemSafety] Using a virtual machine to develop safe code / logic

Steve Tockey Steve.Tockey at construx.com
Sat Aug 31 09:39:18 CEST 2013


Daniel,
>From a purely functional perspective, there shouldn't be a difference between executing on a physical computer vs. a virtual machine. Provided that the virtual machine is a high-fidelity implementation of the original machine's instruction set, both executions should give you exactly the same end results. However, there are two potentially serious problems here that I see:

The first one has to do with timing. Since the virtual machine is acting as a translation layer between your application software and the actual hardware, there can be significant effects on the speed of execution. The virtual machine is essentially guaranteed to be slower. The other thing is that if the original program depended on the execution speed of the original hardware to achieve certain timing characteristics (e.g., a 100 millisecond processing cycle time) the virtual execution may not achieve that same rate. To the extent that the raw speed and, possibly, other timing characteristics are elements of "safe" operation, you could have a problem.

The second problem, IMHO, has to do with confidence in the virtual machine. How was it developed? Is it really a high-fidelity implementation of the original hardware? How would you know? If the application code were necessarily developed to some kind of safety standard, then it would stand to reason that the virtual machine code would have to have been developed against that same standard since it is now a part of the "application" that's executing on the new hardware.


I hope this helps,

-- steve




From: Daniel Grivicic <grivsta at gmail.com<mailto:grivsta at gmail.com>>
Date: Friday, August 30, 2013 2:39 PM
To: "systemsafety at techfak.uni-bielefeld.de<mailto:systemsafety at techfak.uni-bielefeld.de>" <systemsafety at techfak.uni-bielefeld.de<mailto:systemsafety at techfak.uni-bielefeld.de>>
Subject: [SystemSafety] Using a virtual machine to develop safe code / logic

Hello List members,

Is there any information or evidence supporting the statement that "safety related logic shall not be developed using a virtualised environment".

My specific problem is that I have an older process safety control system that is not supported on a recent operating system. Specifically the programming and monitoring program (for the control system) will only install on Windows 2000. Windows 2000 will not install on a new computer (driver problems) so a solution is to use a virtual machine.

The company that supplies the programming software does not support the installation or use on a virtual machine. The solution being a processor and operating environment upgrade.

Is there a difference between using a physical computer compared to using a virtual / software based one?

Your input into this is appreciated.

Thank you.

Daniel Grivicic.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.techfak.uni-bielefeld.de/mailman/private/systemsafety/attachments/20130831/f6d54150/attachment.html>


More information about the systemsafety mailing list