TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Forum View

Use Proportional Font
Show HTML Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Content-Transfer-Encoding:
7bit
Sender:
"Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
Subject:
From:
Date:
Sun, 8 Aug 1999 17:51:24 EDT
Content-Type:
text/plain; charset="us-ascii"
MIME-Version:
1.0
Reply-To:
Parts/Attachments:
text/plain (28 lines)
[log in to unmask] (Roger Racine) wrote:

>I have seen some discussions about Ada tasks vs POSIX threads, and was
>surprised to see someone suggesting that they are not synonymous.  The
>argument went something like this: Since tasks are built in to the
>language, the compiler knows about them.  Since the compiler knows about
>them, there are times that the compiler can optimize them such that a new
>thread is not needed.  Therefore there is a difference in terminology.

Regardless of the POSIX angle, various operating systems have something
they know as "threads".  VMS has "DECthreads" and "Kernel Threads", while
the corresponding entities in Windows NT are "Fibers" and "Threads".

An important aspect of the Ada "task" is that it is defined by the
language.
The Ada implementation controls how that "task" is mapped onto threads,
fibers, processes or "tasks" as viewed from the operating system
perspective.

I think it is helpful that Ada uses the least-currently-favored term in
this regard, so that newcomers have to ask what a "task" is and are led
away from presuming it is exactly identical to some operating system
construct.  At least they should understand that any binding to some
operating system construct will change with a new operating system
or Ada implementation (or potentially compilation mode).

Larry Kilgallen

ATOM RSS1 RSS2