O`zbekiston respublikasi raqamli texnologiyalar vazirligi muhammad al-xorazmiy nomidagi


Navbatlarni boshqarish (Queue management)


Download 0.59 Mb.
bet2/6
Sana15.06.2023
Hajmi0.59 Mb.
#1484399
1   2   3   4   5   6
Bog'liq
Mustaqil ish Real vaqt tizimlari.

Navbatlarni boshqarish (Queue management).

Navbatni boshqarish FreeRTOS-ning muhim xususiyati bo'lib, u vazifalarni navbatlar orqali bir-biri bilan xavfsiz tarzda bog'lash imkonini beradi. FreeRTOS-da navbatni boshqarishning ba'zi asosiy jihatlari:

Navbat yaratish: FreeRTOS-da navbatlar xQueueCreate() API yordamida ish vaqtida dinamik ravishda yaratiladi. Ushbu API sizga navbatda turishi mumkin bo'lgan maksimal elementlar sonini va har bir element hajmini baytlarda belgilash imkonini beradi. Navbatlar turli xil konfiguratsiyalar bilan yaratilishi mumkin, masalan, blokirovkalash yoki bloklanmaslik, har xil turdagi aloqa va vazifalar o'rtasida muvofiqlashtirish imkonini beradi.

Navbatdagi operatsiyalar: FreeRTOS xQueueSend() va xQueueReceive() kabi navbatdan xabarlar yoki ma'lumotlarni yuborish va qabul qilish uchun API'larni taqdim etadi. Ushbu API'lar vazifalarga xabarlarni navbatga jo'natish imkonini beradi, ularni bir xil navbatdagi boshqa vazifalar tomonidan olish mumkin. Xabarlar butun sonlar, floatlar yoki maxsus ma'lumotlar tuzilmalari kabi turli xil ma'lumotlar turlari bo'lishi mumkin.

Bloklash va bloklanmaslik operatsiyalari: FreeRTOS navbatlarini blokirovkalash yoki bloklamaslik rejimida ishlash uchun sozlash mumkin. Bloklash rejimida vazifalar operatsiya tugagunga qadar bloklanadi (ya'ni, protsessor davrlarini iste'mol qilmaydi), masalan, yuborish uchun navbat to'liq bo'lmasa yoki qabul qilish uchun bo'sh bo'lmasa. Bloklanmagan rejimda, agar navbat operatsiyasini tugatib bo'lmasa, vazifalar darhol xato kodi bilan qaytadi va vazifalar boshqa vazifalarni bajarishda davom etishiga imkon beradi.



Navbatning ustuvor inversiyasi: FreeRTOS shuningdek, ustuvor inversiyaning oldini olish mexanizmlarini taqdim etadi, bu hodisa past ustuvor vazifa yuqoriroq vazifa uchun zarur bo'lgan resursga ega bo'lib, yuqoriroq vazifani kechiktirishga olib keladi. FreeRTOS sizga navbatga kiradigan vazifaning ustuvorligini belgilash imkonini beradi, bu esa yuqoriroq ustuvor vazifalar navbatda turgan pastroq ustuvor vazifalarni oldini olishini ta'minlaydi.

Navbatni boshqarish: FreeRTOS vQueueDelete(), uxQueueMessagesWaiting() va xQueueReset() kabi navbatlarni boshqarish uchun API’larni taqdim etadi, ular navbatlarni o‘chirish, navbatda kutilayotgan xabarlar sonini olish va navbatni qayta o‘rnatish imkonini beradi. Ushbu API'lar ish vaqtida navbatlarni boshqarishda moslashuvchanlikni ta'minlaydi.

Navbat to'plamlari: FreeRTOS shuningdek, xQueueSelectFromSet() API yordamida vazifalarni bir vaqtning o'zida bir nechta navbatda blokirovka qilishga imkon beruvchi navbat to'plamlarini qo'llab-quvvatlaydi. Bu vazifalarga bir nechta navbatdagi xabarlarni samarali kutish imkonini beradi, bu esa band kutish yoki so‘rovga bo‘lgan ehtiyojni kamaytiradi



Download 0.59 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling