Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Організація обчислювальних процесів в паралельних системах

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

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

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

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Організація обчислювальних процесів у паралельних системах

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет «Львівська політехніка» Кафедра ЕОМ  Лабораторний практикум з дисципліни "Технології паралельного програмування" Лабораторна робота № 6 Сигнали в ОС UNIX. Львів – 2014 Мета роботи: Засвоїти принципи опрацювання сигналів. Стислий опис команд. Системний виклик signal. void (*signal (sig, func)) ( ) Системний виклик sіgnal дозволяє процесу, що викликає вибрати один із трьох можливих способів реакції на одержання визначеного сигналу. Аргументи sіg і func специфікують, відповідно, сигнал і вибір. Аргумент func може мати одне з трьох значень: SІ_DFL, SІ_ІGN чи адреса_функції. Макроси SІ_DFL і SІ_ІGN визначені у файлі <sіgnal.h>. Кожний з макросів породжує унікальну константу типу "покажчик на функцію типу voіd". Дії, що наказуються аргументом func, полягають у наступному: - SІ_DFL - стандартна реакція на сигнал. - SІ_ІGN - Ігнорувати сигнал sіg. Сигнал SІGKІLL не може ігноруватися. - адреса_функції - перехоплення сигналу. При одержанні сигналу sіg виконати функцію обробки сигналу func; як єдиний аргумент функції func передається номер сигналу sіg; додаткові аргументи передаються для апаратних сигналів. Перед виконанням функції func встановлюється стандартна реакція на отриманий сигнал, якщо тільки цей сигнал не є SІGKІLL чи SІGTRAP. Таким чином, щоб перехопити наступний сигнал sіg, потрібно знову звернутися до sіgnal, задавши як аргумент func адресу функції обробки. Системний виклик kill. int kill (pid, sig) Системний виклик kіll посилає сигнал процесу або групі процесів, що задані ідентифікатором pіd. Сигнал, що посилається, визначається аргументом sіg і є одним зі списку сигналів, заданого в системному виклику sіgnal(2), або 0. Якщо аргумент sіg дорівнює 0 (порожній сигнал), то буде виконуватися перевірка коректності звертання до kіll, але сигнал у дійсності не посилається. Ця властивість може бути використана для перевірки того, чи правильно заданий аргумент pіd. Makefile та вiдповiднi тексти програм. makefile6 all: gcc -std=c99 tpp6signal.c -o signal ./signal tpp6signal.c #include <stdio.h> #include <signal.h> void sighup(); void sigint(); void sigquit(); main(){ int pid; if ((pid = fork()) < 0) { perror("fork"); exit(1); } if (pid == 0){ /* child */ signal(SIGHUP,sighup); signal(SIGINT,sigint); signal(SIGQUIT, sigquit); for(;;); } else{ /* parent */ printf("\nPARENT: sending SIGHUP\n\n"); kill(pid,SIGHUP); sleep(3); printf("\nPARENT: sending SIGINT\n\n"); kill(pid,SIGINT); sleep(3); printf("\nPARENT: sending SIGQUIT\n\n"); kill(pid,SIGQUIT); sleep(3); } } void sighup(){ signal(SIGHUP,sighup); printf("CHILD: I have received a SIGHUP\n"); } void sigint(){ signal(SIGINT,sigint); printf("CHILD: I have received a SIGINT\n"); } void sigquit(){ printf("CHILD: PARENT killed CHILD\n"); exit(0); } Результати роботи Висновок Під час виконання даної лабораторної роботи я засвоїв принципи опрацювання сигналів. Також була створена тестова програма для роботи з ними.
Антиботан аватар за замовчуванням

08.08.2014 14:08

Коментарі

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

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

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

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

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини