Вариант №15 Вариант №18 Вариант №21 |
Вариант №14Сервер. Создать очередь сообщений. Записать в качестве 1-го сообщения все поддиректории текущего каталога, в качестве 2-го сообщения – количество, находящихся в них файлов, в качестве 3-его сообщения – хост-имя компьютера. Сообщения, полученные от клиентов, распечатывать. Удалить очередь сообщений. Клиент 1. Выбрать из очереди сообщений 2-ое сообщение и определить имена владельцев этих файлов. Клиент 2. Выбрать из очереди 1-ое сообщение, определить размер в байтах каждой поддиректории и записать эту информацию в очередь сообщений. ^ Клиент. Создать очередь сообщений. Записать в качестве 1-ого сообщения имена всех файлов текущего каталога представленных на машинном языке, в качестве 2-го сообщения – суммарный размер этих файлов в байтах. Сервер. Выбрать из очереди 1-ое сообщение и определить файл максимального размера, а также имя владельца этого файла, время последней модификации и время, когда сообщение было записано в очередь. Удалить очередь сообщений. Вариант №16Клиент. Создать очередь сообщений. Передать в эту очередь информацию (имена) о файлах текущего каталога, написанных на языке программирования Си. Вывести на экран ответы сервера и удалить очередь сообщений. Сервер. Выбрать из очереди самое старое сообщение. Определить те файлы, в которых встречается конструкция цикла, и послать об этом сообщение клиенту. Определить время, когда из очереди было прочитано самое последнее сообщение. Вариант №17Сервер. Создать очередь сообщений. Записать в качестве 1-го сообщения идентификаторы всех процессов, принадлежащих данному пользователю, в качестве 2-ого сообщения – приоритеты этих процессов, в качестве 3-его сообщения – суммарное рабочее время, затраченное этими процессами, в качестве 4-ого сообщения – имена задействованных терминалов. Клиент 1. Определить общее число байтов во всех сообщениях очереди. Клиент 2. Определить идентификатор процесса, который последним передал в очередь сообщение. Клиент 3. Прочитать 3-е сообщение из очереди и вывести его на печать. Удалить очередь сообщений ^ Клиент. Создать очередь сообщений. Передать в эту очередь имя файла текущего каталога, который был модифицирован последним. Сервер. Выбрать из очереди сообщений, созданной клиентом, последнее сообщение. Определить количество строк указанного файла, а также общее число сообщений в очереди. Записать в стандартный файл вывода эти данные, после чего удалить очередь сообщений. Вариант №19Сервер. Создать очередь сообщений. Записать в качестве 1-ого сообщения имена всех файлов текущего каталога, размер которых превышает 50 байтов, в качестве 2-ого сообщения – имена всех файлов текущего каталога, написанных на языке программирования Си, в качестве 3-его сообщения – имена всех файлов текущего каталога, созданных в последние 2 дня. Клиент 1. Прочитать 2-ое сообщение из очереди и определить количество строк в каждом файле. Клиент 2. Определить время, когда последнее сообщение было записано в очередь и вывести его на экран монитора, после чего удалить очередь сообщений. Вариант №20Сервер. Создать очередь сообщений. Записать в неё сообщение об именах файлов файловой системы, принадлежащих данному пользователю. Клиент. Выбрать из очереди сообщений последнее сообщение. Отфильтровать в нем те файлы, последняя модификация которых производилась в течение текущего дня и записать их в стандартный файл вывода. Вывести также величину общего количества байтов во всех сообщениях очереди. Удалить очередь сообщений. ^ Сервер. Создать очередь сообщений. Записать в качестве 1-ого сообщения имена всех процессов, приоритет которых больше 30, в качестве 2-го сообщения время работы этих процессов. Клиент. Определить из информации, записанной в сообщениях очереди, общее количество выделенных процессов и идентификатор самого «старого» работающего процесса, а также время, когда из очереди было прочитано самое последнее сообщение. Удалить очередь сообщений. Вариант №22Клиент. Создать очередь сообщений. Передать в эту очередь информацию об очередях сообщений, присутствующих в системе, а также наборах семафоров, если они есть. Сервер. Выбрать из очереди все сообщения. Отсортировать список данных из очереди по времени создания и записать эту информацию в стандартный файл вывода. Определить идентификатор процесса, который последним передал сообщение в очередь и максимальную длину очереди сообщений в байтах. Удалить очередь сообщений. Список источников
в ОС UNIX (Учебное пособие), М.: РГУИТиП, 2006 г. 3. Варианты к лабораторной работе № 6 «Обмен информацией через разделяемую память между асинхронными процессами»: Вариант № 1 Сервер. Создать разделяемую область памяти (РОП). Подсоединить её к виртуальному адресному пространству процесса. Записать в неё информацию обо всех файлах текущего каталога. После того как клиент прочтет информацию из РОП удалить ее. Клиент. Открыть разделяемую область памяти, созданную сервером. Прочитать записанные сообщения и записать в стандартный файл вывода информацию только о двоичных файлах. Вывести также идентификатор процесса, который последним подсоединился к разделяемой области памяти. Вариант №2Сервер. Создать набор семафоров и разделяемую область памяти (РОП). Из информации, переданной клиентом, выделить имена тех пользователей, которые работают в системе более 20 минут, а также время, когда какой-либо процесс последним изменял управляющие параметры РОП. Удалить РОП и набор семафоров. Клиент. Записать, в созданную сервером разделяемую область памяти, список всех пользователей, работающих в настоящее время в системе. Вариант №3Сервер. Создать набор семафоров и разделяемую область памяти (РОП). Подождать, пока клиент не пришлет информацию. Определить права владельца каждого файла и переслать эти данные через разделяемую область памяти клиенту. Клиент. Записать в созданную сервером разделяемую область памяти информацию (имена) обо всех файлах текущего каталога. После того, как будет получена информация о владельцах файлов, вывести время, когда процесс последний раз подключался к разделяемой области памяти. Удалить РОП и набор семафоров. Вариант №4 Сервер. Создать разделяемую область памяти. Подсоединить её к виртуальному адресному пространству процесса. Записать в неё информацию (идентификаторы) обо всех активных процессах в системе, управляемых терминалами. После обработки информации клиентом удалить разделяемую область памяти Клиент. Открыть разделяемую область памяти, созданную серверным процессом. Считать из неё информацию. Определить состояния процессов, идентификаторы которых указаны в сообщении. Определить также количество процессов, подсоединенных в данный момент времени к разделяемой области памяти. Вариант №5Сервер. Создать разделяемую область памяти и набор семафоров. Подождать, пока один из клиентов не пришлет информацию. Среди полученных имен файлов, определить такие, размер которых превышает 2 блока, и эти данные переслать через разделяемую область памяти соответствующему клиенту. После обработки информации клиентами удалить РОП и НС. Клиент 1. Записать в разделяемую область памяти, созданную сервером, имена текстовых файлов текущего каталога. Записать в стандартный файл вывода результаты обработки сервера и время последнего отсоединения процесса от РОП. Клиент 2. Записать в разделяемую область памяти, созданную сервером, имена файлов текущего каталога, написанные на языке программирования Си. Записать в стандартный файл вывода результаты обработки этого запроса.
|