I am going through the book operating system principles by Hansen . Hansen begins the third chapter on concurrent programming by discussing interleaving of the machine instructions of processes being run at the same time .
Then it begins with providing the language notation for multiprogramming and writes the following program whose purpose is to copy records from one sequence to another .
procedure copy (var f, g: sequence of T); var s, t: T; completed: boolean; begin if not empty(f) then begin completed:= false; get(s, f); repeat t:= s; cobegin put(t, g); if empty(f) then completed:= true else get(s, f); coend until completed; end end
(If possible please tell me the name of the language ,was it Algol60 ?Anyways let's call it X )
All fine till here , a keyword or statement was introduced into the language X , which would perform multiprogramming. But I would like to know how was the language changed so as to incorporate this new keyword or function for multiprogramming . What changes were done to language X,owing to which X which was capable of supporting one execution at a time could now support more than one at a time ?
P.S : Hansen described about a single -user operating system called "Solo ".There he somehow means Pascal supports development of concurrent programs. The answer to the question in this post can be approximated by an answer to "what were the differences between languages which supported concurrent programs and those who didn't "?
I could have written "what are the differences" in the auxiliary question but I wanted to know how languages started having constructs for concurrent programming ,that's why I wrote "What were the differences".