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

5.3. Задание на лабораторную работу

Составьте и выполните shell - программы, включающей следующие действия:

  1. Вывод на экран списка параметров командной строки с указанием номера каждого параметра.

  2. Присвоение переменным А, В и С значений 10, 100 и 200, вычисление и вывод результатов по формуле D=(A*2 + B/3)*C.

  3. Формирование файла со списком файлов в домашнем каталоге, вывод на экран этого списка в алфавитном порядке и общего количества файлов.

  4. Запрос и ввод имени пользователя, сравнение с текущим именем пользователя и вывод сообщения: верно/неверно.

  5. Запрос и ввод имени файла в текущем каталоге и вывод сообщения о типе файла.

  6. Циклическое чтение системного времени и очистка экрана в заданный момент.

  7. Циклический просмотр списка файлов и выдача сообщения при появлении заданного имени в списке.

  8. Вывести списки всех файлов в заданном каталоге, которые были созданы в один день.

  9. Для файла с заданным именем определить, является ли он символической ссылкой. Если да, то нужно проследить всю цепочку ссылок от этого имени.

  10. Подсчитать количество строк, содержащих заданное слово в заданном файле. Если файл имеет тип, отличный от "ISO-8859 text", подсчет не производить, а просто вывести сообщение об этом.

Примечание:для проверки типа файла используйте командуfile, для подсчета числа слов –wc.

  1. В заданном файле определить повторяющиеся строки, вывести их номера.

  2. В заданном каталоге определить, какие имена файлов являются жесткими ссылками на один и тот же файл.

Примечание:командаlsс опцией-lвыдает числа файловых индексов. Файлы, у которых эти числа совпадают, и являются жесткими ссылками на один и тот же файл.

  1. Вывести имена всех файлов и подкаталогов в заданном каталоге, принадлежащих пользователю с заданным именем и общее число всех остальных файлов и каталогов.

  2. Вывести список всех каталогов, перечисленных в переменной окружения PATH, и для каждого вывести права доступа к нему

Примечание:содержимоеPATHможет быть получено при помощи командыenv, а информацию о правах дает командаlsс опцией-l.

5.4. Контрольные вопросы

  1. Какое назначение имеют shell - файлы?

  2. Как создать shell - файл и сделать его выполняемым?

  3. Какие типы переменных используются в shell - файлах?

  4. В чем заключается анализ цепочки символов?

  5. Какие встроенные команды используются в shell - файлах?

  6. Как производится управление программами?

  7. Назовите операторы создания циклов.

  8. Для чего и как используются операторы перенаправления потоков?

6. Мониторинг производительности, управление процессами и автоматизация заданий

6.1. Мониторинг производительности

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

Простейшей утилитой мониторинга процессов является top. Утилита выводит на экран ежесекундно обновляющуюся информацию о текущем состоянии системы. Другой утилитой мониторинга является утилитаps. В отличие отtopона не является интерактивной, но выводит некоторые дополнительные подробности.

ps [al] [number], где

-a– вывод информации обо всех активных процессах, запущенных с вашего терминала;

-l– полная информация о процессах;

number– номер процесса.

Команда psбез параметров выводит информацию только об активных процессах, запущенных с данного терминала, в том числе и фоновых.

Для просмотра метрических характеристик больше подходит утилита top. Утилитаpsпредназначена в основном для просмотра идентификаторов процессов (PID), а также полных команд, посредством которых они были запущены. Кроме этого она работает быстрее и может использоваться в сценариях. Например, можно создать сценарий, извлекающий идентификатор определенного процесса и посылающий ему сигналы.