Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <20240603120043.00003511@yahoo.com>
Deutsch   English   Français   Italiano  
<20240603120043.00003511@yahoo.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Michael S <already5chosen@yahoo.com>
Newsgroups: comp.lang.c
Subject: Re: C23 thoughts and opinions
Date: Mon, 3 Jun 2024 12:00:43 +0300
Organization: A noiseless patient Spider
Lines: 230
Message-ID: <20240603120043.00003511@yahoo.com>
References: <v2l828$18v7f$1@dont-email.me>
	<v2o57g$1t5p4$1@raubtier-asyl.eternal-september.org>
	<7d0e8f25-a8ba-4995-9b90-ff35f85d423f@gmail.com>
	<v2p91e$26lpk$1@raubtier-asyl.eternal-september.org>
	<beffc569-3606-b627-ded9-93ce8478f2dd@please.ty>
	<v2qfi0$2de9j$1@raubtier-asyl.eternal-september.org>
	<v2unfe$3alds$1@dont-email.me>
	<v2v637$3cunk$1@raubtier-asyl.eternal-september.org>
	<v3dmq6$2edto$1@dont-email.me>
	<hOu6O.6223$xPJ1.1866@fx09.iad>
	<20240602110213.00003b25@yahoo.com>
	<v3hn2j$3bdjn$1@dont-email.me>
	<20240602162914.0000648c@yahoo.com>
	<v3ii22$3g9ch$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 03 Jun 2024 11:00:32 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="2e115e67b3843932598c276339879624";
	logging-data="4002254"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19ZJw/AFtKmwKX4awhCIyjdDzntsUGN9d0="
Cancel-Lock: sha1:wv1w/K+0anSuW5+AKHSOM0wlk74=
X-Newsreader: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-w64-mingw32)
Bytes: 11324

On Sun, 2 Jun 2024 21:44:01 +0200
David Brown <david.brown@hesbynett.no> wrote:

> On 02/06/2024 15:29, Michael S wrote:
> > On Sun, 2 Jun 2024 14:03:30 +0200
> > David Brown <david.brown@hesbynett.no> wrote:
> >   
> >> On 02/06/2024 10:02, Michael S wrote:  
> >>> On Sat, 01 Jun 2024 01:27:41 GMT
> >>> scott@slp53.sl.home (Scott Lurndal) wrote:
> >>>      
> >>>> Lynn McGuire <lynnmcguire5@gmail.com> writes:  
> >>>>> On 5/26/2024 6:23 AM, Bonita Montero wrote:  
> >>>>>> Am 26.05.2024 um 09:13 schrieb jak:
> >>>>>>         
> >>>>>>> About this I only agree partially because it depends a lot on
> >>>>>>> the context in which it is used. Moreover, I would not know
> >>>>>>> how to indicate an optimal programming language for all
> >>>>>>> seasons.  
> >>>>>>
> >>>>>> C++ is in almost any case the better C.
> >>>>>>         
> >>>>>>> What you describe is the greatest inconvenience of c++. To
> >>>>>>> make only one example, when they decided to rewrite the FB
> >>>>>>> platform to accelerate it, they thought of migrating from php
> >>>>>>> to c++ and they had a collapse of the staff suitable for
> >>>>>>> work, so they thought of relying a compiler that translated
> >>>>>>> the php into c++ and many of the new languages were born to
> >>>>>>> try to remedy hits complexity.  
> >>>>>>
> >>>>>> C++ is the wrong language for web applications.
> >>>>>> I like Java more for that.  
> >>>>>
> >>>>> C++ is the wrong language for real time apps.  
> >>>>
> >>>> That's an incorrect statement.
> >>>>     
> >>>>> No memory allocation allowed.  
> >>>>
> >>>> It is trivially easy to write C++ code that doesn't
> >>>> allocate memory dynamically.
> >>>>     
> >>>>>
> >>>>> I use C++ for my server side apps on my webserver.  Works
> >>>>> great.  
> >>>>
> >>>> I use C++ for operating systems (you can't get more real-time
> >>>> than that)  
> >>>
> >>> Engines control is FAR more real-time that OS, to list just one
> >>> example out of many.  
> >>
> >> Most engine control software runs on an RTOS - so you have at least
> >> as tough real-time requirements for the OS as for the application.
> >>  
> > 
> >  From what I read about this stuff (admittedly, long time ago) even
> > when there is a RTOS, the important part runs alongside RTOS rather
> > than "on" RTOS.
> > I.e. there is high priority interrupt that is never ever masked by
> > OS in the region that is anywhere close to expected time and all
> > time-sensitive work is done by ISR, with no sort of RTOS calls.  
> 
> That's sort-of right.  To be precise for something like this, we'd
> have to say what exactly we mean by "engine controller".  There are
> many kinds of engine or motor, and many types of control that are
> needed for them.  Generally, there is a hierarchy of simpler but more
> time-critical parts up to more complex but more flexible parts of the
> system.
> 
> As an example of a system of motor control that I've worked on
> (electric motors rather than combustion engines), the most
> timing-critical signal generation and safety (emergency stop,
> overload protection, etc.) are all in hardware - typically dedicated
> peripherals in the microcontroller.  Some safety parts might also be
> implemented in non-maskable interrupt functions that the RTOS can
> never disable.
> 
> The low-level control of the motors is typically run by timer
> interrupt functions.  These may be disabled by the RTOS, but will
> only be disabled for a very short (and predictable) time - interrupt
> disabling is usually essential to the way locks and inter-process
> communication works, including communication between these timer
> functions and the rest of the code.  Higher level control runs as
> RTOS tasks of various priorities, and communication with other boards
> is usually a lower priority task.  Clearly these real-time tasks
> cannot be more "real-time" than the RTOS itself.  Other boards might
> have high level non-realtime system determining things like path
> finding, or user interfaces.
> 
> And until you get to the highest level stuff, there is no reason why
> C++ is not suitable.  But whether you use C++, C, Assembly, or Ada
> for the low-level and more real-time critical code, you avoid dynamic
> memory, exceptions, and other techniques that can have unpredictable
> failure modes and unexpected delays.  (The high-level stuff can be
> written in any language.)
> 
> >   
> >> The OS stuff Scott works with, AFAIK, is real-time OS's for
> >> specific tasks such as high-end network equipment.  It is not
> >> general-purpose or desktop OS's (which I agree are not
> >> particularly real-time).  
> > 
> > I'd characterized the software running within high-end NIC is as
> > very soft real-time.   
> 
> I'd characterize it as whatever Scott says it is - he's the expert 
> there, not you or me.
> 
> > You only care for buffers to not overflow. And if they
> > overflow, it's not too bad either.  
> 
> That is true for some things, but most certainly not for all usage.
> 
> > The flow is very much unidirectional
> > or bi-directional with direction almost independent of each other.
> > There are dependencies between directions, e.g. TCP acks, but they a
> > weak dependencies timing-wise.  
> 
> There is a lot of networking that is not TCP/IP.
> 
> High-speed network interfaces are used for two purposes - to get high 
> throughput, or to get low latencies.  Throughput is not as sensitive
> to timing and can tolerate some variation as long as the traffic is 
> independent, but latency is a different matter.
>

I think, nearly all work in high-end NIC is concentrated on throughput.
For low latency, the best you can do with high end NIC is to disable
all high-end features and to hope that in disabled state they do not
hurt you too badly.
It would be probably better to use specialized "dumb" NIC. I don't know
if such things exist, but considering that high-frequency trading is
still legal (IMHO, it shouldn't be) I would guess that they do.

> > Hard real time is about closed loops, most often closed control
> > loops, but not only those.
> >   
> >>  
> >>> Of course, nowadays most of these things are no longer done on
> >>> general-purpose CPUs or even MCUs.
> >>>      
> >>
> >> I think you have got that backwards.
> >>
> >> Most engine control /is/ done with general purpose
> >> microcontrollers, or at least specific variants of them.  They
> >> will use ARM Cortex-R or Cortex-M cores rather than Cortex-A cores
> >> (i.e., the "real-time" cores or "microcontroller" cores rather
> >> than the "application" cores you see in telephones, Macs, and ARM
> >> servers), but they are standard cores. Another common choice is
> >> the PowerPC cores used in NXP's engine controllers.
> >>
> >> It used to be the case that engine control and other critical hard
> >> real-time work was done with DSPs or FPGAs, but those days are long
> >> past.
> >>  
> > 
> > Are you sure?  
> 
> Pretty sure, yes.
> 
> > It's much simpler and far more reliable to do such task with $5 PLD
> > (which today means FPGA that boots from internal flash, rather than
> > old day's PLD) than with MCU, regardless of price of MCU.  
> 
> No, it is not simpler or more reliable.  Programmable logic is rarely 
> used for engine or motor control.  You use microcontrollers with 
========== REMAINDER OF ARTICLE TRUNCATED ==========