In my first actual job in 1985 we did real time programming on Digital Equipment Corporation VAX computers.
I liked these machines , they had 32 bit address space, so no fiddling with selectors or active page registers.
However compared to today they were highly primitive. My Apple watch has more memory than those VAX machines, and who knows maybe more processing power!
Anyway we programmed in RTL2.
My job was to design faster versions of the built in operating system functions for synchronising processes and inter process communication.
We had separate VAX machines connected via shared memory. That is memory that is accessible to both computers.
I wrote code to synchronise the clocks using the shared memory once. It was amazing. When I ran the program, because the two computers were also connected on a LAN and the LAN also synchronised the system times, it caused a system crash. It couldn’t handle the times synchronising so quickly!
I also has to write a program to close all programs the system for shutdown. I ran it first time and it came back with an access not allowed error, so I asked the system admin to grant me access to test my program. When I ran it again, people started saying that their terminal sessions were suddenly ending. I realised that I failed to check that the processes where in the correct group!, and then mercifully the next bug showed up. The process terminated itself by mistake, saving the other users from losing their sessions. I did testing after hours after that!
I learnt a lot about process synchronisation those days. We didn’t have threads then only processes!
Its interesting how things have changed. In those days Real Time Programming was a separate discipline, nowadays with the improved hardware speed its hardly ever mentioned anymore. I think all we have to do these days in programming if it is real time is to ensure we don’t have garbage collection threads suddenly consuming cpu cycles when we need performance!
Actually the UI of any decent smartphone is using real time programming fundamentals! (In my humble opinion!)
I enjoyed the Real Time World those days, we were considered “System Programmers” not just ordinary programmers.
Anyway the contract ended and new more interesting things were becoming available GUI’s and graphics, and Windows had just become 32 bit!…..