Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MET_VS~2.DOC
Скачиваний:
0
Добавлен:
10.11.2019
Размер:
271.87 Кб
Скачать

Приклад 7.1

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

$ prog7_1 w Message_text_1

$ prog7_1 w Message_text_2

………

$ prog7_1 w Message_text_n

Для читання даних, які знаходяться у сегменті поділяємої пам'яті, задається опція r:

$ prog7_1 r

Для вилучення всіх даних з сегмента поділяємої пам'яті, користувач повинен задати команду:

$ prog7_1 d

У багатьох випадках є потрібно стежити за виконанням необхідних дій стосовно сегментів поділяємої пам'яті (команда ipcs, лаб. робота №5). Вилучити сегмент можна за допомогою команди ipcrm з опцією shm та ідентифікаційним номером процесу. Роздрук 7.1 демонструє роботу програми 7.1 та її можливі взаємодії зі стандартними механізмами управління поділяємою пам'яттю:

KSI Linux release 1.1 (CyberZOO)

Kernel 2.0.33 on an i486

login: hoshaba

Password:

Last login: Tue Feb 24 20:01:46 on tty1

[root@lili hoshaba]# cd test/

[root@lili test]# ipcs -m

------ Shared Memory Segments --------

key shmid owner perms bytes nattch status

0x00000000 0 nobody 600 46084 7 dest

0x00280267 1 root 644 102400 43

[root@lili test]# ./prog7_1 w "This is a example text..."

Creating new shared memory segment

Done...

[root@lili test]# ipcs -m

------ Shared Memory Segments --------

key shmid owner perms bytes nattch status

0x00000000 0 nobody 600 46084 7 dest

0x00280267 1 root 644 102400 43

0x53030811 386 root 666 100 0

[root@lili test]# ./prog7_1 r

Shared memory segment exists - opening as client

segptr: This is a example text...

[root@lili test]# ./prog7_1 d

Shared memory segment exists - opening as client

Shared memory segment marked for deletion

[root@lili test]# ipcs -m

------ Shared Memory Segments --------

key shmid owner perms bytes nattch status

0x00000000 0 nobody 600 46084 7 dest

0x00280267 1 root 644 102400 43

[root@lili test]# ./prog7_1 w "This is a example text..."

Creating new shared memory segment

Done...

[root@lili test]# ipcs -m

------ Shared Memory Segments --------

key shmid owner perms bytes nattch status

0x00000000 0 nobody 600 46084 7 dest

0x00280267 1 root 644 102400 43

0x53030811 514 root 666 100 0

[root@lili test]# ipcrm shm 514

resource deleted

[root@lili test]# ipcs -m

------ Shared Memory Segments --------

key shmid owner perms bytes nattch status

0x00000000 0 nobody 600 46084 7 dest

0x00280267 1 root 644 102400 43

[root@lili test]# logout

Роздрук 7.1

Контрольні питання

  1. Назвіть призначення механізмів поділяємої пам'яті.

  2. Назвіть відмінності та переваги поділяємої пам'ятті та інших вивчених механізмів міжпроцесних комунікацій.

  3. Поясніть значення системних викликів (функцій) shmget, shmetl, shmat, та shmdt.

  4. У програмі 7.1 визначте основні блоки: створення сегмента поділяємої пам'яті, запис, читання та знищення даних у сегменті поділяємої пам'яті, зміна параметрів доступу до сегментів.

  5. Поясніть призначення та роботу функції strcpy у рядку 47 програми 7.1.

Завдання

  1. Одержати та відкомпілювати програму 7.1. Запам'ятати попередні значення системи поділяємої пам'яті. Виконати програму 7.1. і записати значення системи поділяємої пам'яті. Вилучити наслідки роботи програми з поділяємої пам'яті за допомогою команди ipcrm.

  2. Підготувати звіт по лабораторній роботі.

Зміст звіту:

  • короткі відповіді на контрольні питання;

  • призначення програми 7.1;

  • алгоритм і текст програми 7.1.

Література

  1. Бабушкин М., Иваненко С., Коростелев В. Web-сервер в действии - СПб: Питер, 1997.-272 с.

  2. Болски М.И. Язык программирования Си. Справочник.-М.: Радио и связь, 1988. – 96с.

  3. Джемса К., Коун К. Программирование для Internet в среде Windows.-С-Петербург: Питер, 1996.-487с.

  4. Дунаев С. Unix System V. Release 4.2. Общее руководство.-М.:”Диалог-МИФИ”, 1995.-287с.

  5. Ларри Шамер, Крис Негус Unix без проблем. Руководство пользователя.-М.:“Бином”, 1996.-352с.

  6. Scott Burkett B., Sven Goldt, John D. Harper, Sven van der Meer, Matt Welsh Linux Programmer's Guide - The Documentation Project, 1994-1995

7.FreeBSD Handbook - The FreeBSD Documentation Project, October 1997

43

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]