3 ms·
https://arstechnica.com/gadgets/2016/09/an-os-9-odyssey-why-do-some-mac-users-still-rely-on-16-year-old-software/ https://arstechnica.com/gadgets/2016/09/an-os-
by dustractor 6y ago
https://arstechnica.com/gadgets/2016/09/an-os-9-odyssey-why-do-some-mac-users-still-rely-on-16-year-old-software/ https://arstechnica.com/gadgets/2016/09/an-os-9-odyssey-why-...
There are apparently some DNA sequencer machines that only interface with older macs. The linked article is just as an 'exhibit A'... It doesn't go into the technical details as to why that is so. I can't find the article on why virtualization is difficult for this case but it was very interesting.
Cooperative multitasking (mac system 5, system 6, system 7 ish era) meant that the running task had the responsibility to yield. If the task was something like 'sample the value of x instrument register every 10 ms' (or something like that) then it could do the quick maths based on the base system clock rate and know exactly how many cycles to sleep between each sampling. In other multitasking scenarios where the os has it's own things it wants to do, the program cannot deterministically know how many cycles to sleep. What if the process will be arbitrarily delayed or interrupted, so some samples are taken 17 clocks apart and some samples are 19? With the priority being JITTER FREE, it doesn't help if the os thinks, ahh i have a million clock cycles this second, and only 1000 things to do, I'll just do some housekeeping... so there are background processes using bus resources, network interrupts, etcetera, all batched up and dispatched because the os thinks it has time to procrastinate this one task that just wants to sleep and sample a register and sleep... but sleeping for EXACT duration.
- derekp7 6y agoI've always felt that when dealing with hard real-time requirements, the real-time functionality should be offloaded to a separate dedicated processor that acts as a buffer. As another option, it would be nice if modern OS's could dedicate cores on multi-core systems to specific real-time processes. Then the OS can still do whatever it needs, while the real-time process gets guaranteed CPU treatment.
- caspper69 6y agoI have been toying with this idea for far longer than I'd ever care to admit. It works very well. Preemption is evil in a multicore world. Still necessary in spots, but evil nonetheless.
- elcritch 6y agoEven without OS, or SMM on x86's, preemptions modern desktop cpu caches can cause large jitter. Writing/reading to the GPIO registers can take a variable number of cycles. Though I've toyed with disabling Linux scheduling on RPi3's last core and manually run a program on it. Fairly easy to do. It does really help jitter, but still not as reliable as a dedicated MCU.
- ben1040 6y ago>There are apparently some DNA sequencer machines that only interface with older macs. I used to work in a Human Genome Project lab. Two of the 1990s workhorse DNA sequencing machines, the Applied Biosystems models 373 & 377, connected to Mac machines of similar vintage (my recollection is we had a lot of Power Mac 7100s, or at least machines in the 7xxx form factor). IIRC the sequencing instrument had an interface to plug into the LocalTalk port on the Mac, but I might be wrong on this, it's been 20+ years. And the software needed the classic MacOS. The ABI 373 and 377 are so old and obsolete at this point that you might find one in your local science museum. I know my city's science museum has a display with an ABI 373 from my old lab. ABI's successor Sanger sequencing machines, models 3700 (1998) and 3730 (2003), had Windows-based companion computers and connected to the instrument via Ethernet port, so you didn't have as much lock-in to super old hardware.