- •Лабораторная работа №1 «Семафоры и синхронизация процессов»
- •Теоретические сведения
- •Алгоритмы
- •Тестовый пример
- •Контрольные вопросы
- •Варианты заданий
- •Содержание отчёта
- •Приложение 1 Пример работы программы
- •Приложение 2. Код программы
- •Содержание
- •1. Теоретические сведения 1
- •Лабораторная работа №2 «Интерпретатор командного языка (кя) операционной системы»
- •1.Теоретические сведения
- •2.Алгоритм
- •3.Тестовый пример
- •4.Контрольные вопросы
- •5.Варианты заданий:
- •6. Содержание отчета
- •Приложение.
- •1. Теоретические сведения 27
- •1. Теоретические сведения 11
- •Лабораторная работа №3 «Алгоритмы последовательного поиска в таблице записи данных»
- •1. Теоретические сведения
- •2. Алгоритмы поиска
- •3. Тестовый пример
- •4. Контрольные вопросы
- •5. Варианты заданий
- •6. Содержание отчёта
- •Приложение
- •Литература
- •Содержание
- •1. Теоретические сведения 17
- •Лабораторная работа №4 «Пирамидальная сортировка»
- •Теоретические сведения
- •Алгоритм
- •Тестовый пример
- •Контрольные вопросы
- •Варианты заданий
- •Содержание отчёта
- •Приложение 1. Код программы
- •Приложение 2. Пример работы программы
- •Литература
- •Содержание
- •1. Теоретические сведения 28
Алгоритмы
Алгоритм (А1) процедуры получения ресурса:
Шаг 1. Если значение семафора ресурса положительно, перейти к шагу 2, иначе перейти к шагу 3;
Шаг 2. Уменьшить значение семафора ресурса на 1 и выйти из процедуры;
Шаг 3. Добавить процесс в список ожидания ресурса.
Схема алгоритма изображена на рис. 1.
Алгоритм (А2) процедуры освобождения ресурса:
Шаг 1. Если очередь ожидания ресурса пуста, перейти к шагу 2, иначе перейти к шагу 3;
Шаг 2. Увеличить значение семафора ресурса на 1 и выйти из процедуры;
Шаг 3. Извлечь из очереди следующий процесс и передать ему ресурс.
Схема алгоритма изображена на рис. 2.
Рис. 1 Схема алгоритма А1 Рис. 2 Схема алгоритма А2
(процедура получения ресурса) (процедура освобождения ресурса)
Тестовый пример
Дано: 8 процессов, 3 ресурса.
Задание: требуется разработать:
Примитивы V(S), P(S), SIGNAL, WAIT, работающие в среде 8 процессов и 3 ресурсов;
Структуру данных ресурса R;
Структуру указателя описи ресурса;
Структуру очереди с её заголовком;
Программу вставки в очередь Insert[q];
Программу удаления Remove[q];
Распределитель Allocator;
Построить программу динамического моделирования.
Результат:
Результат работы программы приведёт в Приложении 1.
Код программы приведён в Приложении 2.
Контрольные вопросы
Что такое семафор?
Для чего применяются семафоры?
Что такое операции V(s) и P(s)?
Что такое операции SIGNAL и WAIT?
Что включает в себя опись ресурса?
Что такое список ожидающих процессов?
Что содержит заголовок очереди?
Что такое Allocator(r, k, L)?
Что значит «неделимая (атомарная) операция»?
Чем грозило бы «деление» V(s) или P(s)?
Варианты заданий
Таблица 1
Вариант |
Кол-во процессов |
Кол-во ресурсов |
Вариант |
Кол-во процессов |
Кол-во ресурсов |
1 |
2 |
1 |
16 |
3 |
5 |
2 |
3 |
1 |
17 |
2 |
5 |
3 |
5 |
2 |
18 |
4 |
2 |
4 |
7 |
5 |
19 |
5 |
3 |
5 |
2 |
2 |
20 |
4 |
1 |
6 |
3 |
2 |
21 |
4 |
2 |
7 |
3 |
3 |
22 |
6 |
4 |
8 |
2 |
4 |
23 |
3 |
4 |
9 |
5 |
4 |
24 |
7 |
2 |
10 |
6 |
2 |
25 |
4 |
5 |
11 |
8 |
2 |
26 |
7 |
4 |
12 |
5 |
1 |
27 |
6 |
3 |
13 |
4 |
3 |
28 |
7 |
3 |
14 |
2 |
3 |
29 |
7 |
6 |
15 |
5 |
5 |
30 |
8 |
3 |
