İşlemcinin yapması gereken işlemleri görevler şeklinde gruplandırıp sonra onları ana programdaki bir süper döngüden çağırmak..
Her bir görev, ana programın bir döngüsü içinde periyodik olarak çağrıldığında çalışan bir sürekli fonksiyondur.
Hiç bir görev bir taramada uzun bir süre boyunca denetimi meşgul etmemelidir.
Görevler birbirleri ile güvenli bir bekleme-devam etme mekanizması ile etkileşmelidir.
Bir görevin çalışması/durması ana uygulamanın davranışları olarak, süper döngü içindeki ana bir thread tarafından yönetilir.
Görevi çalıştıran ana kanallar (sürekli fonksiyonlar) genel bir thread control bayrağı ile yönlendirilirler:
// her bir thread icin kontrol bayragi: typedef struct { unsigned int command; // uygulama yonlendirmesi unsigned int status; // ana thread kontrol bayragi unsigned int subindex; // durum ici durumlar/donguler/alt atlamalar icin unsigned char itemstatus : 4; unsigned char privilege : 2; unsigned char busy : 1; unsigned char lock : 1; } ThreadFlag;
Ana kanal fonksiyonu bir switch case döngüsünden ibarettir.