<div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 23, 2021 at 4:25 AM Heinz Junkes <<a href="mailto:junkes@fhi-berlin.mpg.de">junkes@fhi-berlin.mpg.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">what I have just never understood<br>
<br>
POSIX  Prio 2 ist LOW Priority<br>
RTEMS Prio 1 is HIGH Priority<br></blockquote><div><br></div><div>In general, RTOS threading APIs tended to use 1 as a high priority. The RTEMS </div><div>Classic API based on pSOS+, VxWorks, and VRTX32 which preceded all those </div><div>all follow 1 is high priority model.</div><div><br></div><div>POSIX calls for the opposite range. Not sure why. Interestingly, I had a discussion </div><div>with the main kernel person for another RTOS about this in a standards meeting </div><div>and he noted that although every implementation of POSIX threads we both knew</div><div>about does use low number as low priority, it is not as explicit in the POSIX standard</div><div>as one would think. We have just all read the same text that way since POSIX is </div><div>careful to say raises or lowers priority and the implication we all saw is that the </div><div>numbers follow that languge. But at this point, the priorities run this way for no</div><div>other reason than history and compatibility. For all I know, it may even be baked </div><div>into the POSIX Compliance Test Suite. Any program with hard-coded numbers</div><div>certainly has it baked in.</div><div><br></div><div>While I am beating this topic mercilessly, let me point out that POSIX only calls</div><div>for a minimum of 32 priority levels. Portable programs cannot assume more.</div><div>And the default attribute set for all POSIX threading and synchronization </div><div>objects is implementation defined. Portable programs should always explicitly</div><div>set all attributes for pthreads, mutexes, etc. </div><div><br></div><div>The RTOS choice probably reflects using a bitmap to represent if a thread</div><div>is present on the FIFO for each priority. This would make a bit index map</div><div>directly to priority in most cases. This design dates back to at least VMS</div><div>where you have 32 priority levels because you could scan 32 bits in a</div><div>single instruction. This was carried forward into Windows NT. </div><div><br></div><div>THe diversity of choices reminded me of this quote from Andrew Tanenbaum:<br><br>"The nice thing about standards is that there are so many of them to choose from."</div><div><br></div><div>In the end different people had an arbitrary decision and picked different </div><div>answers. Ada task priority is another set of choices. :)</div><div><br></div><div>--joel</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Heinz<br>
<br>
<br>
> On 23. Feb 2021, at 09:17, Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>> wrote:<br>
> <br>
> On 23/02/2021 08:36, Heinz Junkes wrote:<br>
> <br>
>> I would have a similar question ;-)<br>
>> <br>
>> What is the priority of the POSIX_Init - Task (as Posix-Prio)?<br>
> 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.<br>
> <br>
> -- <br>
> embedded brains GmbH<br>
> Herr Sebastian HUBER<br>
> Dornierstr. 4<br>
> 82178 Puchheim<br>
> Germany<br>
> email: <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a><br>
> phone: +49-89-18 94 741 - 16<br>
> fax:   +49-89-18 94 741 - 08<br>
> <br>
> Registergericht: Amtsgericht München<br>
> Registernummer: HRB 157899<br>
> Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler<br>
> Unsere Datenschutzerklärung finden Sie hier:<br>
> <a href="https://embedded-brains.de/datenschutzerklaerung/" rel="noreferrer" target="_blank">https://embedded-brains.de/datenschutzerklaerung/</a><br>
> <br>
<br>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a></blockquote></div></div></div>