Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
variant_13.doc
Скачиваний:
4
Добавлен:
19.12.2018
Размер:
147.97 Кб
Скачать

Лабораторная работа № 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.