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

Лабораторная работа № 5

1. UNIX. Разработать программу, реализующую мониторинг состояния процессов UNIX, включающую следующие функции:

int init(...); // инициализация мониторинга

int display(...); // отображение состояния всех подключенных процессов

int attach(pid_t pid, ...); // подключение нового процесса

int detach(pid_t pid, ...); // отключение процесса

int setstate(pid_t pid, ...); // изменение информации о состоянии процесса

Схема мониторинга является асимметричной и подразумевает наличие выделенного процесса-монитора и остальных процессов, добровольно подключающихся к нему. Подключение к монитору и передача ему информации производится по инициативе самих процессов, подлежащих мониторингу. Функции init() и display() используются процессом-монитором, функции attach(), detach(), setstate() – процессами, подключающимися к монитору. Результат работы каждой функции представить наглядно, например, в виде вывода оповестительной информации.

Ограничения:

    • реализация схемы мониторинга должна использовать одну область разделяемой памяти размером до 4Kb и не более одного семафора;

    • каждому процессу, подключающемуся к монитору, выделяется фиксированный участок области разделяемой памяти, в котором сохраняется информация, передаваемая процессами через функции setstate();

    • максимальное число процессов подлежащих мониторингу – 64;

    • функция display() отображает информацию из всей области разделяемой памяти, реализация должна допускать использование метода display() как самим процессом-монитором, так и любыми процессами, подключенными к монитору.

2. Ответить на контрольные вопросы:

  • для чего предназначена функция ftok()? Насколько необходимым является ее применение в программе, использующей механизмы IPC в UNIX?

  • каким образом определяется адрес, по которому происходит подключение сегмента разделяемой памяти в UNIX?

  • опишите назначение и алгоритм работы с мьютексами в Windows.

Лабораторная работа № 6

1. UNIX. Разработать программу, осуществляющую взаимодействие с терминалом через специальный файл устройства /dev/tty. Программа должна выполнять следующие операции при нажатии отдельных клавиш:

    • переключение между каноническим (строковым) и неканоническим (символьным) режимами работы терминала;

    • очистку экрана

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

2. Ответить на контрольные вопросы:

  • каков алгоритм системного вызова fork() в UNIX?

  • для чего нужны приоритеты процессов в Windows?

  • опишите реализацию приоритетов в Windows.

Лабораторная работа № 7

1. X Window. Выполнить компиляцию и запуск программы из примера 5. Для загрузки на сервер использовать исходный bitmap-файл.

2. WINAPI. Создать оконное приложение, имеющее в рабочей области главного окна поле ввода текста (EDIT) и кнопку (BUTTON). В поле ввода вводится строка состоящая только из цифр и знака «+». По нажатию кнопки, например, в окне сообщения (message box) выводится информация о сумме чисел из поля ввода. Таким образом, это будет простейший строчный калькулятор, умеющий только складывать. Если строка не введена или содержит какие-либо символы, отличные от цифр и знака «+» должно появляться окно сообщения с информацией об этом.

3. Ответить на контрольные вопросы:

  • предложите несколько способов загрузки цветного изображения из файла операционной системы X-клиента в окно на экране X-сервера средствами библиотеки Xlib (UNIX);

  • какие действия обычно выполняет функция WinMain?

  • что такое оконная процедура? Для чего она предназначена? Кто ее вызывает в процессе работы приложения? (Windows)

  • для чего служит цикл обработки сообщений? Откуда приложение извлекает очередное сообщение? Каким образом и кем сообщения создаются? (Windows)