Файл: Министерство образования и науки российской федерации университет итмо д. А. Зубок, А. В. Маятин.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 1257
Скачиваний: 2
СОДЕРЖАНИЕ
Виртуальная среда для выполнения лабораторных работ
Лабораторная работа №1. Основы использования консольного интерфейса ОС GNU/Linux.
Задание на лабораторную работу
Лабораторная работа №2. Обработка текстовых потоков в ОС GNU/Linux
Управление вводом-выводом команд (процессов)
Работа со строками (внутренние команды bash)
Работа со строками (внешние команды)
Задание на лабораторную работу
Лабораторная работа №3. Мониторинг процессов в ОС
Получение общих сведений о запущенных процессах
Получение детальных сведений о запущенных процессах
Получение данных об оперативной памяти
Задание на лабораторную работу
ProcessID=PID : Parent_ProcessID=PPID : Average_Time=avg_atom.
Лабораторная работа №4. Управление процессами в ОС
Директивы (команды) объединения команд
Команды для управления процессами
минута час день_месяца месяц день_недели команда
Организация взаимодействия двух процессов
Задание на лабораторную работу
Лабораторная работа №5. Работа с файлово-каталожной системой в ОС GNU/Linux
Основные команды для работы с файлами и каталогами
Задание на лабораторную работу
Лабораторная работа №6. Консольный интерфейс ОС
Основные команды, необходимые для выполнения лабораторной работы:
if [not] errorlevel число команда [else команда]
if [not] строка1==строка2 команда [else команда]
if [not] exist имя_файла команда [else команда]
for {%переменная | %%переменная} in (множество) do
-
Посчитать количество процессов, запущенных пользователем user, и вывести в файл пары
-
Вывести на экран PID процесса, запущенного последним (с последним временем запуска). -
Вывести в файл список PID всех процессов, которые были запущены командами, расположенными в /sbin/ -
Для каждого процесса посчитать разность резидентной и разделяемой части памяти процесса (в страницах). Вывести в файл строки вида PID:разность, отсортированные по убыванию этой разности. -
Для всех зарегистрированных в данный момент в системе процессов выведите в один файл строки
ProcessID=PID : Parent_ProcessID=PPID : Average_Time=avg_atom.
Значения PPid и Pid возьмите из файлов status, значениеavg_atomизфайловsched,которыенаходятсявдиректорияхсназваниями,соответствующимиPIDпроцессовв/proc.Отсортируйте эти строки по идентификаторам родительскихпроцессов.-
В полученном на предыдущем шаге файле после каждой группы записей с одинаковым идентификатором родительского процесса вставить строку вида Average_Sleeping_Children_of_ParentID=N is M,
-
Предъявите скрипты преподавателю и получите вопрос или задание для защиты лабораторной работы. -
После защиты лабораторной работы удалите созданный каталог со всем его содержимым (rm –R lab3)
Лабораторная работа №4. Управление процессами в ОС
GNU/LinuxРассматриваемые вопросы
-
Директивы объединения команд -
Команды для управления процессами -
Планирование времени запуска процессов -
Передача данных и управления между процессами
Методические рекомендации:
Основными задачами управления процессами в ОС 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 занимает одну строку и состоит из шестиполей: