TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

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

Print Reply
Subject:
From:
Reply To:
Date:
Sun, 8 Aug 1999 17:51:24 EDT
Content-Type:
text/plain
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