🚀 Вийди на новий рівень крипто-торгівлі!
Easy Trade Bot — автоматизуй свій прибуток уже зараз!

Ми пропонуємо перелік перевірених прибуткових стратегій на такі пари як BTC, DOT, TRX, AAVE, ETH, LINK та інші. Ви можете підключити автоматичну торгівлю на своєму акаунті Binance або отримувати торгові рекомендації на email у режимі реального часу. Також можемо створити бота для обраної вами монети.

Всі результати торгів ботів доступні для перегляду у зручних таблицях на головній сторінці. Швидко, динамічно та прозоро!

Перейти до бота + 30$ бонус

Використання семафорів і мютексів для реалізації доступу до спільних ресурсів системи.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Інші

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет “Львівська політехніка” Кафедра ЕОМ Лабораторна робота №4 з диципліни: «Програмовані системи реального часу» на тему: «Використання семафорів і мютексів для реалізації доступу до спільних ресурсів системи.» Мета роботи: навчитись використовувати семафори і мютекси для реалізації доступу до спільних ресурсів системи. Теоретичні відомості Розробити програму, в якій декілька задач імітують доступ до деякого спільного ресурсу використовуючи семафори та м’ютекси. Кожна із задач захоплює ресурс на випадковий інтервал часу із наперед заданого діапазону , який є однаковим для всіх задач. Якщо ресурс є недоступний протягом часу , то надсилається повідомлення про помилку. Окрім задач, які саму імітують використання ресурсу, існує додаткова задача, яка виводить повідомлення про те, яка із задач отримала спільний ресурс і повідомлення про помилку, якщо вибраний ресурс не був доступний в межах заданого інтервалу часу. Окрім виводу повідомлень про використання певних ресурсів, додаткова задача здійснює збір статистичних даних про мінімальний, середній і максимальний час доступу до ресурсу для кожної із задач. Виконати дві реалізації програми – використовуючи семафори та використовуючи м’ютекси для реалізації доступу до спільного ресурсу. Порівняти отримані результати для часу доступу із використанням механізму семафорів і механізму м’ютексів. Пояснити відмінності в отриманих часових параметрах. Програмна реалізація static void TaskStartCreateTasks (void) { INT8U i; for (i = 0; i < N_TASKS; i++) { /* Create N_TASKS identical tasks */ TaskData[i] = '0' + i; /* Each task will display its own letter */ OSTaskCreate(Task, (void *)&TaskData[i], &TaskStk[i][TASK_STK_SIZE - 1], i+10 ); } OSTaskCreate(StatisticTask,NULL,&StatisticTaskStk[TASK_STK_SIZE - 1],StatisticPrio); } /******************************** TASKS ********************************/ void Task (void *parg) { INT8U r; INT8U err1,err2; struct QStruct *elem; randomize(); for (;;) { OSSemPend(RandomSem, T3, &err1); elem=(struct QStruct *)OSQPend(QFree,0,&err2); elem->ErrCode=err1; elem->NumTask= (INT8U )(*(char *)parg - '0'); elem->Time = 0; if (err1 == OS_NO_ERR) { r =(INT8U)random(T2-T1); elem->Time = r; OSTimeDly(r); r=0; OSSemPost(RandomSem); } OSQPost(QNFree,(void *)elem); } } void StatisticTask (void *parg) { INT8U i; INT8U err; char str[5]; struct QStruct *elem; struct Times{ INT8U TMin; INT8U TMax; INT8U T; } MasTime[N_TASKS] = {175,0,0, 45,0,0, 255,0,0} ; for (;;) { elem=(struct QStruct *)OSQPend(QNFree,0,&err); OSQPost(QFree,(void *)elem); MasTime[elem->NumTask].T = elem->Time; if (MasTime[elem->NumTask].T>MasTime[elem->NumTask].TMax) MasTime[elem->NumTask].TMax = MasTime[elem->NumTask].T; if ((MasTime[elem->NumTask].T<MasTime[elem->NumTask].TMin)&&(MasTime[elem->NumTask].T!=0)) MasTime[elem->NumTask].TMin = MasTime[elem->NumTask].T; PC_DispChar(3,elem->NumTask+10, elem->NumTask+'1', DISP_FGND_YELLOW + DISP_BGND_BLUE); PC_DispStr(10,elem->NumTask+10," ", DISP_FGND_YELLOW + DISP_BGND_GREEN); PC_DispStr(10,elem->NumTask+10,itoa(MasTime[elem->NumTask].T,str,5), DISP_FGND_YELLOW + DISP_BGND_BLUE); OSTimeDly(10); } } Результати виконання  Висновок: Під час виконання даної лабораторної роботи я навчився використовувати семафори і мютекси для реалізації доступу до спільних ресурсів системи процесора.
Антиботан аватар за замовчуванням

22.03.2013 13:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!