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=0.7 required=5.0 tests=BAYES_00,INVALID_DATE, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ukma!xanth!nic.MR.NET!umn-cs!stachour From: stachour@umn-cs.CS.UMN.EDU (Paul Stachour) Newsgroups: comp.lang.ada Subject: Re: Two questions Summary: OS subtask non-dispatching is OS problem, not Ada one. Keywords: Ada Task Dispatching Message-ID: <12027@umn-cs.CS.UMN.EDU> Date: 13 Apr 89 00:46:22 GMT References: <796@aber-cs.UUCP> Reply-To: stachour@umn-cs.cs.umn.edu (Paul Stachour) Distribution: eunet,world Organization: CSci Dept., University of Minnesota, Mpls. List-Id: In article <796@aber-cs.UUCP> pcg@cs.aber.ac.uk (Piercarlo Grandi) writes: > .... >There is another problem with Ada tasking, and it is well known to those *** Stop. Let's get the problem in the right place. It is NOT a *** problem with Ada, but with the OS that is running Ada. >who know OS/MVS and IMS. When an Ada task takes a page fault, the entire >address space is suspended waiting for resolution of the page fault; >another Ada task is not redispatched, even if it could, because on virtually >all the Ada implementations I know of (notably the VMS one) the OS does not >know about Ada tasks at all. > .... >There are only two solutions, one fairly horrible, having a signal delivered >by the OS on a page fault to the in-address space scheduler, the second >and proper one is to have threads in the OS and associated Ada tasks with >the threads. Unfortunately the second one can be fairly expensive, many >systems have high overhead threads (e.g. OS/MVS). *** Stop. There is at least a third solution. In ancient, *** multi-processor batch-systems that had time-sharing grafted on, *** such as Honeywell's GCOS3, the time-sharing monitor handled its *** own sub-threads, such as deciding when things were dispatchable *** when they were not and when to swap a subtask and ... *** And it let the OS do the dispatching. *** Substitute/time-sharing-monitor/Ada RSL/ and it's not too different. *** In the past, we had a multi-processing CPU that could do the *** equivalent of dispatching two "ready" Ada tasks within a single OS *** process. Today, you tell me that OS/MVS, VAX/VMS, and such ilk *** cannot even dispatch one such ready task. ...Sigh *** ...Ugh Isn't "progress" wonderful.