DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

SystemC: моделювання інтерфейсу на основі семафору (mutex).

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

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

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

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Проектування комп'ютерних систем та мереж
Група:
СКС-1

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи №5 на тему: „ SystemC: моделювання інтерфейсу на основі семафору (mutex).” Підготував: ст. гр. СКС-1 Львів 2007 Мета: Ознайомитись з поняттям каналів у SystemC на прикладі проекту «Mutex». Завдання: 1.Заванажити до середовища SystemC проект mutex та запустити його на виконання. 2.Ознайомитись з результатами та зробити висновки. Теоретичні відомості: SystemC має вбудовані механізми, відомі як канали, призначені для полегшення рутинної праці , інкапсулюючи засоби організації взаємозв’язку між паралельними процесами. SystemC має два типи каналів: базові та ієрархічні. Базовий канал sc_mutex У програмуванні mutex (mutual exclusion – взаємовиключення) - це об’єкт «семафор», який дозволяє багатьом програмам здійснювати потоковий спільний доступ до певного ресурсу, наприклад, до файлів, без колізій. У SystemC sc_mutex – це наперед визначений базовий канал, призначений для моделювання поведінки механізму синхронізації доступу паралельних процесів до спільних ресурсів. sc_mutex має власні наперед визначені методи: - int lock() – блокує семафор, якщо він є розблокований, в іншому випадку очікує факту розблокування; - int unlock()- розблоковує семафор; - int trylock() – перевіряє чи семафор є вільним; якщо так – блокує його, в іншому випадку повертає «-1». Прикладом використання семафору може бути керування спільною шиною. class bus { sc_mutex bus_access; void write(int addr, int data) { bus_access.lock(); // perform write bus_access.unlock(); } };//endclass Виконання лабораторної роботи: 1.Лістинг проекту: #include <systemc.h> SC_MODULE( mod_a ) { sc_mutex mutex; void write( const char* msg ) { cout << sc_simulation_time() << " " << msg << endl; } void proc_a() { while( true ) { wait( 1, SC_NS ); write( "proc_a - lock requested" ); mutex.lock(); write( "proc_a - lock obtained" ); wait( 2, SC_NS ); if( mutex.unlock() == 0 ) { write( "proc_a - unlock successful" ); } else { write( "proc_a - unlock failed" ); } wait( 3, SC_NS ); if( mutex.trylock() == 0 ) { write( "proc_a - trylock successful" ); } else { write( "proc_a - trylock failed" ); } if( mutex.unlock() == 0 ) { write( "proc_a - unlock successful" ); } else { write( "proc_a - unlock failed" ); } } } void proc_b() { while( true ) { wait( 2, SC_NS ); write( "proc_b - lock requested" ); mutex.lock(); write( "proc_b - lock obtained" ); wait( 4, SC_NS ); if( mutex.unlock() == 0 ) { write( "proc_b - unlock successful" ); } else { write( "proc_b - unlock failed" ); } wait( 3, SC_NS ); if( mutex.trylock() == 0 ) { write( "proc_b - trylock successful" ); } else { write( "proc_b - trylock failed" ); } if( mutex.unlock() == 0 ) { write( "proc_b - unlock successful" ); } else { write( "proc_b - unlock failed" ); } } } SC_CTOR( mod_a ) { SC_THREAD( proc_a ); SC_THREAD( proc_b ); } }; int sc_main( int, char*[] ) { mod_a a( "a" ); sc_start( 20, SC_NS ); return 0; } 2. Результати дослідження роботи проекту:  Висновок: На даній лабораторній роботі я ознайомився з поняттям каналів у SystemC на прикладі проекту «Mutex».
Антиботан аватар за замовчуванням

2015

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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