Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка ПП.pdf
Скачиваний:
8
Добавлен:
02.06.2015
Размер:
288.49 Кб
Скачать

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

IPC_STAT - чтение полей дескриптора множественного семафора. В программе должна быть определена переменная типа semid_ds, а ее адрес записан в поле buf параметра arg.

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

IPC_RMID - уничтожение множественного семафора. После выполнения этой операции множественный семафор становится недоступным, память, выделенная для дескриптора, освобождается, а процессы, стоящие в очереди к семафору, активизируются. Они заканчивают выполнение операций с семафором с признаком ошибки.

GETPID - определение идентификатора процесса, который последним выполнял операцию с простым семафором.

GETNCNT - определение числа процессов, ожидающих открытия простого семафора.

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

В режимах GETPID, GETNCNT и GETZCNT определяемое значение возвращает функция, а номер простого семафора указывается в аргументе semnum. Для каждого режима выполнения функции semctl необходимо, чтобы процесс обладал определенными правами доступа. Между режимами и правами доступа существует следующее соответствие:

-процесс, обладающий правами чтения характеристик семафора, может вызывать функцию semctl в режимах: GETVAL, GETPID, GETNCNT, GETZCNT, GETALL, IPC_STAT, а также выполнять операции проверки простых семафоров на 0;

-процесс, обладающий правами изменения характеристик семафора, может вызывать функцию semctl в режимах: SETVAL, SETALL, а также выполнять операции открытия и закрытия простых семафоров;

-владелец множественного семафора может обращаться к функции msgctl в

режимах IPC_SET и IPC_RMID.

9.2. Подготовка к работе

Задание 1. Задача типа Поставщик-Потребитель. Два параллельных процесса Поставщик и Потребитель работают с общим буфером. Поставщик выделяет буфер и семафоры, читает по одному символу из файла и записывает его в буфер. Имя файла задается как входной параметр при запуске Поставщика. Если файл пустой, то Поставщик

27 - -

сразу завершает свое выполнение. Потребитель начинает работать только в том случае, если Поставщик обнаружил непустой файл. Тогда он считывает один символ из буфера и выводит его на экран. Обоим процессам запрещено одновременно обращаться к буферу. Если буфер пустой, то Потребитель должен пассивно ждать, пока Поставщик не занесет туда хотя бы один символ. Если буфер полностью заполнен, то пассивно должен ждать Поставщик, пока Потребитель не извлечет из него по крайней мере один символ. Поставщик заканчивает свою работу, как только прочитает последний символ из файла, запишет его в буфер и убедится, что Потребитель извлек его оттуда и завершил свою работу. По окончании работы Поставщик должен уничтожить все семафоры и всю разделяемую с Потребителем память. Потребитель заканчивает свою работу при отсутствии символов в буфере и завершения работы Поставщика с файлом.

Задание 2. Задача типа Писатели и Читатели. Имеются две группы параллельных процессов, которые циклически обращаются к общему файлу в разные моменты времени. Имя файла и период обращения являются входными параметрами для всех процессов. Периодичность обращения организуется путем включения в бесконечный цикл функции sleep, вызывающей задержку выполнения текущего процесса на заданное число секунд. Каждый процесс из первой группы (Писатель) пополняет файл определенной строкой символов, которая задается как входной параметр процесса. Процессы второй группы(Читатели) считывают строки из файла и выводят их на экран вместе с именем, которое идентифицирует Читателя и задается как входной параметр при запуске процесса. Пока один Писатель записывает строку в файл, запрещено обращение к нему других Писателей и всех Читателей. Если Писатели не записывают в файл, то разрешается одновременная работа всех Читателей. Все Писатели и Читатели работают до тех пор, пока не получат сигнал окончания от команды kill, запущенной с терминала. При завершении работы Писателей и Читателей уничтожить все семафоры и разделяемую память.

9.3.Порядок выполнения работы

1.Вызвать текстовый редактор и набрать подготовленные программы.

2.Откомпилировать программы и получить загрузочные модули.

3.С помощью редактора подготовить файл для работы программы Поставщик.

4.Вызвать программу Поставщик, указав для нее в качестве входного параметра

имя файла. Параллельно с Поставщиком запустить программу Потребитель и по результатам вывода на экран убедиться в правильности их работы.

5.Запустить параллельно несколько программ Писателей и Читателей. По результатам вывода на экран убедиться в правильности решения задачи.

6.Зарегистрироваться на другом терминале. Вызвать программу ps и определить идентификаторы запущенных процессов. Поочередно завершить работу всех Писателей и

Читателей путем посылки команды kill.

28 - -

9.4. Содержание отчета

Отчет по лабораторной работе должен содержать листинги программы с комментариями.

9.5. Защита работы

Для защиты лабораторной работы студенту необходимо знать: внутреннюю организацию и механизм работы семафоров; правила использования семафоров для решения задач взаимоисключения и синхронизации; набор системных вызовов для выполнения операций с семафорами.

9.6. Контрольные вопросы

1.В чем разница между простым и множественным семафорами?

2.Когда активизируются процессы, стоящие в очередях к семафору?

3.Как проверить существование семафора в системе?

5. Как задается операция с множественным семафором?

Список литературы

1.Беляков М.И., Рабовер Ю.И., Фридман А.Л. Мобильная операционная система: Справ. М.: Радио и связь, 1991.

2.Баурн С. Операционная система UNIX. М.: Мир, 1986.

3.Готье Р. Руководство по операционной системе UNIX. М.: Финансы и статистика,

1985.

Содержание

 

Лабораторная работа 1. ЗНАКОМСТВО С ФАЙЛОВОЙ СИСТЕМОЙ И

 

ОСНОВНЫМИ КОМАНДАМИ ОС LINUX .........................................................................

3

1.1. Общие сведения................................................................................................................

3

1.2. Подготовка к работе.........................................................................................................

5

1.3. Порядок выполнения работы.........................................................................................

5

1.4. Содержание отчета...........................................................................................................

6

1.5. Защита работы..................................................................................................................

6

1.6. Контрольные вопросы.....................................................................................................

6

Лабораторная работа 2. ИДЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ В ОСLINUX.........

6

2.1. Общие сведения................................................................................................................

6

2.2. Подготовка к работе.........................................................................................................

9

2.3. Порядок выполнения работы.........................................................................................

9

2.4. Содержание отчета...........................................................................................................

9

2.5. Защита работы..................................................................................................................

9

29 - -

 

2.6. Контрольные вопросы.....................................................................................................

9

Лабораторная работа 3. ПОРОЖДЕНИЕ И ИДЕНТИФИКАЦИЯ ПРОЦЕССОВ........

9

3.1. Общие сведения..............................................................................................................

10

3.2. Подготовка к работе.......................................................................................................

11

3.3. Порядок выполнения работы.......................................................................................

12

3.4. Содержание отчета.........................................................................................................

12

3.5. Защита работы................................................................................................................

12

3.6. Контрольные вопросы...................................................................................................

12

Лабораторная работа 4. СИНХРОНИЗАЦИЯ РАБОТЫ ПРЕДКОВ И

 

ПОТОМКОВ..............................................................................................................................

12

4.1. Общие сведения..............................................................................................................

13

4.2. Подготовка к работе.......................................................................................................

14

4.3. Порядок выполнения работы.......................................................................................

14

4.4. Содержание отчета.........................................................................................................

14

4.5. Защита работы................................................................................................................

14

4.6. Контрольные вопросы...................................................................................................

14

Лабораторная работа 5. УПРАВЛЕНИЕ ПРОЦЕССАМИ С ПОМОЩЬЮ

 

СИГНАЛОВ...............................................................................................................................

15

5.1. Общие сведения..............................................................................................................

15

5.2. Подготовка к работе.......................................................................................................

17

5.3. Порядок выполнения работы.......................................................................................

17

5.4. Содержание отчета.........................................................................................................

17

5.5. Защита работы................................................................................................................

17

5.6. Контрольные вопросы...................................................................................................

17

Лабораторная работа 6. ОБМЕН ДАННЫМИ ЧЕРЕЗ КАНАЛ......................................

17

6.1. Общие сведения..............................................................................................................

18

6.2. Подготовка к работе.......................................................................................................

19

6.3. Порядок выполнения работы.......................................................................................

19

6.4. Содержание отчета.........................................................................................................

19

6.5. Защита работы................................................................................................................

19

6.6. Контрольные вопросы...................................................................................................

19

Лабораторная работа 7. ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ НА ОСНОВЕ

 

СООБЩЕНИЙ..........................................................................................................................

19

7.1. Общие сведения..............................................................................................................

20

7.2. Подготовка к работе.......................................................................................................

21

7.3. Порядок выполнения работы.......................................................................................

22

7.4. Содержание отчета.........................................................................................................

22

7.5. Защита работы................................................................................................................

22

7.6. Контрольные вопросы...................................................................................................

22

30 - -

Лабораторная работа 8. ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ ЧЕРЕЗ

 

РАЗДЕЛЯЕМУЮ ПАМЯТЬ...................................................................................................

23

8.1. Общие сведения..............................................................................................................

23

8.2. Подготовка к работе.......................................................................................................

24

8.3. Порядок выполнения работы.......................................................................................

24

8.4. Содержание отчета.........................................................................................................

24

8.5. Защита работы................................................................................................................

24

8.6. Контрольные вопросы...................................................................................................

24

Лабораторная работа 9. СИНХРОНИЗАЦИЯ ПРОЦЕССОВ С ПОМОЩЬЮ

 

СЕМАФОРОВ............................................................................................................................

25

9.1. Общие сведения..............................................................................................................

25

9.2. Подготовка к работе.......................................................................................................

27

9.3. Порядок выполнения работы.......................................................................................

28

9.4. Содержание отчета.........................................................................................................

29

9.5. Защита работы................................................................................................................

29

9.6. Контрольные вопросы...................................................................................................

29

Список литературы..................................................................................................................

29

Редактор Э.К.Долгатов Лицензия ЛР № 020617 от 10.08.92

____________________________________________________________________

Подписано в печать Формат 60х84 1/16. Бумага тип. № 2. Печать офсетная. Усл. печ. л. 1,86. Уч.-изд: л. 2,0.

Тираж 100 экз. Заказ Издательско-полиграфический центр ГЭТУ

____________________________________________________________________

Ротапринт МГП “Поликом” 197376, С.-Петербург, ул. Проф. Попова, 5

31 - -