Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практична робота 4.doc
Скачиваний:
2
Добавлен:
25.11.2019
Размер:
206.34 Кб
Скачать

Команди ipcs і ipcrm

Як ми бачили з попереднього прикладу, створена область пам'яті, що розділяється, зберігається в операційній системі навіть тоді, коли немає жодного процесу, що включає її в свій адресний простір. З одного боку, це має певні переваги, оскільки не вимагає одночасного існування взаємодіючих процесів, з другого боку, може заподіювати істотні незручності. Припустимо, що попередні програми ми хочемо використовувати так, щоб підраховувати кількість запусків протягом однієї, поточної, сеансу роботи в системі. Проте в створеному сегменті пам'яті, що розділяється, залишається інформація від попереднього сеансу, і програми видаватимуть загальну кількість запусків за весь час роботи з моменту завантаження операційної системи. Можна б було створювати для нового сеансу новий сегмент пам'яті, що розділяється, але кількість ресурсів в системі не безмежна. Нас рятує те, що існують способи видаляти невживані ресурси System V IPC як за допомогою команд операційної системи, так і за допомогою системних викликів. Всі засоби System V IPC вимагають певних дій для звільнення займаних ресурсів після закінчення взаємодії процесів. Для того, щоб видаляти ресурси System V IPC з командного рядка, нам знадобляться дві команди, ipcs і ipcrm.

Команда ipcs видає інформацію про всі засоби System V IPC, існуючі в системі, для яких користувач володіє правами на читання: областях пам'яті, що розділяється, семафорах і чергах повідомлень.

Команда ipcs

ipcs [-asmq] [-tclup]

ipcs [-smq] -i id

ipcs -h

Опис команди

Команда ipcs призначена для отримання інформації про засоби System V IPC, до яких користувач має право доступу на читання.

Опція -i дозволяє вказати ідентифікатор ресурсів. Видаватиметься тільки інформація для ресурсів, що мають цей ідентифікатор.

Види IPC ресурсів можуть бути задані за допомогою наступних опцій:

  • –s для семафорів;

  • -m для сегментів пам'яті, що розділяється;

  • -q для черг повідомлень;

  • -a для всіх ресурсів (за умовчанням).

Опції [-tclup] використовуються для зміни складу вихідної інформації. За умовчанням для кожного засобу виводяться його ключ, ідентифікатор IPC, ідентифікатор власника, права доступу і ряд інших характеристик. Вживання опцій дозволяє вивести:

  • -t часи здійснення останніх операцій над засобами IPC;

  • -p ідентифікатори процесу, що створив ресурс, і процесу, що вчинив над ним останню операцію;

  • -c ідентифікатори користувача і групи для творця ресурсу і його власника;

  • -l системні обмеження для засобів System V IPC;

  • -u загальний стан IPC ресурсів в системі.

Опція -h використовується для отримання короткої довідкової інформації.

Зі всього різноманіття інформації, що виводиться, нас цікавитимуть тільки IPC ідентифікатори для засобів, створених вами. Ці ідентифікатори використовуватимуться в команді ipcrm, що дозволяє видалити необхідний ресурс з системи. Для видалення сегменту пам'яті, що розділяється, ця команда має вигляд:

ipcrm shm <IPC ідентифікатор>

Команда ipcrm

ipcrm [shm | msg | sem] id

Опис команди

Команда ipcrm призначена для видалення ресурсу System V IPC з операційної системи. Параметр id задає IPC ідентифікатор для ресурсу, що видаляється, параметр shm використовується для сегментів пам'яті, що розділяється, параметр msg – для черг повідомлень, параметр sem – для семафорів.

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