setjump/longjump?
Не совсем. Это, наверное, не совсем сопрограммы, а скорее фиберы.
В код отдельной такой сопрограммы вставляем вызов спец. процедуры Pass, диспетчер возобновляет очередную сопрограмму, пока и она не вызовет Pass. И т.п. Кооперативная многозадачность.
Реализация - на общем стеке, главном стеке программы. Кадры засыпающей сопрограммы снимаются со стека и запоминаются, на стек помещаются кадры получающей управление сопрограммы.
Никакой поддержки ОС не требуется, легковесный библиотечный параллелизм, поскольку стек один, можно иметь очень много параллельных задач.