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

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

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

• подключение и настройка аппаратных устройств;

• установка и обновление программного обеспечения;

• запуск и настройка общесистемных сервисов (конфигурирование системы);

• управление пользователями;

• управление процессами;

• распределение ресурсов;

• обеспечение безопасности.

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

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

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

Каждый процесс в системе имеет уникальный идентификатор - PID, назначаемый процессу при запуске. Процесс с идентификатором 1 выполняет программу init. Именно по этим идентификаторам система различает процессы. Каждый запущенный процесс в любой момент времени находится в одном из следующих состояний: активен (R), приостановлен (T) или "спит" (S). Текущее состояние процесса называют статусом процесса.

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

• полная командная строка запуска выполняемой процессом задачи;

• информация об отведенном процессу адресном пространстве;

• ссылка на текущий рабочий каталог и корневой каталог процесса (последний служит для ограничения доступа процесса к файловой структуре);

• таблица открытых процессом файлов;

• так называемое окружение процесса, т. е. перечень заданных для данного процесса переменных с их текущими значениями;

• атрибуты, определяющие права и привилегии процесса, таблица обработчиков сигналов;

• указание на родительский процесс;

• пользовательская маска (umask) или маска доступа - указание на то, какие права надо удалить при создании нового файла или каталога из стандартного набора прав, присваиваемых файлу (каталогу).

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

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

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

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

Приведенных данных о процессах нам пока достаточно (к рассмотрению процессов мы еще вернемся в разд. 8.4).

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

1.4. Методология системного анализа и системного моделирования

Из книги Самоучитель UML автора Леоненков Александр

1.4. Методология системного анализа и системного моделирования Системный анализ как научное направление имеет более давнюю историю, чем ООП и ООАП, и собственный предмет исследования. Центральным понятием системного анализа является понятие системы, под которой


Основные задачи оптимизации

Из книги Разгони свой сайт автора Мациевский Николай

Основные задачи оптимизации Если говорить кратко, то можно выделить 3 основных задачи клиентской оптимизации:Оптимизация размера файлов.Оптимизация задержек при загрузке.Оптимизация взаимодействия с


Глава 8. Основы администрирования системы

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Глава 8. Основы администрирования системы Поскольку мы с самого начала считаем, что речь в книге идет о персональном компьютере, надо уделить некоторое внимание задачам администрирования системы. Ведь у вас не будет системного администратора, к которому можно


П10. К главе 8 "Основы администрирования системы"

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

П10. К главе 8 "Основы администрирования системы" 1.  Э. Немет и др. "UNIX. Руководство системного администратора". Перевод с английского С.М.Тимачева, 4-ое изд. "BHV", Киев, 1999 г. 2. Ларс Виржениус (Lars Wirzenius). "ОС Linux. Руководство системного администратора." Версия 0.3, август 1995


Утилита администрирования узла ASP.NET 2.0

Из книги Основы AS/400 автора Солтис Фрэнк

Утилита администрирования узла ASP.NET 2.0 В завершение этого раздела главы следует упомянуть тот факт, что ASP.NET 2.0 теперь предлагает Web-утилиту конфигурации для управления множеством установок в файле Web.config узла. Чтобы активизировать эту утилиту (рис. 24.11), выберите Web Site?ASP.NET


15.5.8. Параметры администрирования

Из книги Основы информатики: Учебник для вузов автора Малинина Лариса Александровна

15.5.8. Параметры администрирования cache_mgr emailДанный параметр задает почтовый адрес, на который будет послано письмо, если squid перестанет функционировать. cache_effective_user nobodyПри запуске SQUID от имени root изменить UID на указанный в параметре cache_effective_user. cache_effective_group nogroupПри запуске SQUID


Процессы, задачи, задания, группы активизации и потоки

Из книги Информатика: аппаратные средства персонального компьютера автора Яшин Владимир Николаевич

Процессы, задачи, задания, группы активизации и потоки Как уже упоминалось, первоначально в AS/400 было определено три уровня работы. Самый низкий уровень, под MI, — задача. Процесс «живет» на уровне MI и построен на структуре задач SLIC. Поверх модели процессов MI OS/400 в качестве


1.1. Информатика. Предмет информатики. Основные задачи информатики

Из книги Бесплатные разговоры через Интернет автора Фрузоров Сергей

1.1. Информатика. Предмет информатики. Основные задачи информатики Задачи накопления (хранения), обработки и передачи информации стояли перед человечеством на всех этапах его развития. Каждому этапу соответствовал определенный уровень развития средств информационного


5.2.2.1. Основные компоненты системного блока

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

5.2.2.1. Основные компоненты системного блока Рассмотрим более подробно основные компоненты системного блока.Часть компонентов системного блока конструктивно располагается на системной или материнской плате (motherboard или mainboard). Плата представляет собой конструктивный


Подключение к панели администрирования сервера

Из книги Windows Vista. Для профессионалов автора Клименко Роман Александрович

Подключение к панели администрирования сервера Итак, сервер был установлен и запущен. Теперь, чтобы начать его администрирование, нужно щелкнуть правой кнопкой мыши на значке, который находится в области уведомлений, и выбрать пункт Administration (Администрирование).Кстати


18.5.6. Параметры администрирования

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

18.5.6. Параметры администрирования Параметры администрирования, которые можно задать в файле squid.conf, таковы:? cache_mgr_email — почтовый адрес, на который будет послано письмо, если SQUID перестанет функционировать;? cache_effective_user nobody — при запуске SQUID от имени root изменить UID на


7.8. Другие вопросы администрирования

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

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


Приложение 5. Инструменты администрирования

Из книги автора

Приложение 5. Инструменты администрирования Одной из "приятных проблем" новичка в использовании Firebird является выбор инструментов. Почему? Потому что сообщество Firebird имеет огромное количество прекрасных инструментов, как коммерческих, так и свободно распространяемых.