From mboxrd@z Thu Jan 1 00:00:00 1970 Path: eternal-september.org!news.eternal-september.org!feeder3.eternal-september.org!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Niklas Holsti Newsgroups: comp.lang.ada Subject: Re: Ichbiah 2022 compiler mode Date: Thu, 12 Sep 2024 14:35:27 +0300 Organization: Tidorum Ltd Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net FbmXQvsFlRuyS08ue1FS5g9DJuVnSBggsy/JkxQ1l31yWrQMkY Cancel-Lock: sha1:ZdiQ4Fd+05ux+CbuudfAhK+DKSA= sha256:GywSTq76buFzQb4NuiPdXN3HftlOEQ5h68CLhfx2+Ow= User-Agent: Mozilla Thunderbird Content-Language: en-US In-Reply-To: Xref: news.eternal-september.org comp.lang.ada:66341 List-Id: On 2024-09-12 12:04, J-P. Rosen wrote: [...] > Well, tasks are not only for speeding up code. They can be a very useful > design tool (active objects, independant activities). I think the Ada > model is clean and simple, I would hate to see it disappear. I agree. >> I'm less certain about the value of priorities, [...] > Priorities are just optimization on how to manage cores when there are > not enough of them. In some contexts it could be optimization -- for example, to increase throughput in a soft real-time system -- but in hard real-time systems priorities (or deadlines) are needed for correctness, not just for optimizatiion. > I know that people use priorities to guarantee mutual exclusion, and > other properties. All these algorithms were designed at the time of > mono-CPU machines, but they fail on multi-cores. In SW for multi-core systems it can be beneficial to collect tasks that frequently interact with each other or with the same single-user resources in the same core, and then the mono-core mutual-exclusion algorithms like priority ceiling inheritance can be used for that group of tasks, while using other algorithms for mutual exclusion between tasks running in different cores.