Deutsch English Français Italiano |
<vg92dc$ja6r$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Don Y <blockedofcourse@foo.invalid> Newsgroups: comp.arch.embedded Subject: Dealing with "past" events Date: Sun, 3 Nov 2024 16:53:14 -0700 Organization: A noiseless patient Spider Lines: 28 Message-ID: <vg92dc$ja6r$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Mon, 04 Nov 2024 00:53:18 +0100 (CET) Injection-Info: dont-email.me; posting-host="515a9c6a6c62abcb4adf188f443f3eb3"; logging-data="633051"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+o26gmE5qes8L6xO5Er7vM" User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Cancel-Lock: sha1:oC26xWAlL65DYbeOAftvAdshSa4= Content-Language: en-US Bytes: 2021 Given: N = "now" R = task release time D = task's deadline time E = event time The only real invariant is that R < N as code executing in a task can't execute until the task has been released. Specifically, there are no guaranteed relationship between *most* of these times; N > E, N > D, D < R, etc. are all possible in a generic system. Though, in a nominal setting, R < N < E < D when the code tries to initiate an event at a particular (future) time (E). But, what happens when E < N -- i.e., when you try to schedule an action (event) at a time that has already passed? And, does E << N lead to a different interpretation/handling? I've argued that the OS shouldn't special-case such activities. If you request something to happen in the past, then the OS should just act as if it has *just* happened, regardless as to whether you were a microsecond "late" in issuing your request or *years*! In particular, the OS shouldn't dismiss such request unilaterally -- or, throw an error to alert the issuer to the *apparent* inconsistency.