From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,97ae587931c0f702 X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Ada Task priorities Date: 1997/01/26 Message-ID: #1/1 X-Deja-AN: 212398115 references: organization: New York University newsgroups: comp.lang.ada Date: 1997-01-26T00:00:00+00:00 List-Id: Kevin asked Can one guarantee how tasks at different priority levels will be executed with respect to eachother? (Speaking in both ada83 and ada95 terms...) Yes, Annex D gives absolute rules on how priorities operate in Ada 95. I do not care to discuss Ada 83 rules at this stage! Can one guarantee that if all 3 tasks are eligible for execution at the same time, that task a will finish it's work before task b begins to run, and task c will only run after both tasks a and b finish? (Assuming no tasks rendezvous with other tasks during this time?) I suppose even OS calls would make this highly platform dependent. Of course not, think multiprocessors for a moment! The ada83 RM seems to be pretty explicit about requiring "The highest priority eligible task must be executing at any given time", but the ada95 RM seems less verbose about this. Even annex D doesn't seem to require this. (Unless I missed something obvious, which I probably have...) The Ada 95 requirements are FAR more explicit. Read up on the meaning of FIFO_Within_Priorities dispatching model. My personal opinion is that using assumptions about priorities like this is just asking for trouble, but I thought I would get other people's opinions on this... On the contrary, there are many approaches, e.g. rate monotonic scheduling which absolutely rely on the invariants of priorities being observed accurately, and in particular on the avoidance of priority inheritance.