[fpc-devel] Suggestion: reference counted objects
giuliano.colla at fastwebnet.it
Sun Sep 21 11:34:24 CEST 2014
Il 21/09/2014 05:51, Hans-Peter Diettrich ha scritto:
> Giuliano Colla schrieb:
>> I might, for example, tell you that my company has been successfully
>> implementing since more than 30 years a class of applications for the
>> control of industrial processes, with hundreds of threads running
>> simultaneously in a multi-CPU environment,
> IMO realtime applications require an realtime OS, providing all
> required means of process synchronization and communication. Ordinary
> systems and developers should be happy with primitive threads, doing
> their work in the background and exiting when done.
Our class of applications takes advantage of a distributed intelligence
model. IOW a number of CPU's working in parallel, each one running his
own real-time multitasking environment. They're organized in a
hierarchical tree and almost all of them take advantage of dedicated
real-time OS's, up to the root of the tree, which governs the full
process, and also provides human interface, data collection, connection
with factory network and data-bases, remote connection for assistance,
debugging and upgrading.
The top level, until recent times, was provided by a Linux box, with a
real-time patched kernel (Adeos-Ipipe). The result was a real-time
nanokernel, running the application real-time tasks, and having Linux as
its idle task. On Linux side, the visual portion was provided by Kylix.
But, with the increase of CPU speed, and the the significant
improvements of Linux kernel latency, it's now become possible to get
rid of the foreign real-time patch, and to take advantage directly of
Linux kernel thread scheduling, without a significant performance loss.
> It's good to know that FPC allows to implement and manage more complex
> parallel processing, if I understand you and Boian correctly?
FPC comes into play with the latest evolution I described above, because
all the high level functions (such as user interface, data collection,
etc.) are being handled using Lazarus for the visual functions, and a
number of FPC threads for the rest. While Kylix did provide a more
suitable (and less buggy :-( ) widgetset, synchronization of the main
thread with FPC/Lazarus is significantly better.
More information about the fpc-devel