Файл: Министерство образования и науки российской федерации университет итмо д. А. Зубок, А. В. Маятин.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 159

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Содержание

Введение

Виртуальная среда для выполнения лабораторных работ

Лабораторная работа №1. Основы использования консольного интерфейса ОС GNU/Linux.

Рассматриваемые вопросы:

Методические рекомендации:

Арифметические операторы:

Условный оператор.

Операции сравнения:

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

Лабораторная работа №2. Обработка текстовых потоков в ОС GNU/Linux

Рассматриваемые вопросы

Методические рекомендации:

Управление вводом-выводом команд (процессов)

0 = stdin

2 = stderr

Работа со строками (внутренние команды bash)

$position.

Работа со строками (внешние команды)

Классы символов POSIX

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

Лабораторная работа №3. Мониторинг процессов в ОС

Рассматриваемые вопросы

Методические рекомендации:

Идентификация процессов

Получение общих сведений о запущенных процессах

Получение детальных сведений о запущенных процессах

Обработка данных о процессах

Получение данных об оперативной памяти

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

ProcessID=PID : Parent_ProcessID=PPID : Average_Time=avg_atom.

Лабораторная работа №4. Управление процессами в ОС

Рассматриваемые вопросы

Методические рекомендации:

Директивы (команды) объединения команд

{

Команды для управления процессами

минута час день_месяца месяц день_недели команда

Организация взаимодействия двух процессов

trap action signal Команде нужно передать два параметра: действие при получении сигнала и сигнал, для которого будет выполняться указанное действие. Обычно в качестве действия указывают вызов функции, описанной выше в коде скрипта.С помощью команды trap можно не только задать обработчик для пользовательского сигнала, но и подменить обработчик для некоторых из системных сигналов (кроме тех, перехват которых запрещен). В этом случае обработка сигнала перейдет к указанному в trap обработчику.Для демонстрации передачи управления от одного процесса к другому рассмотрим еще одну пару скриптов.

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

Лабораторная работа №5. Работа с файлово-каталожной системой в ОС GNU/Linux

Рассматриваемые вопросы

Методические рекомендации

Основные команды для работы с файлами и каталогами

./../../home/user/file будет соответствовать пути к файлу в домашнем каталоге, как и описанный выше пример абсолютного пути.Для того, чтобы перейти к корню файловой системы можно использовать команду cd /Для обозначения домашнего каталога активного пользователя можно использовать символ . Тогда запись cd

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

Лабораторная работа №6. Консольный интерфейс ОС

Рассматриваемые вопросы

Методические рекомендации

Основные команды, необходимые для выполнения лабораторной работы:

if [not] errorlevel число команда [else команда]

if [not] строка1==строка2 команда [else команда]

if [not] exist имя_файла команда [else команда]

for {%переменная | %%переменная} in (множество) do

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

LAB6.

LAB6.

Рекомендуемая литература

Кафедра информационных систем

ОПЕРАЦИОННЫЕ СИСТЕМЫ

методические указания

trap action signal



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

С помощью команды trap можно не только задать обработчик для пользовательского сигнала, но и подменить обработчик для некоторых из системных сигналов (кроме тех, перехват которых запрещен). В этом случае обработка сигнала перейдет к указанному в trap обработчику.

Для демонстрации передачи управления от одного процесса к другому рассмотрим еще одну пару скриптов.


Генератор

Обработчик

#!/bin/bash while true; do

read LINE case $LINE in

STOP)

kill -USR1

$(cat .pid)

;;

*)

:

;;

esac

done

#!/bin/bash echo $$ > .pid A=1

MODE="rabota" usr1()

{

MODE="ostanov"

}

trap 'usr1' USR1 while true; do

case $MODE in

"rabota")

let A=$A+1 echo $A

;;

"ostanov")

echo "Stopped by

SIGUSR1"

exit

;;

esac sleep 1

done

В этом случае скрипт «Генератор» будет в бесконечном цикле считывать строки с консоли и бездействовать (используется оператор : ) для любой входной строки, кроме строки STOP, получив которую, он отправит пользовательский сигнал USR1 процессу «Обработчик». Поскольку процесс

«Генератор» должен знать PID процесса «Обработчик», передача
этого идентификационного номера осуществляется через скрытый файл. В процессе

«Обработчик» определение PID процесса производится с помощью системной переменной $$.

Процесс «Обработчик» выводит на экран последовательность натуральных чисел до момента получения сигнала USR1. В этот момент

запускается обработчик usr1(), который меняет значение переменной MODE. В результате на следующем шаге цикла будет выведено сообщение о прекращении работы в связи с появлением сигнала, и работа скрипта будет завершена.


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



Создайте скрипты или запишите последовательности выполнения команд для перечисленных заданий и предъявите их преподавателю.


  1. Создайте и однократно выполните скрипт этом скрипте нельзя использовать условный оператор и операторы проверки свойств и значений), который будет пытаться создать директорию test в домашней директории. Если создание директории пройдет успешно, скрипт выведет в файл /report сообщение вида "catalog test was created successfully" и создаст в директории test файл с именем Дата_Время_Запуска_Скрипта. Затем независимо от результатов предыдущего шага скрипт должен опросить с помощью команды ping хост www.net_nikogo.ru и, если этот хост недоступен, дописать сообщение об ошибке в файл /report.

  2. Задайте еще один однократный запуск скрипта из пункта 1 через 2 минуты. Организуйте слежение за файлом /report и выведите на консоль новые строки из этого файла, как только они появятся.

  3. Задайте запуск скрипта из пункта 1 каждые 5 минут каждого часа в день недели, в который вы будете выполнять работу.

  4. Создайте два фоновых процесса, выполняющих одинаковый бесконечный цикл вычисления (например, перемножение двух чисел). После запуска процессов должна сохраниться возможность использовать виртуальные консоли, с которых их запустили. Используя команду top, проанализируйте процент использования ресурсов процессора этими процессами. Добейтесь, чтобы тот процесс, который был запущен первым, использовал ресурс процессора не более чем на 20%.

  5. Процесс «Генератор» передает информацию процессу «Обработчик» с помощью файла. Процесс «Обработчик» должен осуществлять следующую обработку новых строк в этом файле: если строка содержит единственный символ «+», то процесс «Обработчик» переключает режим на сложениеи ждет ввода численных данных. Если строка содержит единственный символ «*», то обработчик переключает режим на умножение и ждет ввода численных данных. Если строка содержит целое число, то обработчик осуществляет текущую активную операцию (выбранный режим) над текущим значением вычисляемой переменной и считанным значением (например, складывает или перемножает результат


предыдущего вычисления со считанным числом). При запуске скрипта режим устанавливается в сложение, а вычисляемая переменная приравнивается к 1. В случае получения строки QUIT скрипт выдает сообщение о плановой остановке и завершает работу. В случае получения любых других значений строки скрипт завершает работу с сообщением об ошибке входных данных.

  1. Процесс «Генератор» считывает строки с консоли, пока ему на вход не поступит строка TERM. В этом случае он посылает системный сигнал SIGTERM процессу обработчику. Процесс «Обработчик» (как и в примере, выводящий в бесконечном цикле натуральное число каждую секунду) должен перехватить системный сигнал SIGTERM и завершить работу, предварительно выведя сообщение о завершении работы по сигналу от другого процесса.

  2. Процесс «Генератор» считывает с консоли строки в бесконечном цикле. Если считанная строка содержит единственный символ «+», он посылает процессу «Обработчик» сигнал USR1. Если строка содержит единственный символ «*», генератор посылает обработчику сигнал USR2. Если строка содержит слово TERM, генератор посылает обработчику сигнал SIGTERM. Другие значения входных строк игнорируются. Обработчик добавляет 2 или умножает на 2 текущее значение обрабатываемого числа (начальное значение принять на единицу) в зависимости от полученного пользовательского сигнала и выводит результат на экран. Вычисление и вывод производятся один раз в секунду. Получив сигнал SIGTERM, «Обработчик» завершает свою работу, выведя сообщения о завершении работы по сигналу от другого процесса.




Лабораторная работа №5. Работа с файлово-каталожной системой в ОС GNU/Linux

Рассматриваемые вопросы





  1. Основные команды для работы с файлами и каталогами

  2. Использование механизма ссылок

  3. Прямая и косвенная адресация каталогов



Методические рекомендации



Понятие файла является фундаментальным понятием для *nix операционных систем. Кроме простых (регулярных) файлов с данными в этом семействе операционных систем принято реализовывать с помощью специальных типов файлов интерфейсы доступа к внешним устройствам,

отображения данных о процессах и ресурсах операционной системы, настроек компонентов операционной системы и пользовательских приложений и т.п. Следует отметить, что каталог (директорий) в *nix операционных системах также представляет собой специальный тип файла, хранящий имена и номера дескрипторов входящих в него подкаталогов и файлов.


Основные команды для работы с файлами и каталогами


cd - смена каталога

cp - копирование файлов

ls - выводит список файлов и каталогов текущей директории

file - указывает тип указанного файла

find - поиск файлов

ln - создание ссылок

mkdir - создание каталога

mv - перемещение файла или каталога pwd – вывод имени текущего каталога rm - удаления файла

rmdir