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, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!husc6!sri-unix!ctnews!pyramid!prls!mips!himel From: himel@mips.UUCP (Mark I. Himelstein) Newsgroups: comp.lang.ada Subject: Re: Microsoft OS/2 -- Ideal for Ada Message-ID: <459@gumby.UUCP> Date: Wed, 17-Jun-87 00:14:51 EDT Article-I.D.: gumby.459 Posted: Wed Jun 17 00:14:51 1987 Date-Received: Sun, 21-Jun-87 08:51:14 EDT References: <8706130340.AA00283@rand-unix.arpa> <928@bloom-beacon.MIT.EDU> <1624@aw.sei.cmu.edu> Reply-To: himel@gumby.UUCP (Mark I. Himelstein) Distribution: world Organization: MIPS Computer Systems, Sunnyvale, CA List-Id: In article <1624@aw.sei.cmu.edu> firth@bd.sei.cmu.edu.UUCP writes: ... >I agree that it is inappropriate to map Ada tasks into Unix processes. >For one thing, the overhead is insupportable. I agree too mainly due the horrible overhead of unix processes and the shared nature of the ada memory model. >Unfortunately, the alternative doesn't work either. Two serious >problems I presume you mean multi-tasks within one unix process. >(a) Unix does not provide asynchronous IO to a process. If one Ada task > does a read() from the terminal, the whole program blocks. And you > thought polling died out in the '60s? BSD UNIX provides full asynchronous IO. This is done with ioctl's and fcntl's and setting up a signal handler for SIGIO. >(b) A large number of Unix system calls are not reentrant. If one Ada > task is suspended in a malloc(), chaos can ensue. Since Ada tasks would share memory, allocating from a shared heap like malloc represents a critical region and other tasks should be blocked. Mark I. Himelstein decwrl!mips!himel