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

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

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

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

Добавлен: 11.01.2024

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

Скачиваний: 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.

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

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

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

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





    1. Посчитать количество процессов, запущенных пользователем user, и вывести в файл пары

PID:команда для таких процессов.

    1. Вывести на экран PID процесса, запущенного последним последним временем запуска).

    2. Вывести в файл список PID всех процессов, которые были запущены командами, расположенными в /sbin/

    3. Для каждого процесса посчитать разность резидентной и разделяемой части памяти процесса (в страницах). Вывести в файл строки вида PID:разность, отсортированные по убыванию этой разности.

    4. Для всех зарегистрированных в данный момент в системе процессов выведите в один файл строки

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


Значения PPid и Pid возьмите из файлов status, значение avg_atom из файлов sched, которые находятся в директориях с названиями, соответствующими PID процессов в /proc .

Отсортируйте эти строки по идентификаторам родительских процессов.

    1. В полученном на предыдущем шаге файле после каждой группы записей с одинаковым идентификатором родительского процесса вставить строку вида Average_Sleeping_Children_of_ParentID=N is M,

где N = PPID, а M среднее, посчитанное из SleepAVG для данного процесса.


  1. Предъявите скрипты преподавателю и получите вопрос или задание для защиты лабораторной работы.

  2. После защиты лабораторной работы удалите созданный каталог со всем его содержимым (rm –R lab3)

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


GNU/Linux

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





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

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

  3. Планирование времени запуска процессов

  4. Передача данных и управления между процессами



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



Основными задачами управления процессами в ОС GNU/Linux является управление приоритетами процессов, планирование запуска процессов по расписанию и организация обмена данными между процессами, например с помощью сигналов. Для автоматизации управления системные администраторы

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

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



Командный интерпретатор bash поддерживает следующие директивы объединения команд:
команда1 | команда2 перенаправление стандартного вывода,

команда1 ; команда2 последовательное выполнение команд,

команда1 && команда2 выполнение команды при успешном завершении предыдущей,
команда1 || команда2 выполнение команды при неудачном завершении предыдущей,
команда1 $(команда2) передача результатов работы команды 2 в качестве аргументов запуска команды 1,
команда 1 > файл – направление стандартного вывода в файл (содержимое существующего файла удаляется),
команда 1 >> файл – направление стандартного вывода в файл (поток дописывается в конец файла).

{


команда1 команда 2

} объединение команд после директив || , && или в теле циклов и функций.
команда1 & запуск команды в фоновом режиме (стандартный вход и стандартный выход не связаны с консолью, из которой запускается процесс; управление процессом возможно в общем случае только с помощью сигналов).

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


(с подробным описанием возможностей и синтаксисом команд можно ознакомиться в документации, доступной по команде man команда)

kill – передает сигнал процессу. Сигнал может передаваться в виде его номера или символьного обозначения. По умолчанию (без указания сигнала) передает сигнал завершения процесса. Идентификация процесса для команды kill производится по PID. Перечень системных сигналов, доступных в GNU/Linux, с указанием их номеров и символьных обозначений можно получить с помощью команды kill –l;

killall работает аналогично команде kill, но для идентификации процесса использует его символьное имя, а не PID;
pidof определяет PID процесса по его имени;

pgrep определяет PID процессов с заданными характеристиками

(например, запущенные конкретным пользователем);
pkill позволяет отправить сигнал группе процессов с заданными
характеристиками;
nice запускает процесс с заданным значением приоритета. Уменьшение значения (повышение приоритета выполнения) может быть инициировано только пользователем root;
renice изменяет значения приоритета для запущенного процесса. Уменьшение значения (повышение приоритета выполнения) может быть инициировано только пользователем root;
at осуществляет однократный отсроченный запуск команды.

cron демон, который занимается планированием и выполнением команд, запускаемых по определенным датам и в определенное время. Команды, выполняемые периодически, указываются в файле /etc/crontab (не через команду cron, а путем внесения строк в файл crontab или с

использованием одноименной команды crontab). Команды, которые должны быть запущены лишь однажды, добавляются при помощи at. Синтаксис строки в crontab подробно описан здесь:

Каждая команда в файле crontab занимает одну строку и состоит из шести полей: