Вариант №6 Вариант №7 Вариант №8 Вариант №11 Вариант №12 Вариант №13 Вариант №14 Вариант №15 Вариант №16 Вариант №17 Вариант №18 Вариант №19 Вариант №20 Вариант №21 Вариант №22 |
Сервер. Создать набор семафоров и разделяемую область памяти. Вывести информацию, полученную от клиентов в стандартный файл вывода. После этого вывести все значения набора семафоров и удалить РОП и НС. Клиент 1. Подсоединиться к разделяемой области памяти. Определить подкаталог текущего каталога с максимальным количеством файлов и записать эту информацию в разделяемую область памяти. Клиент 2. Подсоединиться к разделяемой области памяти. Определить количество процессов, подсоединенных к разделяемой области памяти и записать эту информацию в неё. ^ Сервер. Создать разделяемую область памяти и набор семафоров. Ждать сообщений клиентов. При поступлении сообщения от 1-ого клиента, обработать его и переслать абоненту размеры полученных файлов. Распечатать показания времени, а также содержимое спулинга, полученное от 2-ого клиента. Удалить РОП и НС. Клиент 1. Записать в разделяемую область памяти имена тех файлов текущего каталога, в которых встречается строка с шаблоном «main», а также время, когда какой-либо процесс последний раз выполнял операцию над семафорами набора. Распечатать ответ сервера. Клиент 2. Записать в разделяемую область памяти содержимое спулинга. ^ Сервер. Создать разделяемую область памяти (РОП) и набор семафоров(НС). Записать в РОП текущую дату и время, имена всех пользователей, работающих в настоящее время в системе и хост-имя компьютера. Сообщения, полученные от клиентов, распечатывать. В конце сеанса удалить РОП и НС. Клиент 1. Выбрать из РОП имена всех пользователей, работающих в настоящее время в системе и определить имена терминалов, связанные с этими пользователями. Клиент 2. Выбрать из РОП текущую дату и время и определить по ним день недели, а также количество семафоров в наборе. Вариант №9 Сервер. Создать разделяемую область памяти (РОП) и набор семафоров (НС). При поступлении клиентского сообщения в РОП определить системную составляющую приоритета полученных процессов, а также время когда последний процесс выполнял операции над семафорами и переслать клиенту. Удалить РОП и НС. Клиент. Подсоединиться к РОП. Определить идентификаторы процессов, являющихся системными и переслать эти данные в серверное гнездо. При получении ответа от сервера, распечатать поступившую информацию. Вариант № 10 Сервер. Создать разделяемую область памяти (РОП) и набор семафоров (НС). Среди поступивших в РОП от клиентов сообщений, отфильтровать такие, которые содержат шаблон «S» и вывести их на печать, а также вывести значение идентификатора. Удалить РОП и НС. Клиент 1. Записать в РОП, созданную сервером сообщение, содержащее полную информацию о списке всех активных процессов в системе неуправляемых терминалами. Клиент 2. Записать в РОП, созданную сервером сообщение, содержащее полную информацию о списке всех активных процессов в системе управляемых терминалами, а также идентификатор процесса создателя РОП. ^ Сервер. Создать разделяемую область памяти (РОП) и набор семафоров (НС). При поступлении клиентского сообщения о календаре текущего месяца, определить текущий день недели по текущей дате, а также идентификатор процесса который последним отсоединялся от РОП. Удалить РОП и НС. Клиент. Записать в РОП, созданную сервером сообщение, содержащее календарь текущего месяца. ^ Сервер. Создать набор семафоров и разделяемую область памяти (РОП). Подождать, пока клиент не пришлет информацию. Определить права владельца каждой РОП и переслать эти данные через разделяемую область памяти клиенту. Клиент. Записать в созданную сервером разделяемую область памяти информацию обо всех РОП системы. После того, как будет получена информация о владельцах РОП, вывести время, когда процесс последний раз подключался к разделяемой области памяти. Удалить РОП и набор семафоров. ^ Сервер. Создать разделяемую область памяти (РОП) и набор семафоров (НС). При поступлении клиентского сообщения в РОП определить время работы каждого пользователя, а также время когда последний процесс выполнял операции над семафорами и переслать клиенту. Удалить РОП и НС. Клиент. Подсоединиться к РОП. Определить имена пользователей, работающих в системе и переслать эти данные в серверное гнездо. При получении ответа от сервера, распечатать поступившую информацию. ^ Сервер. Создать разделяемую область памяти (РОП) и набор семафоров(НС). Ждать сообщений клиентов. При поступлении сообщения от 1-ого клиента, обработать его и переслать абоненту имена «родителей» этих процессов. Распечатать показания времени, а также содержимое сообщения, полученное от 2-ого клиента. Удалить РОП и НС. Клиент 1. Записать в разделяемую область памяти идентификаторы всех процессов, приоритет которых больше 25, а также время работы этих процессов. Распечатать ответ сервера. Клиент 2. Записать в разделяемую область памяти время, когда какой-либо процесс последний раз выполнял операцию над семафорами набора. ^ Сервер. Создать разделяемую область памяти (РОП) и набор семафоров(НС). Подождать, пока один из клиентов не пришлет информацию. Среди полученных имен файлов, определить такие, в которых больше 4 строк, и эти данные переслать через разделяемую область памяти соответствующему клиенту. После обработки информации клиентами удалить РОП и НС. Клиент 1. Записать в разделяемую область памяти, созданную сервером, имена всех файлов текущего каталога, размер которых превышает 80 байтов. Записать в стандартный файл вывода результаты обработки сервера и время последнего отсоединения процесса от РОП. Клиент 2. Записать в разделяемую область памяти, созданную сервером, имена файлов текущего каталога, написанные на командном языке программирования. Записать в стандартный файл вывода результаты обработки этого запроса. ^ Сервер. Создать набор семафоров (НС) и разделяемую область памяти (РОП). Подождать, пока клиент не пришлет информацию. Определить права владельца каждого файла и переслать эти данные через разделяемую область памяти клиенту. Клиент. Записать в созданную сервером разделяемую область памяти информацию (имена) обо всех файлах файловой системы, принадлежащих данному пользователю. После того, как будет получена информация о правах владельца файлов, вывести время, когда процесс последний раз подключался к разделяемой области памяти. Удалить РОП и набор семафоров. ^ Сервер. Создать разделяемую область памяти (РОП) и набор семафоров (НС). При поступлении клиентского сообщения в РОП определить время нахождения пользователей в системе, а также время когда последний процесс выполнял операции над семафорами и переслать клиенту. Удалить РОП и НС. Клиент. Подсоединиться к РОП. Определить имена пользователей, работающих в настоящее время в системе и переслать эти данные в серверное гнездо. При получении ответа от сервера, распечатать поступившую информацию. ^ Сервер. Создать разделяемую область памяти (РОП) и набор семафоров(НС). Записать в РОП идентификаторы всех процессов, принадлежащих данному пользователю, приоритеты этих процессов, суммарное рабочее время, затраченное этими процессами и имена задействованных терминалов. Сообщения, полученные от клиентов, распечатывать. В конце сеанса удалить РОП и НС. Клиент 1. Выбрать из РОП идентификатор процесса – «долгожителя» и определить текущее его состояние. Клиент 2. Выбрать из РОП идентификатор процесса с наименьшим приоритетом, а также определить количество семафоров в наборе. ^ Сервер. Создать разделяемую область памяти (РОП) и набор семафоров(НС). Подсоединить РОП к виртуальному адресному пространству процесса. Записать в неё информацию о файлах, содержащихся в спулинге. После обработки информации клиентом удалить разделяемую область памяти Клиент. Открыть разделяемую область памяти, созданную серверным процессом. Считать из неё информацию. Определить имена файлов, количество строк в которых больше 10. Определить также количество процессов, подсоединенных в данный момент времени к разделяемой области памяти. ^ Сервер. Создать разделяемую область памяти (РОП) и набор семафоров (НС). От поступивших в РОП от клиентов сообщений, сформировать информацию о количестве всех файлов, содержащихся в подкаталогах текущего каталога и вывести её на печать, а также вывести значение идентификатора. Удалить РОП и НС. Клиент 1. Записать в РОП, созданную сервером сообщение, содержащее имена всех подкаталогов текущего каталога. Клиент 2. Записать в РОП, созданную сервером сообщение, содержащее идентификатор процесса создателя РОП. ^ Сервер. Создать разделяемую область памяти (РОП) и набор семафоров (НС). При поступлении клиентского сообщения, определить время создания этих файлов, а также идентификатор процесса который последним отсоединялся от РОП. Удалить РОП и НС. Клиент. Записать в РОП, созданную сервером сообщение, содержащее список всех файлов текущего каталога, представленных на машинном языке. ^ Сервер. Создать разделяемую область памяти (РОП) и набор семафоров(НС). Подсоединить РОП к виртуальному адресному пространству процесса. Записать в неё информацию обо всех наборах семафоров, созданных в системе. После того как клиент прочтет информацию из РОП удалить ее и набор семафоров. Клиент. Открыть разделяемую область памяти, созданную сервером. Прочитать записанные сообщения и записать в стандартный файл вывода информацию только о «чужих» НС. Вывести также идентификатор процесса, который последним подсоединился к разделяемой области памяти. Список источников 1. Чан Т. Системное программирование на С++ для UNIX. – Киев: Издательская группа BHV, 1999 г.
в ОС UNIX (Учебное пособие), М.: РГУИТиП, 2006 г. 4. Варианты к лабораторной работе № 7 «Обмен информацией через гнезда между асинхронными процессами» Вариант № 1 Сервер. Создать гнездо без установления соединения домена INET. Присвоить ему имя. При поступлении клиентского сообщения определить системную составляющую приоритета полученных процессов и переслать клиенту. Клиент. Создать гнездо без установления соединения домена INET. Определить идентификаторы процессов, являющихся системными и переслать эти данные в серверное гнездо. При получении ответа от сервера, распечатать поступившую информацию.
|