Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метвказівки для Астистовой1.doc
Скачиваний:
1
Добавлен:
08.11.2019
Размер:
288.26 Кб
Скачать

Завдання

Написати дві програми, одна з яких грає роль клієнта, друга служить сервером. Клієнт і сервер обмінюються між собою повідомленнями.

Функції клієнта і сервера визначаються варіантами завдань на виконання лабораторної роботи.

Варіанти завдань

1. Клієнт приймає з клавіатури команди і передає їх серверу. Сервер виконує прийняті команди і повертає результати їх виконання клієнтові.

Дані, що приймаються, клієнт виводить на термінал. Програми запускати на різних терміналах.

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

3. Клієнт і сервер обмінюються між собою повідомленнями. Програми запускаються на різних терміналах. Кожна програма записує прийняті повідомлення у файл, розширення якого є значенням ідентифікатора процесу, що відповідає цій програмі.

4. Клієнт передає серверу через канал запит у вигляді повного шляху до файлу.

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

5. Сервер виконує команду ps, і результати її виконання передаються клієнтові, який виводить їх на термінал.

6. Клієнт формує запит, що містить ім'я файлу. Сервер визначає, чи являється вказаний файл каталогом і формує відповідну відповідь. Відповідь виводиться клієнтом на екран.

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

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

9. Клієнт формує запит, що містить ім'я каталогу. Сервер переглядає каталог і передає клієнтові кількість підкаталогів, що є в цьому каталозі. Клієнт виводить отриману інформацію на екран.

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

11. Клієнт запитує у сервера кількість файлів, що знаходяться у вказаному каталозі. Отриманий результат виводиться клієнтом на термінал.

12. Клієнт і сервер обмінюються повідомленнями, що вводяться з клавіатури. Програми запускаються на різних терміналах. Прийняті повідомлення виводяться на екран.

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

1. В чому особливість використання повідомлень як засобу взаємодії між процесами?

2. Із яких компонентів генерується процес призначення імен для черги повідомлень?

3. В якому вигляді зберігається черга повідомлень в адресному просторі ядра?

4. Яка інформація міститься у заголовку черги повідомлень у ядрі ОС?

5. Якими системними викликами підтримується механізм черг для забезпечення можливості обміну повідомленнями між процесами?

6. За допомогою якого параметру ядро дізнається про вихід за межі допустимих розмірів внутрішньої буферної пам’яті?

7. Назвіть умови успішного розміщення повідомлення в чергу.

8. Яким параметром визначається довжина повідомлення?

9. Яким параметром задається правило вибору повідомлення з черги?

10. Яким чином можна витягнути з черги повідомлень найстаріше повідомлення будь-якого типу?

Бібліографія

1. Дансмур М., Дейвис Г. Операционная система UNIX и программирование на языке Си. - М.: Радио и связь, 1989. - 192 с.

2. Рейчард К. Linux : справочник / К. Рейчард, П. Фолькердинг. - СПб.: Питер

Кон, 1999. - 480 с.

3. Робачевский А.М. Операционная система UNIX. - СПб.: BHV- Санкт- Петербург, 1997. - 528 с.

4. Стивенс У. UNIX : взаимодействие процессов. - СПб.: Питер, 2003. - 576 с.

5. Чан Т. Системное программирование на С++ для UNIX. К.: Видавнича група BHV, 1999. - 592 с.

6. Хэвиленд К., Грэй Д., Салама Б. Системное программирование в UNIX. Руководство программиста. - М., ДМК Прес, 2000. - 368 с.

7. Таненбаум Э. Операционные системы. – СПб.: Питер, 2002. – 1040 с.

8. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. - Санкт-Петербург: Питер, 2001. – 736 с.

9. Петерсон Р. LINUX. Руководство по операционной системе. Киев, ВНV, 1997. – 332 с.

10. Бэкон Дж., Харрис Т. Операционные системы. – К.: Издат. группа BHV; СПб.: Питер, 2004. - 800 с.

11. Вахалия Ю. UNIX изнутри. –СПб.: Питер, 2003. – 844 с.

12. Шеховцов В.А. Операційні системи. – К.: Видав. група BHV, 2008. - 575с.

13. Митчелл М., Оулдем Д., Самьюэл А. Программирование для LINUX. Профессиональный поход. – М.: Вильямс, 2002. - 288 с.

14. Pranevich J. The Wonderful World of Linux 2.6. URL: http://www.kniggit.net/wwol26.html.