Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Сигнали та семафори ОС UNIX



Сигнали в Unix – це найпростіша форма міжпроцесорної взаємодії, яка використовуєтьсядля передачі від одного процесу до іншого певного повідомлення про виникнення визначеноїподії. Сигнали можуть бути синхронними у випадку, коли ідентифікатором сигналу є власнеобчислювальний процес, і асинхронний, коли користувач працює за терміналом. Джереломасинхронних сигналів може бути ядро ОС, яке контролює певні стани апаратури у випадкупомилкових ситуацій.

В ОС Unix механізм семафорів є узагальненням класичного підходу семафорноїміжпроцесної взаємодії, що була розроблена голландським професором Дейкстра.

Семафорскладається з:

 значення семафору;

 номер процесу, який останній працював з цим семафором;

 число процесів, які очікують збільшення значення семафору;

 число процесів, які очікують нульового значення семафору.

Для роботи з семафорами є три наступні системні виклики:

 semget, створення і отримання доступу до набору семафорів;

 semop, для маніпуляції (зміни) значень семафорів;

 semctl, для виконання різноманітних керуючих операцій над набором семафорів.

95 Програмні канали та черги повідомлень ОС UNIX.

Механізм програмних каналів (pipes) фактично є основним засобом взаємодії тасинхронізації процесів. Програмний канал дозволяє взаємодіяти між собою будь – якому числупроцесів, забезпечуючи дисципліну доступу FIFO.

Unix розділяє два типи програмних каналів:

 іменований канал використовується для взаємодії та синхронізації довільнихпроцесів, які знають ім’я цього програмного каналу і мають відповідні правадоступу;

 неіменованим програмним каналом може користуватися тільки процес, який створивйого та процеси, які породжені цим головним процесом.

Для того, щоб створити іменований програмний канал використовується виклик open, щобстворити неіменований програмний канал використовується спеціальний виклик pipe.Операції зчитування/запису в каналах здійснюється за допомогою системних файловихвикликів (read, write, close).

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

 msgget (message get) – створює нову чергу повідомлень і отримання дескрипторанової черги;

 msgsnd (message send) – для відправки повідомлень, тобто для запису повідомлень увідповідну чергу;

 msgrev (message resive) – служить для прийому повідомлення, тобто для виборуповідомлення з певної черги;

 msgctl (message control) – системний виклик для здійснення керуючих функцій.

Ядро ОС зберігає повідомлення у вигляді зв’язаного списку, номер певної чергиповідомлень є індексом в певному системному масиві, який містить вказівники на всі чергиповіідомлень.





Дата публикования: 2015-09-18; Прочитано: 358 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...