- •Операционные системы Вариант 13 Лабораторная работа № 1
- •Лабораторная работа № 2
- •1. Ответить на поставленные контрольные вопросы:
- •Лабораторная работа № 3
- •1. Ответить на поставленные контрольные вопросы:
- •Лабораторная работа № 4
- •Лабораторная работа № 5
- •Лабораторная работа № 6
- •Лабораторная работа № 7
- •Лабораторная работа № 8
Лабораторная работа № 5
1. Windows. Написать программу, создающую два потока, которые выполняются в одном адресном пространстве (в одном процессе). Их разделяемый ресурс - целочисленный массив, который содержит данные совместного использования. Потоки должны обрабатывать массив поочередно. Использовать мьютекс для синхронизации. Пример обработки массива: нахождение суммы всех элементов, вывод этой суммы на экран и запись ее в первый элемент массива.
2. Ответить на контрольные вопросы:
-
опишите сходства и различия процессов и нитей в UNIX;
-
опишите основные операции над мутексами в UNIX;
-
как организовать критическую секцию программы при помощи функций работы с семафорами потоков Linux?
Лабораторная работа № 6
1. UNIX. Написать программу trykill которая на практике определяет множество сигналов:
-
которыми могут обмениваться 2 процесса одного пользователя;
-
которые могут быть посланы процессом пользователя A процессу пользователя B, при условии, что пользователи A и B являются членами одной группы;
-
которые могут быть посланы процессом пользователя A процессу пользователя root.
2. Ответить на контрольные вопросы:
-
опишите реализацию приоритетов в Windows;
-
что понимают под zombie-процессом, и как он образуется в UNIX;
-
что представляют собой специальные файлы устройств и каково их предназначение в UNIX.
Лабораторная работа № 7
1. X Window. Выполнить компиляцию и запуск программы из примера 3. Выполнить интерпретацию всех параметров графического контекста, используемых в нем при выводе графических элементов.
2. WINAPI. Создать оконное приложение, имеющие в рабочей области главного окна два поля ввода текста (EDIT) и кнопку (BUTTON). По нажатию кнопки текст из одного окна ввода (например, правого или верхнего, в зависимости от расположения) копирует в другое (левое или нижнее соответственно). Если текст не введён, должно появляться окно сообщения с информацией о том, что текст не введён.
3. Ответить на контрольные вопросы:
-
почему функция XClearArea() неприменима в отношении объектов pixmap? (UNIX)
-
какие возможности предоставляются X-клиенту для управления входной очередью событий? (UNIX)
-
для чего необходимо регистрировать класс окна? (Windows)
-
какие характеристики класса окон можно задать при его регистрации? Какие поля структуры, описывающей класс окна, являются наиболее важными? (Windows)
Лабораторная работа № 8
Разработать на языке C программу transport, демонстрирующую использование основных функций работы с сокетами UNIX. Программа должна порождать три процесса — клиент общается с двумя серверами, которые выполняют однонаправленную передачу данных между собой через TCP cокеты, относящиеся к локальному сетевому интерфейсу lo.
При помощи программы transport оценить скорость передачи данных через стек протоколов TCP/IP при использовании протокола TCP.
Оценить снижение скорости передачи данных в следующих ситуациях: обмен данными между процессами программы transport осуществляется поочередно в обоих направлениях; одновременно работают несколько параллельно запущенных программ transport.