Задания к лабораторным работам и ИДЗ по дисциплине “Операционные системы”

Лабораторная работа №2. Разработка клиент-серверного приложения для обмена информацией между процессами с использованием механизма разделяемой памяти

Задание: реализовать программу-сервер и группу программ-клиентов, взаимодействующих с сервером с помощью механизма разделяемой памяти. Каждая программа-клиент обращается к серверу для реализации запроса на выполнение одной из двух функций (см. таблицу 2 Приложения с вариантами заданий). Клиент обращается с запросом к серверу, заполняя поля структуры запросы в блоке разделяемой памяти; Сервер обрабатывает запрос, выдает результат, помещая его в поле результата структуры запроса в разделяемой памяти.

Если сервер занят выполнением запроса и очередь клиентов на обслуживание не заполнена, клиент ставится в конец очереди (очередь реализуется по принципу FIFO). Максимальное количество клиентов в очереди задано в табл. 2 Приложения. Если очередь заполнена, клиент, пытающийся получить доступ на обработку запроса, выгружается из памяти.

1 группа АС выбирает варианты по списку в журнале, начиная с первого номера в табл. 2. Вторая — по списку, начиная с последнего в табл. 2.

Лабораторная работа №3. Реализация многопоточных приложений с синхронизацией потоков.

Задание: решить задачу “обедающих философов” на основе потоков Windows. Номер варианта соответствует номеру в журнале. Для первого варианта выбирается 5 потоков и 5 ресурсов, для второго – шесть потоков и шесть ресурсов и т. д.

НЕ нашли? Не то? Что вы ищете?

Индивидуальное домашнее задание.

Разработка эмулятора файловой системы

Задание: создать эмулятор файловой системы, поддерживающий основные функции интерфейса прикладного программирования (создание, открытие, копирование, удаление файла и т. п.).

ЛИТЕРАТУРА

Основная

1. Современные операционные системы. – СПб.: Питер, 2004.

(075Т181)

2. Карпов, В. Е., Коньков операционных систем. – М.: Интуит. ру, 2004.

(074) К265)

3. Архитектура компьютера. – СПб.: Питер, 20324 Т181)

4. Рихтер, Дж. Windows для профессионалов: создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows. – СПб: Питер, 203.066 H558)

5. Гультяев машины: несколько компьютеров в одном. – СПб.: Питер, 203 Г944)

6. Белунцов BIOS.– СПб.: Питер, 203 Б-438)

7. Магда, обеспечение и эффективное программирование. – СПб.: Питер, 203.06 М123)

8. Свиридова система Windows XP. – М.: Академия, 203.066(07) С247)

9. Батлер Дж. Руткиты: внедрение в ядро Windows. – СПб.: Питер, 2032 Х689)

10. Основы разработки приложений на платформе Framework.– М.: Рус. редакция; СПб.: Питер, 203.06(07) Н837)

11. Секунов, на С++ в Linux. – СПб.: БХВ-Петербург, 203.062 С289)

Дополнительная

12. , Молчанов программное обеспечение. – СПб.:
Питер, 2001. – 736 с.

13. Операционные системы. – СПб.: Питер, BHV, 2004. – 800 с.

14. Операционные системы. – М.: Вильямс, 2002. – 848 с.

15. , Олифер операционные системы. – СПб.: Питер, 2001. – 544 с.

16. Харт Дж. М. Системное программирование в среде Win32. – М.: Вильямс, 2001. – 464 с.

17. Робачевский система UNIX. – СПб.: БХВ-Петербург, 2000. – 528 с.

3.06 П551) Померанц, О. Ядро Linux. Программирование модулей. – М.: Кудиц-образ, 2000.

19. Троелсен, Э. С# и платформа. Net. – СПб.: Питер, 2006.

20. , ОС UNIX – универсальная среда программирования: Пер. с англ.– М.: Финансы и статистика, 1992.–304 с.

21. , , Фридман операционная система: Справочник. – М.: Радио и связь, 1991. – 208 с.

22. Холмогоров, В. Установка и настройка Windows VISTA. – СПб.: Питер, 2007.

Приложение

Таблица 2

№ варианта

Процедуры

Максимальный размер очереди

1

Даны две вещественные квадратные матрицы (размер вводится пользователем). Отсортировать элементы столбцов матриц в порядке убывания. Вычислить квадрат той из полученных матриц, минимальный элемент первой строки которой является наименьшим. Функция, выдающая первую позицию в строке s1, в которой встретился любой символ из строки s2, или -1, если s1 не содержит символов из s2.

10

2

Даны две вещественные квадратные матрицы (размер вводится пользователем). Отсортировать элементы строк матриц в порядке неубывания. Вычислить куб той из полученных матриц, максимальный элемент первого стролбца которой является наибольшим. Функция, расширяющая краткие записи вида a-z в строке s1 в соответствующий полный список abc…xyz в строке s2.

12

3

1. Даны четыре вещественные матрицы произвольной размерности (размерность вводится пользователем). Вычислить все возможные произведения матриц. Упорядочить по возрастанию элементы главной диагонали той из полученных матриц, след которой является наибольшим (следом матрицы называется сумма элементов главной диагонали). Если в результате вычисления произведений получена одна матрица, применить к ней указанное упорядочение.

2. Функция, которая выдает позицию самого правого вхождения строки t в строку s, или -1, если t не входит в s.

14

4

1. Даны три матрицы целого типа произвольной размерности (размерность вводится пользователем). Для каждой матрицы отсортировать столбцы в порядке возрастания их максимальных элементов.

2. Функция копирования ввода на вывод, заменяющая каждую строку, содержащую более одного пробела, одним пробелом.

15

5

1. Даны три матрицы целого типа произвольной размерности (размерность вводится пользователем). Для каждой матрицы отсортировать строки в порядке убывания их минимальных элементов.

2. Функция, которая «переворачивает» строку s.

9

6

1. Даны три вещественные квадратные матрицы (размер вводится пользователем). Вычислить все произведения матриц, а также квадраты и кубы полученных произведений.

2. Функция получения строки s, состоящей из символов, принадлежащих одновременно строкам s1 и s2. В строке s не должны содержаться повторяющиеся символы.

6

7

1. Даны две вещественные квадратные матрицы (размер вводится пользователем). Отсортировать элементы строк матриц в порядке неубывания. Вычислить кубы полученных матриц.

8

8

1. Даны две вещественные матрицы произвольной размерности (размерность вводится пользователем). Отсортировать четные строки обеих матриц в порядке возрастания их минимальных элементов.

2. Функция получения строки s, состоящей из символов строки s1, имеющих в ней нечетные позиции, и символов строки s2, имеющих в ней четные позиции.

7

9

1. Даны две вещественные матрицы произвольной размерности (размерность вводится пользователем). Отсортировать нечетные строки обеих матриц в порядке невозрастания их первых элементов.

2. Функция поиска последнего вхождения подстроки s в строку s1.

5

10

1. Даны две вещественные квадратные матрицы (размер вводится пользователем). Отсортировать элементы четных столбцов матриц в порядке убывания, а нечетных – в порядке возрастания. Вычислить квадраты полученных матриц.

2. Функция замены в строке s некоторой подстроки. Начальная позиция заменяемой подстроки и сама подстрока вводятся пользователем.

4

11

1. Даны четыре вещественные матрицы произвольной размерности (размерность вводится пользователем). Вычислить все возможные суммы и произведения матриц.

2. Функция замены всех пар одинаковых символов в введенных пользователем строках одним символом.

3

12

1. Даны четыре вещественные квадратные матрицы (размер вводится пользователем). Вычислить сумму элементов для каждой матрицы и перемножить те матрицы, у которых эта сумма минимальна и максимальна.

2. Функция, выдающая число вхождений подстроки s1 в строку s.

13

13

1. Даны две вещественные квадратные матрицы (размер вводится пользователем). Вычислить произведения матриц. Если у полученных матриц суммы элементов положительны, вычислить их квадраты.

2. Функция сравнения строк s1 и s2, которая возвращает 0, если каждый символ первой строки равен символу с соответствующей позицией второй строки, и 1 - в противном случае.

6

14

1. Даны три вещественные квадратные матрицы (размер вводится пользователем). Вычислить все возможные произведения матриц, а также куб матрицы с максимальной суммой элементов.

2. Функция, выдающая первую подстроку, которая встречается в строках s1 и s2, начиная с одинаковой позиции в обеих строках или пустую строку, если такой подстроки не существует.

5

15

1. Даны две вещественные квадратные матрицы (размер вводится пользователем). Отсортировать элементы строк матриц в порядке возрастания. Вычислить квадраты полученных матриц.

2. Функция, удаляющая хвостовые пробелы и табуляции у каждой вводимой строки и уничтожающую строки, состоящие из одних пробелов. Все действия необходимо осуществлять над исходным массивом строк, использование вспомогательных массивов не допускается.

7

16

1. Даны две вещественные матрицы произвольной размерности (размерность вводится пользователем). Отсортировать нечетные столбцы обеих матриц в порядке невозрастания их последних элементов.

2. Функция, проверяющая введенную строку на наличие в ней непарных круглых, квадратных и фигурных скобок.

17

17

1. Даны две вещественные матрицы произвольной размерности (размерность вводится пользователем). Отсортировать четные столбцы обеих матриц в порядке убывания их первых элементов.

2. Функция, заменяющая все пары, тройки и т. д. одинаковых символов строки s на один символ.

12

18

1. Даны три вещественные квадратные матрицы (размер вводится пользователем). Отсортировать все элементы строк матриц в порядке возрастания методом вставок.

2. Функция слияния подстрок двух строк s1 и s2 в строку s следующим образом: первая подстрока образуется выбором символов, находящихся на четных позициях строки s1; вторая подстрока – второй четверти строки s2.

13

19

1. Даны две вещественные матрицы произвольной размерности (размерность вводится пользователем). Отсортировать элементы столбцов матриц в порядке возрастания методом подсчета.

2. Удалить из строки s все символы, встречающиеся не менее одного раза в строке s1 и не более трех раз в строке s2.

11

20

1. Даны четыре вещественные матрицы произвольной размерности (размерность вводится пользователем). Отсортировать элементы столбцов матриц в порядке неубывания методом пузырька. Вычислить квадрат той из полученных матриц, минимальный элемент первой строки которой является наименьшим.

2. Функция, выдающая последнюю позицию в строке s, в которой встретился введенный пользователем символ, и -1, если нет такового символа.

8

21

1. Даны три вещественные квадратные матрицы (размер вводится пользователем). Вычислить все произведения всех произведений исходных матриц.

2. Функция поочередного копирования из строк s1 и s2 в строку s, соответственно, каждого второго (из s1) и четвертого (из s2) символов.

3

22

1. Даны две вещественные матрицы произвольной размерности (размерность вводится пользователем). Отсортировать элементы четных строк матриц в порядке убывания, а нечетных строк – в порядке возрастания.

2. Функция слияния заданных подстрок строк s1 и s2 в строку s. Подстроки задаются следующим образом: из строки s1 выбирается ее первая половина, из строки s2 – третья четверть. В результирующую строку вначале копируется подстрока из s1, затем - подстрока из s2.

8

23

1. Даны три матрицы целого типа произвольной размерности (размерность вводится пользователем). Отсортировать строки матрицы, имеющей минимальный след (сумму элементов главной диагонали), в порядке убывания их первых элементов.

2. Функция разбиения строки s на две подстроки s1 и s2 следующим образом: подстрока s1 образуется из всех нечетных символов первой половины строки s; подстрока s2 образуется из оставшихся символов строки s.

6