Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
63
Добавлен:
20.04.2015
Размер:
2 Mб
Скачать

1) Find / -name echo

2) find / -name fg

3) find / -name fstab

4) find / -name clear

5) find / -name passwd

Проанализируйте, какие из них имеют исполнимые файлы. Для ответа на этот вопрос примените утилиту file к каждому из файлов – результатов выполнения команды find.

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

Лабораторная работа 4

Процессы и пользователи в Linux

Процесс является важнейшим понятием, связанным с операционными системами. С точки зрения пользователя – это запущенные программы, которые содержат машинные команды, выполняемые центральным процессором. Но в действительности процессы характеризуются не только совокупностью машинных команд файла программы, которые последовательно исполняются на компьютере. Каждому процессу при создании назначается идентификационный номер. По этому номеру система находит всю информацию о процессе. Прежде всего, это время использования центрального процессора и адреса выделенной ему памяти, а также то, какое внешнее оборудование и файлы «назначены» ему. Кроме того, активные программы постоянно изменяют свое состояние. Примерами последних являются, исполнение или ожидание. Работая, процесс может выполнять машинные команды, не принадлежащие файлу программы, например являющиеся частью ядра. В это время процесс, обращаясь к низкоуровневым системным услугам, находится в режиме ядра, тогда как в другие моменты – это режим задачи. То, в каком состоянии находиться процесс, также является связанным с ним данным (его атрибуты). Операционная система обеспечивает выполнение нескольких процессов одновременно, выделяя каждому требуемые ресурсы по очереди. Для ее поддержания создается динамически изменяемая система приоритетов. Последние так же характеризуют рассматриваемое понятие. Вся совокупность данных о каждом процессе сохраняется и постоянно изменяется операционной системой.

То, какие данные о процессах хранятся и изменяются в системе можно узнать из многих источников. Например, по адресу http://www.informit.com/articles/article.asp?p=370047&rl=1 представлена информация о том что представляют собой «…структуры данных, системные вызовы, связанные с управлением процессами…» для ядра Linux версии 2.6.

Ранее мы упоминали о том, что существует специальная файловая система, представленная каталогом /proc. Добавим, что для каждого процесса создается подкаталог с именем, совпадающим с присвоенным ему номером. В таком подкаталоге располагается несколько файлов. К примеру, в подкаталоге /proc/1 процесса init (всегда имеющего первый номер) находятся, среди прочих, такие файлы: exe и root. Первый из них указывает на имя исполнимого файла, породившего процесс (/sbin/init), а второй – на корень файловой системы (/ root directory).

4.1. Рассмотрим классификацию процессов Linux

Любая версия из семейства UNIX/Linux поддерживает выполнение процессов нескольких типов. Прежде всего, это такие, которым соответствуют программы, запускаемые пользователем в обычном режиме из командной строки или с использованием элементов графического интерфейса, как это выполнялось в предыдущих лабораторных работах. Назовем их интерактивные процессы пользователя. Но при загрузке первыми запускаются системные. Именно от них зависит работоспособность вычислительной установки, ее функциональность. Среди системных процессов сначала выделим запускаемые ядром. Команда ps, как было сказано в лабораторной работе 2, выводит имени процессов, которые порождены ядром, заключенные в квадратные скобки. Поэтому, выполнив такую команду (она уже приводилась в работе 2)

ps -ef | grep “\[“

получаем их список.

Продолжим классификацию процессов. В системе существуют еще один тип системных процессов, называемых демоны (daemon). После запуска они находятся в режиме ожидания, пока не потребуются их «услуги». К примеру, если в системе организован обмен файлами по протоколу ftp или компьютер является Web-узлом, такие потребности не надо обеспечивать постоянно. На компьютере запускаются демоны, которые регулярно проверяют систему на наличие потребности в таких услугах и обеспечивают их по мере необходимости.

Демоны в UNIX появились давно. По мере увеличения возможностей этих операционных систем количество демонов, постоянно запущенных в системе, возрастало. Сотрудники университета Беркли разработали inetd – демон, отвечающий за запуск других демонов. В его имени последней буквой является d, что часто встречается для программ такого типа.

Приведем пример запуска двух демонов nmbd и smbd системы Самба (samba), являющейся средством совместной работы в сети компьютеров с разными операционными системами. Этот пример является частью инициализационного скрипта и представляет собой один из элементов оператора множественного выбора (case). Уже в следующей лабораторной работе он рассматривается более подробно.

case "$1" in

start)

echo -n "Starting SMB services: "

daemon smbd -D

daemon nmbd -D

Как видим, демоны могут запускаться специальным образом, когда перед их именем указывается daemon.

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

1) at – запуск команды в определенное время.

2) batch представляет собой попытку не диктовать жестко время отложенного запуска программы. В этом случае системе запускает задачи из списка batch, когда наступает момент небольшой загрузки системы.

Команды at и batch – одноразовые.

3) cron – это средство регулярного запуска программ по расписанию.

Соседние файлы в папке Операционные системы