Файл: Министерство образования и науки российской федерации университет итмо д. А. Зубок, А. В. Маятин.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 287
Скачиваний: 1
СОДЕРЖАНИЕ
Виртуальная среда для выполнения лабораторных работ
Лабораторная работа №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
top – программа, используемая для наблюдения за процессами в режиме реального времени. Полностью управляется с клавиатуры. Вы можете получить справку, нажав на клавишу h. Наиболее полезные команды для мониторинга процессов:
Shift+M – эта команда используется для сортировки процессов по объему занятой ими памяти (поле %MEM);
Shift+P – эта команда используется для сортировки процессов по занятому ими процессорному времени (поле %CPU). Это метод сортировки по умолчанию;
U – эта команда используется для вывода процессов заданного пользователя. top спросит у вас его имя. Вам необходимо ввести имя пользователя, а не его UID. Если вы не введете никакого имени, будут показаны все процессы;
i – по умолчанию выводятся все процессы, даже спящие. Эта команда обеспечивает вывод информации только о работающих в данный момент процессах (процессы, у которых поле STAT имеет значение R, Running). Повторное использование этой команды вернет Вас назад к списку всех процессов.
Получение детальных сведений о запущенных процессах
/proc – псевдо-файловая система, которая используется в качестве интерфейса к структурам данных в ядре. Большинство расположенных в ней файлов доступны только для чтения, но некоторые файлы позволяют изменять переменные ядра.
Каждому запущенному процессу соответствует подкаталог с именем, соответствующим идентификатору этого процесса (его PID). Каждый из этих подкаталогов содержит следующие псевдо-файлы и каталоги (указаны наиболее часто использующиеся для мониторинга процессов).
Внимание! Часть из этих файлов доступна только в директориях процессов, запущенных от имени данного пользователя или при обращении от имени root.
cmdline – файл, содержащий полную командную строку запуска процесса.
cwd – ссылка на текущий рабочий каталог процесса.
environ – файл, содержащий окружение процесса. Записи в файле разделяются нулевыми символами, и в конце файла также может быть нулевой символ.
exe – символьная ссылка, содержащая фактическое полное имя выполняемого файла.
fd – подкаталог, содержащий одну запись на каждый файл, который в данный момент открыт процессом. Имя каждой такой записи соответствует номеру файлового дескриптора и является символьной ссылкой на реальный файл. Так, 0 – это стандартный ввод, 1 – стандартный вывод, 2 – стандартный вывод ошибок и т. д.
maps – файл, содержащий адреса областей памяти, которые используются программой в данный момент
, и права доступа к ним. Формат файла следующий:
address | perms offset | dev | inode | pathname | |
08048000-08056000 | r-xp 00000000 | /usr/sbin/gpm'>03:0c | 64593 | /usr/sbin/gpm | |
08056000-08058000 | rw-p 0000d000 | 03:0c | 64593 | /usr/sbin/gpm | |
08058000-0805b000 | rwxp | 00000000 | 00:00 | 0 | |
40000000-40013000 | r-xp | 00000000 | 03:0c | 4165 /lib/ld-2.2.so | |
bffff000-c0000000 | rwxp | 00000000 | 00:00 | 0 |
где address -- адресное пространство, занятое процессом; perms --
права доступа к нему:
r = можно читать
w = можно писать
x = можно выполнять
s = можно использовать несколькими процессами совместно
p = личная (копирование при записи);
offset -- смещение в файле, dev -- устройство (старший номер : младший номер); inode -- индексный дескриптор на данном устройстве: 0 означает, что с данной областью памяти не ассоциированы индексные дескрипторы;
stat – детальная информация о процессе в виде набора полей;
status – предоставляет бóльшую часть информации из stat в более лёгком для прочтения формате.
sched – предоставляет информацию о процессе, использующуюся
планировщиком задач.
statm – предоставляет информацию о состоянии памяти в страницах как единицах измерения. Список полей в файле:
size общий размер программы resident размер резидентной части share разделяемые страницы trs текст (код)
drs данные/стек
lrs библиотека
dt "дикие" (dirty) страницы
Обработка данных о процессах
Обработка данных о процессах проводится, как правило, в рамках организации конвейера команд обработки текстовых потоков и (или) через циклическую обработку строк файлов. Советуем применять команды, изученные в рамках второй лабораторной работы – grep, sed, awk, tr, sort, uniq, wc, paste, а также функции для работы со строками.
Получение данных об оперативной памяти
free - возвращает информацию о свободной и используемой памяти в системе, как физической, так и виртуальной (в разделе подкачки на жестком диске).
Поля вывода команды:
total – общее количество доступной физической памяти. Некоторая область оперативной памяти может быть зарезервирована ядром, поэтому показатель total может быть меньше реального объема оперативной памяти.
used – объем используемой памяти (used=total-free).
free - свободная память.
shared - память, распределенная между процессами.
buffers - память используемая в буферах.
cached - память используемая для кэширования.
-/+ buffers/cache - использованная память без учета буферов и кэшей/свободная память с учётом буферов и КЭШей.
swap - использование раздела подкачки.
Задание на лабораторную работу
-
Создайте свой каталог в директории /home/user/ Все скрипты и файлы для вывода результатов создавайте внутри этого каталога или его подкаталогов. (mkdir lab3) -
Напишите скрипты, решающие следующие задачи: