Получение информации о потоках




Как известно, процесс может иметь параллельно выполняющиеся потоки (threads) или облегченные процессы (LWP, Light Weight Process). Для получения информации о потоках заданного процесса используется опция –L, например ps –fLC swriter.bin выводит список потоков приложения writer Open Office. Процессы, использующие более одного потока – редактор звуковых файлов audacity и soffice.bin, а также демоны (службы в по терминологии Windows). Как указано выше, многопоточные процессы помечено символом l в колонке состояния.

 

Получение списка открытых файлов

Команда lsof (List open files) без параметров выводит полный список открытых файлов. Пользователь-администратор получит несколько тысяч строк текста.

Для получения списка файлов, открытых конкретным пользователем, служит команда

lsof -u имя_пользователя

 

Получение списка пользователей конкретного файла

Необходимо ввести команду lsof c указанием имени файла. Например lsof /bin/bash

 

Отображение информации об оперативной памяти системы

Текущее состояние системной памяти позволяет получить команда free

По умолчанию все значения представлены в килобайтах. Значения в М позволяет получить опция –m.

 

Отображение информации об использовании дискового пространства

Команда df выводит данные об объеме доступного дискового пространства (в Кбайтах). Опция –h улучшает восприятие результатов.

Команда du дает возможность узнать объем дисковой памяти, занимаемой каталогами и файлами.

Файловая система /proc

Ядро Linux предоставляет механизм доступа к своим внутренним структурам и позволяет изменять установки ядра во время работы ОС посредством файловой системы /proc. Файловая система /proc является механизмом для ядра и его модулей, позволяющим посылать информацию процессам (отсюда и название /proc). С помощью этой виртуальной файловой системы можно работать с внутренними структурами ядра, получать полезную информацию о процессах и изменять установки (меняя параметры ядра) на лету. Файловая система /proc располагается в памяти в отличие от других файловых систем, которые располагаются на диске.

Файловая система /proc контролируется ядром. Из-за того, что она предоставляет информацию, контролируемую ядром, она располагается в памяти, контролируемой также ядром. Команда "ls -l" покажет, что большинство файлов в этой системе имеют нулевую длину, но посмотрев любой файл, Вы получите достаточно информации. Как это может быть? Все просто - файловая система /proc как любая другая файловая система регистрируется на уровне VFS (Virtual File System layer). Поэтому при запросе файлов/каталогов, файловая система /proc создает эти файлы/каталоги на основании информации, содержащейся в ядре.

В действительности многие программы собирают информацию из файлов в /ргос, форматируют её своим собственным способом, а результат затем выводят на экран. Существует несколько программ, которые поступают именно так при выводе информации о процессах (top, ps и т. п.), /ргос - это также хороший источник информации об аппаратном обеспечении, и по аналогии с программами, показывающими процессы, некоторые другие программы являются просто интерфейсами к информации, находящейся в /ргос.

Также существует специальный подкаталог /proc/sys. Он позволяет отображать параметры ядра и изменять их в режиме реального времени.

 

Информация о процессах

Каждый из каталогов содержит одинаковые пункты, краткое описание некоторых из них:

1. cmdline: этот (псевдо-) файл содержит полную командную строку, использованную для вызова процесса. Он не отформатирован: между программой и ее аргументами нет пробелов, а в конце строки нет разделителя строки. Чтобы просмотреть его, вы можете использовать: perl -ple 's,\00,,g' cmdline.

2. cwd: эта символическая ссылка указывает на текущий рабочий каталог процесса (следует из имени).

3. environ: этот файл содержит все переменные окружения, определенные для этого процесса, в виде ПЕРЕМЕННАЯ=значение. Как и в cmdline вывод вообще не отформатирован: нет разделителей строк для отделения различных переменных, и в конце нет разделителя строки. Единственным решением для его просмотра будет: perl -pl -e 's,\00,\n,g' environ.

4. exe: эта символическая ссылка указывает на исполняемый файл, соответствующий запущенному процессу.

5. fd: этот подкаталог содержит список файловых дескрипторов, открытых в данный момент процессом.

6. maps: когда вы выводите содержимое этого именованного канала (при помощи команды cat, например), вы можете увидеть части адресного пространства процесса, которые в текущий момент распределены для файла. Вот эти поля (слева направо): адресное пространство, связанное с этим распределением; разрешения, связанные с этим распределеним; смещение от начала файла, где начинается распределение; старший и младший номера (в шестнадцатиричном виде) устройства, на котором находится распределенный файл; номер inode файла; и, наконец, имя самого файла.

7. root: эта символическая ссылка указывает на корневой каталог, используемый процессом. Обычно это будет /.

8. status: этот файл содержит разнообразную информацию о процессе: имя исполняемого файла, его текущее состояние, его PID и PPID, его реальные и эффективные UID и GID, его использование памяти и другие данные.

Если вывести список содержимого каталога fd для процесса 127, получим примерно следующее:

ls -l fd total 0 lrwx------ 1 root root 64 Dec 16 22:04 0 -> /dev/console l-wx------ 1 root root 64 Dec 16 22:04 1 -> pipe:[128] l-wx------ 1 root root 64 Dec 16 22:04 2 -> pipe:[129] l-wx------ 1 root root 64 Dec 16 22:04 21 -> pipe:[130] lrwx------ 1 root root 64 Dec 16 22:04 3 -> /dev/apm_bios lr-x------ 1 root root 64 Dec 16 22:04 7 -> pipe:[130] lrwx------ 1 root root 64 Dec 16 22:04 9 -> /dev/console  

На самом деле это список файловых дескрипторов, открытых процессом. Каждый открытый дескриптор представлен в виде символической ссылки, где имя - это номер дескриптора, который указывает на файл, открытый этим дескриптором.

6.2. Информация об аппаратном обеспечении

Кроме каталогов, связанных с различными процессами, в /ргос также содержится значительный объём информации об аппаратном обеспечении ПК.

Список файлов каталога /рrос, полученный с помощью команды ls -d [a-z]*выглядит следующим образом:

 

acpi

asound

buddyinfo

bus

cmdline

cpuinfo

crypto

devices

diskstats

dma

driver

execdomains

fb

filesystems

fs

 

 

ide

interrupts

iomem

ioports

irq

kallsyms

kcore

keys

key-users

kmsg

loadavg

locks

mdstat

meminfo

misc

modules

 

mounts

net

partitions

schedstat

self

slabinfo

stat

swaps

sys

sysrq-trigger

sysvipc

tty

uptime

version

vmstat

zoneinfo


 

Например, каталог /ргос/interrupts содержит список прерываний, используемых в данный момент системой, а также периферийные устройства, которые их используют.

Описание некоторых из файлов /proc:

cpuinfo: этот файл содержит, как видно из его имени, информацию о процессорах машины. Пример содержимого файла:

cat /proc/cpuinfo

 

processor: 0

vendor_id: GenuineIntel

cpu family: 6

model: 8

model name: Pentium III (Coppermine)

stepping: 6

cpu MHz: 1000.119

cache size: 256 KB

fdiv_bug: no

hlt_bug: no

sep_bug: no

f00f_bug: no

coma_bug: no

fpu: yes

fpu_exception: yes

cpuid level: 2

wp: yes

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca

cmov pat pse36 mmx fxsr xmm

bogomips: 1998.85

processor: 3

vendor_id: GenuineIntel

cpu family: 6

model: 8

model name: Pentium III (Coppermine)

stepping: 6

cpu MHz: 1000.119

cache size: 256 KB

fdiv_bug: no

hlt_bug: no

sep_bug: no

f00f_bug: no

coma_bug: no

fpu: yes

fpu_exception: yes

cpuid level: 2

wp: yes

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca

cmov pat pse36 mmx fxsr xmm

bogomips: 1992.29

 

modules: этот файл содержит список модулей, используемых ядром в настоящий момент, вместе со счетчиком использования каждого из модулей. Эта информация используется командой lsmod, которая отображает её в более удобной для чтения форме,

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

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

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

 

6.3. Отображение и изменение параметров ядра

Назначение подкаталога /proc/sys - сообщать о различных параметрах ядра, и позволить изменять некоторые из них в интерактивном режиме, В противоположность всем другим файлам каталога /ргос, некоторые файлы из этого каталога могут быть открыты для записи, но только для root'a.

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


 

2. МЕТОДИКА ВЫПОЛНЕНИЯ

 

1. Вывести список всех процессов системы.

2. Вывести дерево процессов.

3. С помощью команды top получить список 5 процессов, потребляющих наибольшее количество процессорного времени.

4. Найти 2 процесса, имеющих более ДВУХ потоков. Использовать состояние процесса l.

5. Используя команду top, изменить приоритеты 2 процессов.

6. Получить список открытых файлов пользователя aa

7. Получить текущее состояние системной памяти

8. Получить справку об использовании дискового пространства.

9. Вывести информацию о каком-либо процессе, используя содержимое каталога /proc

10. Вывести информацию о процессоре ПК, используя содержимое каталога /proc

11. Вывести список модулей, используемых в настоящий момент ядром ОС.

 

3. ОТЧЕТ О РАБОТЕ

 

Готовится в письменном виде один на бригаду. Содержание отчета:

1. Результаты выполнения заданий 1- 11 (снимки экранов) и использованные команды ОС Linux.

 

4. КОНТРОЛЬНЫЕ ВОПРОСЫ

 

  1. Команды вывода списка процессов.
  2. Команда получения списка потоков
  3. Команда для завершения приложений.
  4. Состояния процесса Linux.
  5. Получение информации о потоках процесса.
  6. Примеры многопоточных процессов.
  7. Необходимость использования потоков.
  8. Процессы – зомби: как они появляются, как их найти и что с ними делать?
  9. Содержимое вывода команды top.
  10. Как получить информацию о процессах системы, используя файловую систему /proc?
  11. Команды для получения информации об открытых файлах
  12. Получение информации о состоянии системной памяти.
  13. Получение информации об использовании дискового пространства.
  14. Назначение файловой системы /proc

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: