Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Общие сведения. Данную работу можно выполнять как в Mandriva, так и в Ubuntu

Процессы

Данную работу можно выполнять как в Mandriva, так и в Ubuntu.

Общие сведения

Операционная система идентифицирует процессы по уникальному номеру, называемому идентификатором процесса или PID (proccess ID). Из этого PID система знает, какой пользователь запустил процесс.

Один из методов контроля процессов являются о «сигналы», которые позволяют приостановить или убить процесс путем отправки ему соответствующего сигнала. Однако отправлять сигнал пользователь может только своим собственным процессам. Исключением является root.

За процессами можно вести наблюдение и можно сообщать им, что нужно прерваться, приостановиться, продолжить работу и т.д.

 

Все процессы, работающие в системе Linux, организованы в виде дерева. Корнем этого дерева является init - процесс системного уровня, запускаемый во время загрузки. Система присваивает номер каждому из процессов (PID, Process ID, идентификатор процесса), чтобы уникально их идентифицировать. Процессы также наследуют идентификаторы своих родительских процессов (PPID, Parent Process ID, идентификатор родительского процесса). init сам себе является отцом - его PID и PPID равны 1.

 

Каждый процесс в может реагировать на отправленные ему сигналы. Существует 64 различных сигнала, которые идентифицируются по номерам начиная с 1. Сигнал 9 безвозвратно уничтожает процесс, не оставляя ему времени на нормальное завершение работы. Этот сигнал можно отправить процессу, который завис или вызывает другие проблемы. Полный список сигналов можно вызвать при помощи команды kill -l.

 

Команды ps и pstree выводят список процессов, запущенных на данный момент в системе, согласно установленным вами критериям. pstree выводит информацию в более понятном виде по сравнению с ps.

 

 

Самостоятельно выполните команду ps с правами root.

Описание процессов можно изменить используя аргументы:

· a: выводит процессы, запущенные всеми пользователями;

· x: выводит процессы без управляющего терминала или с управляющим терминалом, но отличающимся от используемого вами;

· u: выводит для каждого из процессов имя запустившего его пользователя и время запуска.

 

Самостоятельно выполните команду ps –u с правами root.

 

Команда pstree выводит процессы в форме дерева. Основным преимуществом является то, что сразу можно увидеть родительские процессы.

Самостоятельно выполните команды pstree,, pstree –p (для вывода PID), pstree –up (обзор всей структуры дерева процессов),

pstree –p | more с правами root. Конструкция | more добавленная после любой команды позволяет организовать пролистывание длинного вывода. Для листания нажимайте пробел.

 

Команды kill, killall используются для отправки сигналов процессам. Для команды kill требуется номер процесса в качестве аргумента, а для killall требуется имя процесса. Обе эти команды допускают опциональное использование аргумента с номером сигнала, отправляемого процессу. По умолчанию они обе отправляют соответствующим процессам сигнал 15 (TERM), который убивает процесс. Например, убить процесс с PID 785можно командой kill 785.

 

 

Все процессы в системе работают с определёнными приоритетами, также называемыми «значениями nice», которые могут изменяться от -20 (наивысший приоритет) до 19 (наименьший приоритет). Если приоритет не опредёлен, каждый процесс будет запускаться с приоритетом по умолчанию - 0 («базовым» приоритетом распределения машинного времени). Обычные пользователи могут только понижать приоритет своих собственных процессов в диапазоне от 0 до 19. Суперпользователь root может установить для любого процесса любое значение приоритета. Для изменения приоритета используется команда renice. Допустим приоритет процесса 555 можно понизить до 15 командой renice +15 555.

 

Команда nice позволяет программу с определенным приоритетом. По умолчанию nice устанавливает приоритет 10, но используя аргумент –n приоретет можно установить иным.

 

Имеется программа top, одновременно совмещающая функции ps, kill и renice, а также используемая для наблюдения за процессами в режиме реального времени, предоставляя информацию об использовании процессора и памяти, времени работы и т.п.

 

Самостоятельно выполните команду top с правами root.

 

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

  • PID — идентификатор процесса
  • USERNAME (USER)— пользователь, от которого запущен процесс
  • THR — количество потоков, запущенных процессом
  • PRI — текущий приоритет процесса
  • NICE (NI)— приоритет, выставленный командой nice. От −20 (наивысший) до 19.
  • RES — текущее использование оперативной памяти
  • STATE — текущее состояние («START», «RUN» (только в этом состоянии показывает текущую нагрузку программы на процессор), «SLEEP», «STOP», «ZOMB», «WAIT» или «LOCK»)
  • C — номер процессора, на котором идет выполнение
  • TIME — время использования процессора в секундах
  • VIRT — полный объем виртуальной памяти, которую занимает процесс
  • CPU — процент доступного времени процессора, которое использовала запущенная программа
  • COMMAND — команда, запустившая процесс.

 

Утилита top полностью управляется с клавиатуры. В верхней части экрана указана информация о загруженности системы. Например, в строке Mem в колонке со словом free указана свободна оперативная память. В нижней части окна отображается информация о процессах. Имеются команды для работы с процессами. Вы можете получить справку о командах, нажав на клавишу h. Наиболее полезные команды:

· k: эта команда используется для отправки сигнала kill процессу. При этом top спросит у вас PID процесса, а затем номер или название отправляемого сигнала (по умолчанию используется TERM или 15);

· M: эта команда используется для сортировки процессов по объему занятой ими памяти (поле %MEM);

· P: эта команда используется для сортировки процессов по занятому ими процессорному времени (поле %CPU). Это метод сортировки по умолчанию;

· u: эта команда используется для вывода процессов заданного пользователя. top спросит у вас его имя. Вам необходимо ввести имя пользователя, а не его UID. Если вы не введете никакого имени, будут показаны все процессы;

· i: по умолчанию выводятся все процессы, даже спящие. Эта команда обеспечивает вывод информации только о работающих в данный момент процессах (процессы, у которых поле STAT имеет значение R, Running). Повторное использование этой команды вернет вас назад к списку всех процессов.

· r: эта команда используется для изменения приоритета выбранного процесса.

Листать список можно при помощи > и <.

Попробуйте эти команды (кроме к). Выход командой q.

 

Информацию о свободной оперативной памяти можно узнать и командой free. Выполните эту команду.

 

После того как, какая либо команда введена в терминале, обычно нужно дождаться завершения ее работы. Это значит, что команда запущена в приоритетном режиме. Однако бывают случаи, когда это нежелательно. Если вы хотите, чтобы команда выполнялась, а вы занимались чем-нибудь другим можно запустить процесс в фоновом режиме. Для этого после команды достаточно поставить &.

Самостоятельно выполнить kwrite & (gedit &). Обратите внимание, что можно продолжать вводить команды. Введите например ls. При запуске редактора будет выведен PID. Убейте процесс, используя kill и полученный PID.

 

Процессы, можно просматривать как файла и каталоги, смонтированные в /proc/

Самостоятельно.

Выведете список содержимого каталога /proc командой ls /proc под root. Вы увидите много каталогов, именами которых являются номера. Эти каталоги содержат информацию обо всех процессах в системе, запущенных в данный момент.

 

Выполните команду

ls –l /proc/1

чтобы посмотреть, какая информация доступна для процесса 1, которым является процесс init.

 

Выполните команду

ls –l /proc/[1-2]

 

Вы получите список каталогов для первого и второго процессов. Каждый из каталогов содержит одинаковые пункты: Вот краткое описание некоторых из них:

 

· cmdline: этот (псевдо-) файл содержит полную командную строку, использованную для вызова процесса. Он не отформатирован: между программой и её аргументами нет пробелов, а в конце строки нет символа окончания строки.

 

Выполните команду

cat /proc/1/cmdline

чтобы просмотреть содержимое файла.

 

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

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

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

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

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

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

 

Просмотреть /proc можно и при помощи Midnight Commander.

Кроме каталогов, связанных с различными процессами, в /proc также содержится огромный объём информации об аппаратном обеспечении вашей машины. Список файлов каталога /proc выглядит следующим образом:

 

$ ls -d [a-z]*

acpi/ diskstats iomem locks pci sysvipc/

asound/ dma ioports mdstat scsi/ tty/

buddyinfo driver/ irq/ meminfo self@ uptime

bus/ execdomains kallsyms misc slabinfo version

cmdline fb kcore modules splash vmstat

config.gz filesystems keys mounts@ stat

cpuinfo fs/ key-users mtrr swaps

crypto ide/ kmsg net/ sys/

devices interrupts loadavg partitions sysrq-trigger

$

 

Например, если посмотреть при помощи cat на содержимое /proc/interrupts, можно увидеть список прерываний, используемых в данный момент системой. Аналогичным образом, используя ioports можно увидеть список занятых в данный момент диапазонов адресов ввода-вывода

 

 


<== предыдущая | следующая ==>
 | ФОРМЫ ОРГАНИЗАЦИИ ОБЩЕСТВЕННОГО ПРОИЗВОДСТВА: НАТУРАЛЬНОЕ И ТОВАРНОЕ

Date: 2015-09-20; view: 244; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию