Основные задачи системного администрирования. процессы и их идентификаторы

К обязанностям системного администратора в большинстве случаев относят следующие задачи:

  • настройка и подключение аппаратных устройств;
  • обновление и установка ПО;
  • настройка и запуск общесистемных сервисов (конфигурирование совокупности);
  • управление пользователями;
  • управление процессами;
  • распределение ресурсов;
  • обеспечение безопасности.

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

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

В самом первом приближении можно считать, что процесс — это загруженная в оперативную память программа. Но это не совсем совершенно верно, вернее было бы заявить, что процесс делает программу. Дело в том, что в Linux сначала запускается процесс, что загружает в оперативную память программу из указанного ему файла и начинает ее делать. Это указывает, что любой процесс должен быть запущен (как говорят — порожден) каким-то вторым процессом. Другими словами для каждого процесса конкретно выяснен его родитель (либо предок), для которого этот процесс есть дочерним (либо потомком). Если вы желаете заметить дерево запущенных в вашей совокупности процессов, выполните команду pstree. Вывод данной команды разрешает заметить, что отцом всех процессов в совокупности (либо корнем дерева процессов) есть процесс init, что первым запускается по окончании загрузки ядра.

Любой процесс в совокупности имеет неповторимый идентификатор — PID, назначаемый процессу при запуске. Процесс с идентификатором 1 делает программу init. Как раз по этим идентификаторам совокупность различает процессы. Любой запущенный процесс в любую секунду времени находится в одном из следующих состояний:

  • активен (R);
  • приостановлен (T);
  • спит (S).

Текущее состояние процесса именуют статусом процесса.

Не считая статуса и идентификатора для каждого процесса в особых структурах ядра сохраняются следующие эти (приводимый ниже список есть далеко не полным):

  • полная командная строка запуска делаемой процессом задачи;
  • информация об отведенном процессу адресном пространстве;
  • ссылка на текущий рабочий каталог и корневой каталог процесса (последний помогает для ограничения доступа процесса к файловой структуре);
  • таблица открытых процессом файлов;
  • так именуемое окружение процесса, т. е. список заданных для данного процесса переменных с их текущими значениями;
  • атрибуты, определяющие права и привилегии процесса,
  • таблица обработчиков сигналов;
  • указание на родительский процесс;
  • пользовательская маска (umask) либо маска доступа — указание на то, какие конкретно права нужно удалить при создании нового файла либо каталога из стандартного комплекта прав, присваиваемых файлу (каталогу).

Потому, что Linux — совокупность многозадачная, в один момент возможно запущено большое количество процессов. Но, слово в один момент тут применено не совсем корректно, потому, что в действительности в любой момент времени выполняется лишь один процесс. (Для точности необходимо заметить, что в многопроцессорных совокупностях, на которых Linux также может трудиться, в один момент смогут выполняться пара процессов, но мы разглядываем лишь однопроцессорные совокупности). Планировщик процессов выделяет каждому процессу маленькой квант времени и по окончании этого кванта передает управление следующему процессу. Кванты времени, выделяемые каждому процессу, так мелки, что у пользователя создается иллюзия одновременного исполнения многих процессов. А чтобы кое-какие, самые важные процессы, приобретали больше процессорного времени, для каждого процесса установлен приоритет.

Пользователи смогут общаться с процессами методом посылки им сигналов. Процессы также общаются между собой при помощи сигналов. В то время, когда мы нажимаем комбинацию клавиш +, дабы завершить исполнение какой-то программы, мы практически отправляем соответствующему процессу сигнал Завершить работу. Завершаясь, процесс отправляет родительскому процессу сигнал о собственном завершении. Но бывают случаи, в то время, когда родительский процесс завершается раньше дочернего. Процессы, не имеющие родителя, именуются сиротами. Сироты машинально усыновляются процессом init, что и принимает сигналы об их завершении. В случае если процесс-родитель не известно почему не имеет возможности принять сигнал о завершении дочернего процесса, то процесс-потомок преобразовывается в зомби и приобретает статус Z. Процессы-зомби не занимают процессорного времени (т. е. их исполнение заканчивается), но соответствующие им структуры ядра не освобождаются. Уничтожение таких процессов — одна из обязанностей системного администратора. Наконец, процесс может на долгое время впасть в сон, прервать что не удается. Статус таких процессов обозначается знаком D. Стереть с лица земли их удается лишь при перезагрузке совокупности.

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

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

Особенности работы системного администратора [GeekBrains]


Похожие статьи:

Понравилась статья? Поделиться с друзьями: