How do we know what priority of the Init task is?
Heinz Junkes
junkes at fhi-berlin.mpg.de
Tue Feb 23 17:14:03 UTC 2021
Thank you for the detailed explanation. I may have asked my question incorrectly.
If I choose POSIX_Init for RTEMS the Init process has a very low priority and if I use
the normal (RTEMS) Init a very high priority. This does not fit in my opinion.
Shouldn't the POSIX_Init - process have the prio 98 or so?
Heinz
> On 23. Feb 2021, at 15:17, Joel Sherrill <joel at rtems.org> wrote:
>
>
>
> On Tue, Feb 23, 2021 at 4:25 AM Heinz Junkes <junkes at fhi-berlin.mpg.de> wrote:
> what I have just never understood
>
> POSIX Prio 2 ist LOW Priority
> RTEMS Prio 1 is HIGH Priority
>
> In general, RTOS threading APIs tended to use 1 as a high priority. The RTEMS
> Classic API based on pSOS+, VxWorks, and VRTX32 which preceded all those
> all follow 1 is high priority model.
>
> POSIX calls for the opposite range. Not sure why. Interestingly, I had a discussion
> with the main kernel person for another RTOS about this in a standards meeting
> and he noted that although every implementation of POSIX threads we both knew
> about does use low number as low priority, it is not as explicit in the POSIX standard
> as one would think. We have just all read the same text that way since POSIX is
> careful to say raises or lowers priority and the implication we all saw is that the
> numbers follow that languge. But at this point, the priorities run this way for no
> other reason than history and compatibility. For all I know, it may even be baked
> into the POSIX Compliance Test Suite. Any program with hard-coded numbers
> certainly has it baked in.
>
> While I am beating this topic mercilessly, let me point out that POSIX only calls
> for a minimum of 32 priority levels. Portable programs cannot assume more.
> And the default attribute set for all POSIX threading and synchronization
> objects is implementation defined. Portable programs should always explicitly
> set all attributes for pthreads, mutexes, etc.
>
> The RTOS choice probably reflects using a bitmap to represent if a thread
> is present on the FIFO for each priority. This would make a bit index map
> directly to priority in most cases. This design dates back to at least VMS
> where you have 32 priority levels because you could scan 32 bits in a
> single instruction. This was carried forward into Windows NT.
>
> THe diversity of choices reminded me of this quote from Andrew Tanenbaum:
>
> "The nice thing about standards is that there are so many of them to choose from."
>
> In the end different people had an arbitrary decision and picked different
> answers. Ada task priority is another set of choices. :)
>
> --joel
>
>
> Heinz
>
>
> > On 23. Feb 2021, at 09:17, Sebastian Huber <sebastian.huber at embedded-brains.de> wrote:
> >
> > On 23/02/2021 08:36, Heinz Junkes wrote:
> >
> >> I would have a similar question ;-)
> >>
> >> What is the priority of the POSIX_Init - Task (as Posix-Prio)?
> > There is no option to configure the priority of the POSIX initialization thread, so the default priority of 2 is used, see _POSIX_Threads_Default_attributes.
> >
> > --
> > embedded brains GmbH
> > Herr Sebastian HUBER
> > Dornierstr. 4
> > 82178 Puchheim
> > Germany
> > email: sebastian.huber at embedded-brains.de
> > phone: +49-89-18 94 741 - 16
> > fax: +49-89-18 94 741 - 08
> >
> > Registergericht: Amtsgericht München
> > Registernummer: HRB 157899
> > Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
> > Unsere Datenschutzerklärung finden Sie hier:
> > https://embedded-brains.de/datenschutzerklaerung/
> >
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2542 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/devel/attachments/20210223/50c53f2b/attachment.bin>
More information about the devel
mailing list