How did the term "asynchronously" come to mean ....

  • Thread starter SlurrerOfSpeech
  • Start date
  • Tags
    Mean Term
In summary: Asynchronous (or overlapped) I/O implied usage back to the 1950s:In summary, the term "asynchronous" originally referred to code execution that was out of sync with the system's clock.
  • #1
SlurrerOfSpeech
141
11
... the exact opposite of its dictionary meaning?

a means not
synchronous
means happening, existing, or arising precisely at the same time (https://www.merriam-webster.com/dictionary/synchronous)

So if I have two lines like

Code:
double d = Math.Sqrt(5.0);
string s = new String('f', 1239);

that run in sequence, meaning the 2nd line starts executing when the 1st is finished, then they ran not in-sync.
 
Technology news on Phys.org
  • #2
In electronics, synchronously has come to mean "controlled by a common clock". Sadly, asynchronously has come to mean several slightly different things based on "not controlled by a common clock". So, asynchronously can mean
  • Not controlled by any clock
  • Controlled by several independent clocks
Both concepts are tricky to implement...
 
  • Like
Likes FactChecker
  • #3
SlurrerOfSpeech said:
So if I have two lines like [...] that run in sequence, meaning the 2nd line starts executing when the 1st is finished, then they ran not in-sync.

In computer science asynchronous sort of means out of sync, i.e. timewise uncoordinated.

So your two lines can be said to execute synchronous because their order and timing of execution are coordinated: the second statement will not execute until after the first statement has completed. If the statements were executed in parallel (by some mechanisms provided by the language and environment of choice) they would execute asynchronously with respect to each other.
 
  • Like
Likes harborsparrow and jedishrfu
  • #4
SlurrerOfSpeech said:
How did the term "asynchronously" come to mean ... the exact opposite of its dictionary meaning?
Actually, it doesn't, as already stated by Svein and Filip. Operations that are synchronous don't have to occur at the same time, but do occur in close temporal proximity. Asynchronous operations ("async") generally don't occur closely in time. Many of the classes in the .Net Framework have member methods of both (sync and async) types. With an async method, your code can continue operating, and not have to wait for the result from an async method.
 
  • #5
SlurrerOfSpeech said:
So if I have two lines like
...
that run in sequence, meaning the 2nd line starts executing when the 1st is finished, then they ran not in-sync.

The whole thing has to do with the reference (clock) for sync or out of sync, as noted above. In particular, for code execution, if your system has just one processor, the concept of time slicing of processes, controlled by the OS, makes processes that get to the CPU for execution seem synchronous from your point of view - because time slices run for a very short time and each subsequent slice of some process every very short time too, even though they are not running in parallel (pseudoparallelism). For the CPU clock, each block of time slices of processes sent for execution, are slices running in sync. If you have more than one processor and depending on the specific architecture, processes can run in parallel, so be both in sync from your point of view and for the coordinating clock.
 
  • #6
The term "asynchronous" dates back to the days of mainframes (1960's / 1970's), such as "asynchronous I/O". It has been somewhat changed / expanded in its meaning since those early days. I'm not sure why "asynchronous" was chosen to describe those type of operations.
 
  • #7
rcgldr said:
The term "asynchronous" dates back to the days of mainframes (1960's / 1970's), such as "asynchronous I/O".

Do you have a source for this? I'm giving a talk on asyncronous programming and I want to include this fact if I can find a citation for it.
 
  • #8
SlurrerOfSpeech said:
Do you have a source for this? I'm giving a talk on asyncronous programming and I want to include this fact if I can find a citation for it.
Try a web search for "IBM asynchronous I/O" or "CDC asynchronous I/O" . You should find some links like the ones below. I'm not sure where or when the term asynchronous I/O started, but its usage dates back to the 1950s, along with "overlapped I/O". There may not be many hits for the CDC machines. The CDC 3000 and 6000 series computers had multiple DMA like processors called PPU (Peripheral Processor Unit). They could be used for I/O or to move memory and could be set to generate an interrupt at completion.

Asynchronous (or overlapped) I/O implied usage back to the 1950s:

http://people.cs.clemson.edu/~mark/io_hist.html

"asynchronous events"

http://en.wikipedia.org/wiki/IBM_System/360_architecture

Wiki articles, but no dates:

http://en.wikipedia.org/wiki/Asynchronous_I/O

http://en.wikipedia.org/wiki/Overlapped_I/O

Side note - a bit of trivia, although most CP/M systems (late 1970's) and all PC's (1981) had DMA, the original (1984) Macintosh did not include a DMA feature for SCSI (so no overlapped I/O), instead using a feature called "blind transfer": the code would poll until the first byte of a 512 byte transfer was ready, then perform a hard loop with no software handshake to transfer the remaining 511 bytes. There was a hardware handshake that paused the entire Mac as needed for each byte, with what I seem to recall was a 16 microsecond timeout that would fail the I/O, but allow the Mac to run again to do things like refresh DRAM. Third party vendors made proper DMA / SCSI controllers for later Macs. I don't recall when Macs first included DMA.
 
Last edited:

Related to How did the term "asynchronously" come to mean ....

1. How was the term "asynchronously" first defined?

The term "asynchronously" was first defined in the field of computer science in the 1960s. It refers to a method of communication or data transfer where the sender and receiver do not need to be in synchronization or operating at the same time.

2. Who coined the term "asynchronously"?

The term "asynchronously" was coined by the computer scientist Donald Davies in the 1960s. He used it to describe a new method of data transmission that he was developing at the UK National Physical Laboratory.

3. How did the meaning of "asynchronously" evolve over time?

Originally, "asynchronously" was used specifically in the context of data transmission and communication. However, over time, its usage has expanded to refer to any process or system that does not require simultaneous action or synchronization.

4. What are some examples of asynchronous communication?

Examples of asynchronous communication include email, instant messaging, and social media platforms. In these forms of communication, the sender and receiver do not need to be actively engaged at the same time for the message to be delivered and received.

5. How does asynchronous communication differ from synchronous communication?

In synchronous communication, the sender and receiver must be actively engaged and present at the same time for the message to be delivered and received. This is often seen in face-to-face conversations or phone calls. In contrast, asynchronous communication allows for a delay in time between the sender and receiver, making it more flexible and convenient.

Similar threads

  • Special and General Relativity
Replies
17
Views
2K
  • Beyond the Standard Models
Replies
1
Views
2K
  • Beyond the Standard Models
Replies
14
Views
3K
  • Special and General Relativity
2
Replies
56
Views
8K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
6
Views
3K
  • Special and General Relativity
3
Replies
94
Views
8K
Replies
13
Views
9K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
5
Views
3K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
2
Views
2K
Back
Top