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).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Основные задачи оптимизации
Основные задачи оптимизации Если говорить кратко, то можно выделить 3 основных задачи клиентской оптимизации:Оптимизация размера файлов.Оптимизация задержек при загрузке.Оптимизация взаимодействия с
1.4. Методология системного анализа и системного моделирования
1.4. Методология системного анализа и системного моделирования Системный анализ как научное направление имеет более давнюю историю, чем ООП и ООАП, и собственный предмет исследования. Центральным понятием системного анализа является понятие системы, под которой
7.8. Другие вопросы администрирования
7.8. Другие вопросы администрирования И напоследок вкратце рассмотрим другие задачи, которые могут возникнуть перед администратором, а также способы их решения и стандартные программы, которые могут понадобиться для этого.Работа с цифровыми подписями файловКаждый
Процессы, задачи, задания, группы активизации и потоки
Процессы, задачи, задания, группы активизации и потоки Как уже упоминалось, первоначально в AS/400 было определено три уровня работы. Самый низкий уровень, под MI, — задача. Процесс «живет» на уровне MI и построен на структуре задач SLIC. Поверх модели процессов MI OS/400 в качестве
Глава 8. Основы администрирования системы
Глава 8. Основы администрирования системы Поскольку мы с самого начала считаем, что речь в книге идет о персональном компьютере, надо уделить некоторое внимание задачам администрирования системы. Ведь у вас не будет системного администратора, к которому можно
П10. К главе 8 "Основы администрирования системы"
П10. К главе 8 "Основы администрирования системы" 1. Э. Немет и др. "UNIX. Руководство системного администратора". Перевод с английского С.М.Тимачева, 4-ое изд. "BHV", Киев, 1999 г. 2. Ларс Виржениус (Lars Wirzenius). "ОС Linux. Руководство системного администратора." Версия 0.3, август 1995
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
18.5.6. Параметры администрирования
18.5.6. Параметры администрирования Параметры администрирования, которые можно задать в файле squid.conf, таковы:? cache_mgr_email — почтовый адрес, на который будет послано письмо, если SQUID перестанет функционировать;? cache_effective_user nobody — при запуске SQUID от имени root изменить UID на
Подключение к панели администрирования сервера
Подключение к панели администрирования сервера Итак, сервер был установлен и запущен. Теперь, чтобы начать его администрирование, нужно щелкнуть правой кнопкой мыши на значке, который находится в области уведомлений, и выбрать пункт Administration (Администрирование).Кстати
Утилита администрирования узла ASP.NET 2.0
Утилита администрирования узла ASP.NET 2.0 В завершение этого раздела главы следует упомянуть тот факт, что ASP.NET 2.0 теперь предлагает Web-утилиту конфигурации для управления множеством установок в файле Web.config узла. Чтобы активизировать эту утилиту (рис. 24.11), выберите Web Site?ASP.NET
Приложение 5. Инструменты администрирования
Приложение 5. Инструменты администрирования Одной из "приятных проблем" новичка в использовании Firebird является выбор инструментов. Почему? Потому что сообщество Firebird имеет огромное количество прекрасных инструментов, как коммерческих, так и свободно распространяемых.
1.1. Информатика. Предмет информатики. Основные задачи информатики
1.1. Информатика. Предмет информатики. Основные задачи информатики Задачи накопления (хранения), обработки и передачи информации стояли перед человечеством на всех этапах его развития. Каждому этапу соответствовал определенный уровень развития средств информационного
5.2.2.1. Основные компоненты системного блока
5.2.2.1. Основные компоненты системного блока Рассмотрим более подробно основные компоненты системного блока.Часть компонентов системного блока конструктивно располагается на системной или материнской плате (motherboard или mainboard). Плата представляет собой конструктивный