Arduino Operating System

grimofdoom:
I have seen many(several) operating systems designed on arduino (like Pyxis), and have a project in which I want/need to create my own. I have experience in other areas of programming for game development and a small bit of direct gpu programming in Dx12; but and Operating System, speciallly being single threaded, is new grounds. I can't find any tutorials or series that will help me learn to figure this out.

One of the simplest operating systems for Arduino would be a_coos. It is a cooperative multitasking system. Comparing to preemptive OS it much simpler to use: no worries about atomic operations, semaphores, etc. Only one OS service is offered, COOS_DELAY(x). It suspends current task operation for x milliseconds and passes control to a next task. After specified delay task operation resumed.

Another advantage is that a_coos is written in pure C++ without any assembler code. It can run on any processor with standard library. It can be installed as an Arduino library.