Порядок выполнения лабораторной работы. 1. Рассмотреть утилиты ps и top
1. Рассмотреть утилиты ps и top. Для утилиты ps рассмотреть основные ключи, используя man ps, ps –help. Выполнить команду ps со всеми основными ключами. Вывести иерархию процессов с подробным описанием. Вывести все системные процессы. Рассмотреть в дереве процессов различные типы процессов. Посмотреть место процесса init в иерархии процессов, посмотреть уровень загрузки системы по умолчанию. В каталоге /etc найти файл inittab и рассмотреть его формат. Объяснить, что получится в результате выполнения утилиты /sbin/init с параметрами 1, 3, 5, 6, 0;
2. Рассмотреть компиляцию программ с использованием компиляторов gcc и g++;
3. Изучить функции управления процессами (использовать man). Написать многопроцессную программу на Cи или C++, реализующую запуск команд Unix из процессов. Реализовать синхронизацию процессов-родителей с процессами-потомками(использовать функцию wait).
Варианты заданий
Для выполнения лабораторной работы берутся задания из лабораторной работы №1 и переделываются на процессы с использованием функций fork(), группы функций execl(…), system(…), wait(…), sleep(…) и др.
1.Написать командный файл, реализующий меню из трех пунктов: 1-ый пункт - ввести пользователя и вывести на экран все процессы, запущенные данным пользователем; 2-ой пункт - показать всех пользователей, в настоящий момент, находящихся в системе; 3-ий пункт – заверение.
2.Написать командный файл, реализующий меню из трех пунктов: 1-ый пункт - вывести всех пользователей, в настоящее время, работающих в системе; 2-ой пункт – послать сообщение пользователю, имя пользователя, терминал и сообщение вводятся с клавиатуры; 3-ий пункт – заверение.
3.Написать командный файл, реализующий меню из трех пунктов: 1-ый пункт - показать все процессы пользователя, запустившего данный командный файл; 2-ой пункт – послать сигнал завершения процессу текущего пользователя(ввести PID процесса); 3-ий пункт – заверение.
4.Написать командный файл, подсчитывающий количество активных терминалов пользователя(имя пользователя вводится с клавиатуры).
5.Написать командный файл, посылающий сообщений всем активным пользователям (сообщение находится в файле).
6.Написать командный файл, посылающий сигнал завершения процессам текущего пользователя. Символьная маска имени процесса вводится с клавиатуры.
7.Написать командный файл подсчитывающий количество определенных процессов пользователя (Ввести имя пользователя и название процесса)
8.Реализовать Меню из двух пунктов: 1-ый пункт – определить количество запущенных данным пользователем процессов bash (предусмотреть ввод имени пользователя); 2-ой пункт – завершить все процессы bash данного пользователя.
9.Реализовать Меню из трех пунктов: 1-ый пункт поиск файла в каталоге <Имя файла> и <Имя каталога> вводятся пользователем; 2-ой пункт – копирование одного файла в другой каталог - <Имя файла> и <Имя каталога> вводятся; 3-ий пункт – завершение командного файла.
10.Написать командный файл, который в цикле по нажатию клавиши выводит информацию о системе, активных пользователях в системе, а для введенного имени пользователя выводит список активных процессов данного пользователя.
11.Реализовать командный файл который при старте выводит информацию о системе, информацию о пользователе, запустившем данный командный файл, далее в цикле выводит список активных пользователей в системе – запрашивает имя пользователя и выводят список всех процессов bash запущенных данным пользователем.
12.Реализовать командный файл, позволяющий в цикле посылать всем активным пользователям сообщение – сообщение вводится с клавиатуры. Командный файл при старте выводит имя компьютера, имя запустившего командный файл пользователя, тип операционной системы, IP-адрес машины.
13.Реализовать командный файл, позволяющий в цикле посылать всем активным пользователям (исключая пользователя, запустившего данный командный файл) сообщение – сообщение вводится с клавиатуры. Командный файл при старте выводит имя компьютера, имя запустившего командный файл пользователя, тип операционной системы, список загруженных модулей.
14.Реализовать командный файл который при старте выводит информацию о системе, информацию о пользователе, запустившем данный командный файл, далее в цикле выводит список активных пользователей в системе – запрашивает имя пользователя и выводят список всех терминалов, на которых зарегистрирован этот пользователь.
15.Реализовать командный файл, который выводит: дату, информацию о системе, текущий каталог, текущего пользователя, настройки домашнего каталога текущего пользователя, далее в цикле выводит список активных пользователей – запрашивает имя пользователя и выводит информацию об активности данного пользователя.
16.Реализовать командный файл, который выводит: дату в формате день – месяц – год – время, информацию о системе в формате: имя компьютера : версия ОС : IP адрес : имя текущего пользователя : текущий каталог, Выводит настройки домашнего каталога текущего пользователя и основные переменные окружения. Далее в цикле выводит список активных пользователей – запрашивает имя пользователя и выводит информацию об активности введенного пользователя.
17.Реализовать командный файл, реализующий символьное меню( в цикле)
1. Пункт: Вывод полной информации о файлах каталога: Ввести имя
каталога для отображения
2. Пункт изменить атрибуты файла: файл вводится с клавиатуры по запросу, атрибуты, которые требуются установить тоже вводятся. После изменения атрибутов вывести на экран расширенный список файлов для проверки установленных атрибутов
3. Выход
При старте командный файл выводит информацию об имени компьютера, IP- адреса, и список всех пользователей зарегистрированных в данный момент на компьютере.
18.Реализовать командный файл, реализующий символьное меню( в цикле)
1. Пункт: Вывод полной информации о файлах каталога: Ввести имя каталога для отображения
2. Пункт создать командный файл: файл вводится с клавиатуры по запросу, далее изменяются атрибут файла на исполнение, затем вводится с клавиатуры строка которую будет исполнять командный файл. После изменения атрибутов вывести на экран расширенный список файлов для проверки установленных атрибутов и запустить созданный командный файл.
3. Выход
При старте командный файл выводит информацию об имени компьютера, IP- адреса, и список всех пользователей зарегистрированных в данный момент на компьютере.
19.Написать командный файл реализующий символьное меню
1. Пункт: работа с информационными командами(реализовать все основные информационные команды)
2. Пункт: Копирование файлов: в этом пункте выводится информация о содержимом текущего каталога, далее предлагается интерфейс копирования файла: ввод имени файла и ввод каталога для копирования. По выполнению пункта выводится содержимое каталога, куда был скопирован файл и выводится содержимое скопированного файла.
3. Пункт: Выход