OSとマルチプロセス

OSを採用する事の利点はどのようなものであろうか。
その一つに、マルチタスクが可能になるという点が挙げられる。

今、ArduinoのユーザーがN個の仕事をArduinoに行わせたいと考えているとする。ただし、Arduino本体は1つしか所有していないとする。すると、それぞれのプログラムを実行するたびに、プログラムをArduinoにフラッシュする必要が生じる。言わば、直列つなぎでプログラムが実行されるのである。図にすると以下の様になる。


Raspberry PiやMac、Windows PCのようなOSを搭載しているシステムにおいては、OSが複数のプログラムを平行して実行できるようにする。CPUは一つなので、プログラムの一つ一つを細かい部分に分割して、交互に実行していくこととなる。この切り替えは人間が感知できるよりも高速に行われる。これにより、ユーザーからは、複数のプログラムが同時並行で処理されているように見えるのである。