Back when I made an 8086 emulator I noticed that there was the LOCK prefix intended for synchonization in a multiprocessor environment. Yet the only multitasking I know of for the x86 arch. involves use of the APIC which didn’t come around until either the Pentiums or 486s.
Was there any kind of standard for 8086 multitasking or was it done by some manufacturer specific extensions to the instruction set and/or special ports?
By standard, I mean things like: How do you separate the 2 processors if they both use the same memory? This is impossible without some kind of way to make each processor execute a different piece of code. (or cause an interrupt on only one processor)
If they accessed the same memory via Intel’s MULTIBUS then the LOCK prefix caused exactly that kind of serialization.
If the memory was installed locally on one processor’s circuit board then the LOCK prefix would not prevent other processors from coming in over the MULTIBUS and accessing this board’s memory at the same time. In this configuration the programmer would have to play other games to lock the bus (and unlock the bus after finishing the memory operation).