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

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

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

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

Добавлен: 11.01.2024

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

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

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

СОДЕРЖАНИЕ

Содержание

Введение

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

Лабораторная работа №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.

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

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

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

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

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

Допустимыезначения:

минута

от

0

до

59




час

от

0

до

23

день_месяца

от

1

до

31

месяц

от

1

до

12

(или три буквы от jan до

dec, независимо от регистра)

день_недели

от

0

до

6

(0 это воскресенье или три буквы от sun до sat)
Есливсоответствующееполепоместитьсимвол* этобудетсоответствовать любому возможному значению. Для полей можно указыватьдиапазонызначений,разделенных дефисом,например:0116-91-3*echo"HelloWorld!"– вывод"HelloWorld!"в11:00в6,7,8,9дниянваря,февраляимарта.0*/2**monecho"HelloWorld!"–вывод"HelloWorld!"каждыйчетныйчаскаждогопонедельникаtail – не только выводит последние n строк из файла, но и позволяеторганизовать "слежение" за файлом – обнаруживать и выводить новые строки,появляющиесяв концефайла.sleepзадает паузуввыполнениискрипта.

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


Существует несколько вариантов организации взаимодействия процессов.Посколькусутьвзаимодействиясостоитвпередачеданныхи/илиуправленияотодногопроцессакдругому,рассмотримдвараспространенныхвариантаорганизациитакоговзаимодействия:передачуданныхчерезфайлипередачууправлениячерез сигнал.

Взаимодействие процессов через файл

Длядемонстрациипередачиинформациичерезфайлрассмотримдваскрипта – «Генератор» и «Обработчик». Требуется считывать информацию сконсоли с помощью процесса «Генератор» и выводить ее на экран с помощьюпроцесса «Обработчик», причем таким образом, чтобы считывание генераторомстроки «QUIT» приводило к завершению работы обработчика. Каждый скриптзапускаетсявсвоейвиртуальнойконсоли.Переключаясьмеждуконсолями,можноуправлятьскриптами инаблюдатьрезультаты ихработы.

Генератор

Обработчик

#!/bin/bash while true; do

read LINE

echo $LINE >> data.txt

done

#!/bin/bash

(tail -n 0 -f data.txt) | while true; do

read LINE; case $LINE in

QUIT)

echo

"exit"

killall

tail

exit

;;

*)

echo

$LINE

;;

esac

done
Скрипт«Генератор»вбесконечномциклесчитываетстрокисконсолиидописываетих в конецфайла data.txt.Скрипт«Обработчик»рассмотримподробнее.Командаtail позволяетсчитыватьпоследниеn строкизфайла.Ноодинизнаиболеераспространенныхвариантовееиспользования–организация«слежения»зафайлом.Прииспользованииконструкции

tail-fсчитываниеизфайлабудетпроисходитьтольковслучаедобавленияинформациивэтотфайл.Приэтомключ-n 0 предотвращаетчтениеизфайла,покаегосодержимоенеобновилосьпослезапускакомандыtail. Посколькунеобходимо передавать выход команды tail на вход скрипта «Обработчик»,используемконструкцию(команды)| Круглыескобкипозволяютзапуститьнезависимыйподпроцесс(дочернийпроцесс)внутриродительскогопроцесса«Обработчик», а оператор конвейера в конце позволит направить выход этогоподпроцесса на вход родительского процесса. Таким образом, команда read вэтомскриптечитаетвыходкомандыtail. Остальнаячастьскриптаосновываетсянаконструкциях,изученныхвпредыдущихлабораторныхработах, и не требует детального рассмотрения. Исключение составляет толькокомандаkillalltail. Сеепомощьюзавершаетсявызванныйвподпроцессепроцессtail передзавершениемродительскогопроцесса.Использование killall в этом случае используется для упрощения кода, ноне всегда является корректным. Лучше определять PID конкретного процессаtail,вызванноговскрипте,и завершатьегоспомощьюкомандыkill.

Взаимодействие процессов с помощью сигналов

Сигналыявляютсяосновнойформойпередачиуправленияотодногопроцессакдругому.Существуют«стандартные»(системные)сигналы,имеющие фиксированные имена и названия (например, SIGTERM, SIGKILL ит.д.), но существует возможность передавать процессу и вновь создаваемый,пользовательский сигнал.
Таблица1.Частоиспользуемыесигналы



Имя

Описание

Можно перехватывать

Можно блокировать

Комбинация клавиш

1

HUP

Hangup. Отбой. Получение этого сигнала как правило означает, что завершил работу терминал из которого был запущен процесс и следовательно процесс тоже должен быть завершен.

Да

Да




2

INT

Interrupt. В случае выполнения простых команд вызывает прекращение выполнения, в интерактивных программах - прекращение активного процесса

Да

Да

+

или

3

QUIT

Как правило, сильнее сигнала

Interrupt

Да

Да

+<\>

4

ILL

Illegal Instruction. Центральный процессор столкнулся с незнакомой командой (в большинстве случаев это означает, что допущена программная ошибка). Сигнал отправляется программе, в которой возникла проблема

Да

Да




8

FPE

Floating Point Exception. Вычислительная ошибка, например, деление на ноль

Да

Да




9

KILL

Всегда прекращает выполнение процесса

Нет

Нет




11

SEGV

Segmentation Violation. Доступ к недозволенной области памяти

Да

Да




13

PIPE

Была предпринята попытка передачи данных с помощью конвейера или очереди FIFO, однако не существует процесса, способного принять эти данные

Да

Да




15

TERM

Software Termination. Требование закончить процесс (программное завершение)

Да

Да




17

CHLD

Изменение статуса порожденного процесса

Да

Да




18

CONT

Продолжение выполнения приостановленного процесса

Да

Да




19

STOP

Приостановка выполнения процесса

Нет

Нет




20

TSTR

Сигнал останова, генерируемый клавиатурой. Переводит процесс в фоновый режим

Да

Да

+

В случае системных сигналов, как правило, процесс имеет обработчикэтого сигнала – код, который выполнится в случае получения процессом этогосигнала. Для использования пользовательских сигналов необходимо написатьсвойобработчик.Дляобработкисигналоввsh(bash)используетсявстроеннаякомандаtrapсформатом