Студопедия — Що ж таке сигнали?
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Що ж таке сигнали?






Сигналы - це програмні переривання. Сигнали в ОС Linux використовуються як засоби синхронізації і взаємодії процесів і ниток. Сигнал є повідомленням, яке система посилає процесу або один процес посилає іншого. З точки зору користувача процесом отримання сигналу виглядає як виникнення переривання. Процес припиняє своє виконання, пі керування передається механізму обробки сигналу (обробщику). Після закінчення обробки сигналу
Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
Курсова робота 201-ТК
процес може відновити псвое виконання з тієї точки, на якій він був перерваний.

насамперед, кожен сигнал має власне ім ’ я та номер. Імена всіх сигналів починаються з послідовності SIG. пНапример, SIGALRM - генерується, коли таймер, встановленої функцією alarm(), відміряє вказаний проміжок часу. Linux підтримує 31 сигнал (номери від 1 до 31).

Сигнали можуть породжуватися різними умовами:

1. Генеруватися терміналом, при натисканні певної комбінації клавіш, наприклад, натискання Ctrl+C генерує сигнал SIGINT, таким чином можна перервати виконання програми, яка вийшла з під контролю;

2. Апаратні помилки - поділ на 0, помилка доступу до пам'яті та інші - також призводять до генерації сигналів. пЭти помилки зазвичай виявляються апаратним забезпеченням, яка сповіщає ядро про їх появу. ппісля цього ядро генерує відповідний сигнал і передає його процесу, який виконувався в момент появи помилки. пНапример, сигнал SIGSEGV надсилається процесу у разі спроби звернення до неправильного адресою в пам'яті.

3. Іншим процесом (у тому числі і ядром і системним процесом), виконали системний виклик передачі сигналу kill();

4. При виконанні команди kill.

Передачу сигналів процесу у випадках його створення будь-яким іншим процесом, можна розглядати як реалізацію псигнальных засобів зв'язку.

В разі отримання сигналу процес може запросити ядро виконати одну з трьох реакції на сигнал:

1. Примусово проігнорувати сигнал (практично будь-який сигнал може бути проігноровано, крім SIGKILL і SIGSTOP).

2. Провести обробку сигналу за замовчуванням: проігнорувати, зупинити процес, перевести в стан очікування до отримання пдругого спеціального сигналу або завершити роботу.

3. Перехопити сигнал (виконати обробку сигналу, специфіковану користувачем).

Типи сигналів і способи їх виникнення в системі жорстко регламентовані. Типи сигналів прийнято ставити числовими номерами, в діапазоні від 1 до 31 включно, але при програмуванні часто використовуються символьні імена сигналів.

Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
Курсова робота 201-ТК
Управління завданнями

До команд управління завданнями відносяться:

  • jobs - Перераховує ваші завдання.
  • & - Виконати завдання у фоновому режимі.
  • Ctrl+Z - Призупинити виконання поточної (інтерактивної) завдання.
  • suspend - Призупинити командний процесор.
  • fg Перевести завдання в інтерактивний режим виконання.
  • bg Перевести припинену завдання у фоновий режим виконання.

Всі командні оболонки Linux мають можливість пуправления завданнями: можливість виконувати програми у фоновому (невидима багатозадачність) і інтерактивному (щоб програма ви- пполнялась як активний процес у сеансі вашого командного ппроцессора) режимах.

Завдання (job) - це просто робоча одиниця пкомандного процесора.

Коли ви запускаєте команду, ваш поточний командний ппроцессор визначає її як завдання і стежить за нею. Коли команда виконана, відповідне завдання зникає. Завдання знаходяться на більш високому рівні, ніж процеси Linux; операційна система Linux нічого про них не знає. Вони є лише елементами пкомандного процесора. Ось деякі важливі терміни з лексикона завдань.

  • інтерактивне завдання (foreground job) - що Виконується в пкомандном процесорі, що займає сеанс командного процесора, ptak що ви не можете виконати іншу команду.
  • фонове завдання (background job) - що Виконується в командному процесорі, але не займає сеанс пкомандного процесора, так що ви можете виконати іншу пкоманду в цьому ж командному процесорі.
  • призупинити (suspend) - Тимчасово призупинити інтерактивний процес.
  • відновити (resume) - Повернутися до вьполнению discontinued завдання.

Зручно відправляти завдання, які не потребують втручання користувача. Прикладами таких завдань можуть служити пкомпиляция програмного забезпечення і складні обчислювальні програми. Для цих додатків важливо мінімізувати псуммарное час виконання в системі, завантаженої іншими процесами, породженими, зокрема, інтерактивними завданнями.

Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
Курсова робота 201-ТК
якщо ви запустили з командного процесора команду пинтерактивном режимі і хочете негайно припинити виконання команди, введіть Ctrl-З. Командний процесор сприйме Ctrl-З як "зупинити виконання поточної задачі негайно". Тому, пякщо ви виводите дуже довгий файл (скажімо, командою cat) та пхочете зупинити висновок, натисніть Ctrl-З. Насправді поточної задачі ппо натискання Ctrl-З відправиться сигналу SIGINT.

Щоб припинити виконання програми, що працює в фоновом режимі, ви можете перевести її в інтерактивний режим з допомогою команди fg і потім натиснути Ctrl-З, або використовувати команду kill.

Механізмами синхронізації є засоби операційної системи, які допомагають розв'язувати основне завдання синхронізації — забезпечувати координацію потоків, які працюють зі спільно використовуваними даними. Якщо такі засоби — це мінімальні блоки для побудови багатопотокових програм, їх називають синхронізаційними примітивами.

 

Синхронізаційні механізми поділяють на такі основні категорії:

універсальні, низького рівня, які можна використовувати різними способами (семафори);

прості, низького рівня, кожен з яких пристосований до розв'язання тільки однієї задачі (м'ютекси та умовні змінні);

універсальні високого рівня, виражені через прості; до цієї групи належить концепція монітора, яка може бути виражена через м'ютекси та умовні змінні;

високого рівня, пристосовані до розв'язання конкретної синхронізаційної задачі (блокування читання-записування і бар'єри).

Семафори є найстарішими синхронізаційними примітивами з числа тих, які застосовуються на практиці.

Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
Курсова робота 201-ТК
Семафор — це спільно використовуваний невід'ємний цілочисловий лічильник, для якого задано початкове значення і визначено такі атомарні операції.

Зменшення семафора (down): якщо значення семафора більше від нуля, його зменшують на одиницю, якщо ж значення дорівнює нулю, цей потік переходить у стан очікування доти, поки воно не стане більше від нуля (кажуть, що потік «очікує на семафорі» або «заблокований на семафорі»). Цю операцію називають також очікуванням — wait.

Збільшення семафора (up): значення семафора збільшують на одиницю; коли при цьому є потоки, які очікують на семафорі, один із них виходить із очікування і виконує свою операцію down. Якщо на семафорі очікують кілька потоків, то внаслідок виконання операції up його значення залишається нульовим, але один із потоків продовжує виконання (у більшості реалізацій вибір цього потоку буде випадковим). Цю операцію також називають сигналізацією — post.

Фактично значення семафора визначає кількість потоків, що може пройти через цей семафор без блокування. Коли для семафора задане нульове початкове значення, то він блокуватиме всі потоки доти, поки якийсь потік його не «відкриє», виконавши операцію up. Операції up і down можуть бути виконані будь-якими потоками, що мають доступ до семафора.

Окремий випадок: якщо семафор може приймати лише значення 0 і 1 (двійковий семафор), він фактично є змінною блокування.

Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
Курсова робота 201-ТК

Семафор – універсальний засіб, що забезпечує як взаємне виключення, так і очікування події.

М'ютексом називають синхронізаційний примітив, що не допускає виконання деякого фрагмента коду більш як одним потоком. Фактично м'ютекс є реалізацією блокування на рівні ОС.

 

М'ютекс реалізує взаємне виключення. Його основне завдання — блокувати всі потоки, які намагаються отримати доступ до коду, коли цей код уже виконує деякий потік.

М'ютекс може перебувати у двох станах: вільному і зайнятому. Початковим станом є «вільний». Над м'ютексом можливі дві атомарні операції.

1. Зайняти м'ютекс (mutex_lоск): якщо м'ютекс був вільний, він стає зайнятим, і потік продовжує своє виконання (входячи у критичну секцію); якщо м'ютекс був зайнятий, потік переходить у стан очікування (кажуть, що потік «очікує на м'ютексі», або «заблокований на м'ютексі»), виконання продовжує інший потік.

Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
Курсова робота 201-ТК
2. Звільнити м'ютекс: м'ютекс стає вільним; якщо на ньому очікують кілька потоків, з них вибирають один, він починає виконуватися, займає м'ютекс і входить у критичну секцію. У більшості реалізацій вибір потоку буде випадковим. Звільнити м'ютекс може тільки його власник.







Дата добавления: 2015-09-04; просмотров: 594. Нарушение авторских прав; Мы поможем в написании вашей работы!



Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

Эндоскопическая диагностика язвенной болезни желудка, гастрита, опухоли Хронический гастрит - понятие клинико-анатомическое, характеризующееся определенными патоморфологическими изменениями слизистой оболочки желудка - неспецифическим воспалительным процессом...

Признаки классификации безопасности Можно выделить следующие признаки классификации безопасности. 1. По признаку масштабности принято различать следующие относительно самостоятельные геополитические уровни и виды безопасности. 1.1. Международная безопасность (глобальная и...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия