Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №5 (Упр. процессами).doc
Скачиваний:
6
Добавлен:
21.11.2018
Размер:
116.74 Кб
Скачать

Управление процессами в ос Linux План занятия

  1. Введение в ОС Linux: процессы.

  2. Работа с консолью: команды управления процессами.

1. Процессы

Под процессом понимается копия выполняемой программы и ее окружение. Наиболее важное различие напрямую связано с понятием пользователя: каждый процесс выполняется с правами пользователя, который его запустил. Внутри себя система идентифицирует процессы по уникальному номеру, называемому идентификатором процесса или PID (proccess ID) . Из этого PID система знает, кто (т.е. какой пользователь) запустил процесс, некоторые части другой информации, и ей нужно только проверить достоверность процесса. Например, если пользователь будет иметь возможность открыть файл в режиме только для чтения, но не в режиме чтения-записи, т.к. его права доступа к файлу запрещают это. И опять же, исключением из этого правила является root.

Благодаря этому, GNU/Linux практически неуязвима для вирусов. Для своей работы вирусы должны заражать исполняемые файлы. Как у пользователя, у вас нет доступа на запись в уязвимые системные файлы, таким образом, существенно снижается риск. Вообще говоря, вирусы очень редки в мире UNIX®. Существует всего лишь несколько малоизвестных вирусов для Linux, и они безобидны, если выполняются под обычным пользователем. Только один пользователь может повредить систему запуском этих вирусов: root.

Довольно интересно, что антивирусное программное обеспечение для GNU/Linux таки существует, но в основном для файлов DOS/Windows®! Зачем же нужны антивирусные программы, работающие в GNU/Linux, но ориентированные на DOS/Windows®? Все чаще и чаще вы будете встречать системы GNU/Linux, работающие в как файл-серверы для машин Windows® при помощи пакета программ Samba.

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

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

1.1. Дерево процессов

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

1.2. Сигналы

Каждый процесс в UNIX® может реагировать на отправленные ему сигналы. Существует 64 различных сигнала, которые идентифицируюются по номерам (начиная с 1) или по символьным именам (SIGx, где x - имя сигнала). 32 «старших» сигнала (от 33 до 64) - это сигналы реального времени, их рассмотрение выходит за рамки этой главы. Для каждого из этих сигналов у процесса может быть определено свое собственное поведение, за исключением двух сигналов: сигнала номер 9 (KILL) и сигнала номер 19 (STOP).

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