Thanks for the good info...

Ed

Don Burns wrote:
One more piece of information that might be important. When you run a Producer::CameraGroup based application you will get at least these threads:

             main (includes CameraGroup)
             KeyboardMouse
             BackgroundThread for Each RenderSurface
             Thread for Each Camera

Your KeyboardMouse and Background RenderSUrface threads should run at high priority as they spend most of their time asleep in I/O. Camera threads should run at normal priority and main should run at normal or low priority.

Your main's thread is accessible by default, KeyboardMouse, RenderSurface and Camera are all derived from OpenThread::Thread so calling getThreadID() on each of those will work.

-don
On 9/8/06, *Don Burns* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Hi Ed,

    Management of process/thread priority/scheduling is actually
    orthogonal to what OSG does.  Beyond simple affinity assignation
    within OpenThreads, there is little support for use of hard
    real-time tools.

    However, the good news is that an OpenThread::Thread has a method
    called getThreadID().  You can then use this to allocate to CPUS,
    raise priorities to real-time, non-preemptable levels, etc. via
    the tools available on RedHawk.  I think these might be
    implemented in the pthread interface, but I can't remember.  There
    should be some good docs on that and the API is fairly small and
    easy to get familiar with quickly.

    Let me caution you on one detail.  It is often the temptation to
    think of the rendering thread as the "most important" and
    therefore the one we want to raise the priority on.  Actually, the
    opposite is true.  The threads/processes for which you want
    highest priority are the ones that use the CPU the least, but need
    quick response.  These are normally threads that are doing
    critical I/O, like waiting on a joystick, a network packet, or
    keyboard/mouse entry.    The rendering thread is going to be
    hogging most of the CPU during frame time and if you raise its
    priority, the little time it takes to sleep in I/O waits, is the
    only time the other components will get to do their job.  This can
    cause a system to feel unresponsive or eratic.

    Keep your rendering thread at normal priority and raise the
    priority of the light-weight tasks.  Spend as little time as
    possible in critical real-time sections.

    -don


    On 9/8/06, *Ed* < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>> wrote:

        [Anyone - Please correct me if my terminology or understanding
        is incorrect]

        My limited experience with Real-time programming has been with
        RTLinux/RTCore.  If I understand correctly, the way to write a
        real-time
        task with RTCore, is that it is written as a kernel
        module.  You have a
        small main() which initializes a pthread where you task work
        is done.
        If I do need my rendering to be done in a real time task, is this
        something that can be done with OSG?  Is that how it's done under
        RedHawk?  Sorry this is so off topic....

        Is there an example which shows how to have a separate thread,
        from the
        main app thread, which does all the OSG stuff?

        Ed


        Don Burns wrote:
        > Hi Ed,
        >
        > Ive used OSG on RedHawk.  In fact, many trips around the sun
        ago, I
        > used to be a systems engineer for Concurrent
        Computer.  IITSEC of 2003
        > I put my hang-glider simulator in Concurrent's booth and drove a
        > cluster, using the ccur running RedHawk as the master
        channel.  The
        > role of graphics does not really call for hard-real time, but
        some of
        > the other activities associated with the simulator did,
        including the
        > frame scheduler and synchronization of the slave channels
        with the master.
        >
        > The real-time extensions that CCUR brings to the Linux kernel
        are the
        > same ones they've been using since SVR5mp in the early
        nineties, and
        > conform to Posix 1003.b and 1003.c real-time standards. The
        extensions
        > allow for a fully preemptable kernel with resource allocation
        and very
        > good thread priority support.
        >
        > My experience was quite positive with Red Hawk.
        >
        > -don
        >
        > On 9/6/06, *Ed* <[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>
        > <mailto: [EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>>> wrote:
        >
        >     I am working on a project which has as its end goal a
        hard real-time
        >     system using OSG for the rendering.  I have been
        considering RTLinux
        >     Pro and RedHawk Linux as my RTOS.  Anyone have any
        experience, good or
        >     bad, with OSG on RTLinux or RedHawk?  Anyone out that
        using OSG in
        >     hard real-time?
        >
        >     Ed
        >
        >     _______________________________________________
        >     osg-users mailing list
        >     [email protected]
        <mailto:[email protected]> <mailto:
        [email protected]
        <mailto:[email protected]>>
        >     http://openscenegraph.net/mailman/listinfo/osg-users
        >     http://www.openscenegraph.org/
        >
        >
        > 
------------------------------------------------------------------------

        >
        > _______________________________________________
        > osg-users mailing list
        > [email protected]
        <mailto:[email protected]>
        > http://openscenegraph.net/mailman/listinfo/osg-users
        > http://www.openscenegraph.org/

        _______________________________________________
        osg-users mailing list
        [email protected] <mailto:[email protected]>
        http://openscenegraph.net/mailman/listinfo/osg-users
        http://www.openscenegraph.org/



------------------------------------------------------------------------

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to