Listing 1 Vazifa funksiyasi prototipi Listing 2 Tipik vazifa funksiyasining tuzilishi void ATAskFunction( void *pvParameters );
/* Vazifa odatda cheksiz tsikldagi kabi amalga oshiriladi. */ uchun(;; ) {
/* Vazifa funksiyalarini amalga oshirish uchun kod shu yerda bo'ladi. */
} void ATAskFunction( void *pvParameters ) { /* O'zgaruvchilar
oddiy funksiya bo'yicha e'lon qilinishi mumkin. Bu funksiya yordamida yaratilgan vazifaning har bir nusxasi iVariableExample oÿzgaruvchisining oÿz nusxasiga ega boÿladi. Agar o'zgaruvchi statik deb e'lon qilingan bo'lsa, bu to'g'ri bo'lmaydi - bu holda o'zgaruvchining faqat bitta nusxasi mavjud bo'ladi va bu nusxa vazifaning har bir yaratilgan nusxasi tomonidan baham ko'riladi. */ int iVariableExample = 0; Ilova ko'plab vazifalardan iborat bo'lishi mumkin. Agar dasturda ishlaydigan mikrokontroller faqat bitta yadroga ega bo'lsa, u holda har qanday vaqtda faqat bitta vazifa bajarilishi mumkin. Bu shuni anglatadiki, vazifa ikkita holatdan birida mavjud bo'lishi mumkin: Ishlayotgan va Ishlamaydigan. Biz birinchi navbatda ushbu soddalashtirilgan modelni ko'rib chiqamiz - lekin shuni yodda tutingki, bu juda soddalashtirilgan, chunki keyinroq "Ishlamaydigan" holati aslida bir qator pastki holatlarni o'z ichiga olganini ko'ramiz.
Ishlamaydigan holatdan Ishlayotgan holatga o'tgan vazifa "o'chirilgan" yoki "almashtirilgan" deb aytiladi. Aksincha, Ishlayotgan holatdan Ishlamaydigan holatga o'tgan vazifa "o'chirilgan" yoki "almashtirilgan" deyiladi. FreeRTOS rejalashtiruvchisi vazifani o'zgartira oladigan yagona ob'ektdir.
Vazifa Ishlayotgan holatda bo'lsa, protsessor aslida o'z kodini bajarmoqda. Vazifa ishlamayotgan holatda bo'lsa, vazifa harakatsiz bo'lib, reja tuzuvchi keyingi safar ishlayotgan holatga o'tishga qaror qilganda, uning holati bajarilishni davom ettirish uchun saqlanadi. Vazifa bajarilishni davom ettirganda, u buni oxirgi marta Ishlayotgan holatdan chiqishdan oldin bajarmoqchi bo'lgan ko'rsatma asosida amalga oshiradi.