скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Администрирование локальных сетей

                %id

            uid=513(torry) gid=20(users)

            % grep 513 /etc/passwd

            torry:EqqHevH:513:20:Torry Ho,[44MY],474-1969 ,:/home/torry:/usr/bin/csh

Эффективный идентификатор пользователя и группы процесса позволяет процессу получать доступ к файлам или выполнять программы  как пользователь имеющим ID равным эффективному. Обычно реальный и эффективные идентификаторы процессов совпадают, но не всегда. Когда эффективный идентификатор равен нулю, процесс начинает выполнять системные вызовы как администратор системы.

Эффективный идентификатор пользователя и группы остаються установленными до:

                * окончания процесса.

 

* пока они не заменяться при выполнении системного вызова exec() программы c   

   установленными битами setuid или setgid.

* пока эффективный, реальный или сохраненные идентификаторы группы и              пользователя не будут установлены системными вызовами setuid(), setgid(), setresuid().

Группы процессов

Каждый процесс за исключением системных процессов таких как  init и swapper принадлежат к группе процессов. Когда созхдается задание, шелл присваивает всем процессам в задании одну и туже группу процессов. Сигналы при этом могут распостраняться на все процессы в группе, в этом и заключается преимущество управления заданиями. Каждая группа процессов идентифицируется целым числом которое называется Process Group ID (PGID). PGID у группы процессов равен PID лидера группы – создателя группы. Все процессы в группе имеют одинаковый GID. PGID не может быть использован системой пока живет группа процессов. Время жизни группы процессов определяется как период времени между созданием группы и когда процесс покидает группу. Процесс покидает группу если:

                * когда другой процесс вызывает wait() или waitpid() функции на неактивный процесс.

                * при вызове setsid или setpgid системных вызовов.

Списки доступа группы

Каждый процесс имеет до NGROUPS_MAX списков групп  к которым он может принадлежать.

NGROUPS_MAX определено в /usr/include/limits.h, и обычно равняется 20. Процессу разрешается получать доступ к файлам с групповымим правами любой из списка групп. Списки доступа. Групповые права доступа контролируются командой chgrp.

Сессии

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

Процессы и терминальное взаимодействие.

Каждая сессия имеет управляющий терминал. Лидер сессии подключенный к управляющему терминалу называется еще контрольным процессом. Исключением являются процессы- демоны (cron, inetd, …) которые не имеют управляющего терминала. Все процессы принадлежащих к одной сессии используют управляющий терминал как стандартное устройство ввода, вывода и ошибок. В любой момент времени лишь одна группа процессов в сессии может находится не в фоновом выполнении и она имеет исключительные права на работу с управляющим терминалом.

 

Попытки чтения фоновой группой процессов

Если процесс из фоновой группы пытается читать из управляющего терминала, этой группе посылается сигнал SIGTTIN, который по умолчанию приостанавливает процесс. В любом случае системный вызов read() возвращает –1.

Попытки чтения фоновой группой процессов

Если процесс в фоновой группе пытается записать в управляющий терминал, группа процессов получает при этом сигнал SIGTTOU, который по умолчанию останавливает процесс.

Создание процессов

Один процесс может создать другой через:

                * паралельное выполнение другой программы

               

* выполнение другой программы с ожиданием ее окончания

На системном уровне процесс создается во время вызова системного вызова fork() или vfork().

Системный вызов fork()

Этот системный вызов создает новый процесс путем клонирования существующего. В старых реализациях HP-UX, система копировала полностью сегмент данных процесса, что негативно сказывалось на скорости и эффективности работы системы. Сейчас реализуется механизм известный как copy-on-write (на самом деле HP-UX реализует механизм copy-on-access), который позволяет использовать общие страницы памяти до момента записи.

Системный вызов vfork()

Приложения которым нужно создать независимый процесс могут делать это более эффективно если вместо fork() будут использовать vfork().Использование vfork оправдано только когда процесс потомок сразуже выполняет exec() или _exit() системные вызовы.  При использовании vfork, потомок использует виртуальное адресное пространство родителя, поэтому оба процесса не могут работать одновременно. Процесс родитель при этом засыпает.

Системный вызов exec()

Очень часто после вызова fork() процесс запускает exec() на выполнение другой программы, при этом происходит перезапись сегмента кода и данных новым процессом.

 

Открытые файлы

При системных вызовах fork() и vfork() происходит наследование процессом потомков всех открытых файловых дискрипторов. Для системных параметра определяют ограничение на количество открытых файлов на процесс: maxfiles и maxfiles_lim. Параметр maxfiles определяет мягкий лимит как много открытых файлов может иметь процесс. Мягкий лимит наследуется после вызовов fork() vfork(). Параметр maxfiles_lim опреджеляет жесткий лимит на количество открытых файлов на один процесс. maxfiles должен быть меньше или равен  maxfiles_lim. Мягкий лимит процесс наследует от своего родителя, который может быть уменьшен или увеличен до жесткого лимита (такое может сделать только процесс с правами администратора) с использованием системного вызова setrlimit().

Завершение процессов

                                               

Процесс завершается если:

                * Он успешно окончил свое выполнение

                * Процесс завершил.себя вызвав системный вызов exit()

                * Процесс получил сигнал на с фатальным действием

Когда процесс завершается все открытые файлы завершаются и все занятые ресурсы освобождаются, после чего процесс умирает.

Команды управления процессами.

Управлять процессами можно либо с использованием команд HP-UX либо с использованием утилиты SAM. Наиболее часто используемые команды будут описаны ниже.

Команда ps (process status)

Команда ps показывает следующие параметры процессов:

                * идентификатор пользователя User ID

                * идентификатор процесса Process ID

                * идентификатор родительского процесса Parent process ID

                * командную строку породившую процесс

                * терминал с которого была запущена комманда

                * время (rela time CPU) которое было затрачено процессором на выполнение процесса.

Запущенная без опций она показывает process ID, terminal ID (tty), real CPU time usage, имя команды которую запустил на выполнение пользователь. С ключем –f  ps также показывает имя пользователя, PPID, и время с момента когда процесс был fork-нут.

$ ps -f

     UID   PID  PPID  C    STIME TTY      TIME COMMAND

  torry  3286  2016  9 16:19:03 ttyp1       0:00 ps -f

  torry  25705 25649  0 08:47:58 ttyp1    0:02 -ksh  /home/torry [ksh]

  torry  2016  25705  0 15:13:02 ttyp1     0:24 vi    processes.tag

Опция –e приводит к выдаче информации о всех активных процессах в системе. Опция -l (long) дополнительно показывает состояние процесса (S), параметр nice (NI), адрес процесса в памяти (ADDR), приоритет (PRI), и размер в блоках (SZ) образа процесса.

$ ps -l

F S   UID   PID  PPID  C PRI NI     ADDR   SZ    WCHAN TTY   TIME COMD

1 R   513 11009  7793  5 179 20   d6e200   16          ttyu4 0:00 ps

1 S     0  7792   133 15 154 20      e06100   13   214fb0 ttyu4 0:00 rlogind

1 S   513  7793  7792 16 168 20   df5a80    52 7ffe6000 ttyu4 0:00 csh

Относительные приоритеты процессов -- nice и renice

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

Команда renice позволяет  изменять приоритеты уже запущеных процессов.

Программы для мониторинга производительности системы

top

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

sar

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

 

vmstat

Выдает информацию об использовании виртуальной памяти и активность CPU.

iostat

Выдает информацию об дисковой активности ввода-вывода, терминальной активности статистику CPU.

Управление процессами и ядро системы

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

Приоритеты процесса

Все процессы в HP-UX могут находится в двух режимах: пользовательский режим и режим ядра. Когда процесс переключается в режим ядра (например при системном вызове) он исполняет  код ядра и пользуется стеком ядра. В зависимости от приоритета и наличия других процессов процесса планировцик процессов может выделять ему больше или меньше квантов процессорного времени.

Приоритеты можно разделить на две части: диапазон POSIX standard приоритетов и диапазхон HP-UXприоритетов. POSIX standard приоритеты всегда выше чем все другие HP-UX приоритеты. Процесс который имеет меньшее числовое значение приоритета имеет преимущество при выполнении над процессом с большим цифровым значением приоритета. Следующий список выводит по категориям диапазоны приоритетов от большого к маленькому:

    1.  POSIX standard приоритеты (системный параметр)

POSIX standard приоритеты, известные как RTSCHED приоритеты, являются самыми

высокими приоритетами. Количество RTSCHED приоритетов есть системный параметр

                (rtsched_numpri), устанавливаемый между 32 и 512 (default 32).

   

    2.  приоритеты реального времени (0-127)

                Зарезервированы для процессов SCHED_RTPRIO стартующих с системного вызова

rtprio()

   

    3.  Системные приоритеты (128-177)

                Используются системными процессами.

   

    4.  Пользовательские приоритеты (178-255)

                Устанавливаются пользовательским процессам.

Ядро может изменять приоритеты процессов разделения времени (128-255) но не процессов реального времени (0-127).

Состояние процесса

В процессе своей жизни процесс может менять несколько раз свое состояние.Процессы размиещаются в очередях выполнения планировщика процесса в соответствии с их состоянием как определено в файле /usr/include/sys/proc.h . События, такие как получение сигнала могут переводить процесс из одного состояния в другое.

Процесс может находится в одном из следующих состояний:

                * idle – процесс простаивает в очереди выполнения планировщика.

* run -    процесс выполняется в очереди планировщика либо в пользовательском режиме либо в режиме ядра.

                * stopped – процесс остановлен сигналом либо процессом родителем.

* sleep – процесс не выполняется пока он находится в спящем состоянии в очереди

(например он ждет окончания операции ввода-вывода)

* zombie – процесс уже фактически не существует, но так как он оставил для родителя

некоторые непрочитанные данные о своем выполнении он не может осуществить завершение.

Когда программа запускает прооцесс, ядро выделяет для него сроку из своей таблицы процессов и процесс находится в idle состоянии. Затем после получения ресурсови попадания в очередь он находится в состоянии run. Если процесс получкает сигнал SIGSTOP или его переводлят в режи трассировки, он переходит в stop состояние. После получения сигнала SIGCONT signal, процесс возвращается в состояние run. Если запущеный процесс  ждет освобождение какихто ресурсов (семафор) или завершения операции вво-да вывода – он переходит в спящее состояние. Спящий процесс может быть отсваплен в первую очередь.Как только процесс заканчивает свою работу он переходит в состояние zombie.


1. Файловая система HFS.

2. Менеджер логических дисков LVM

3. Особенности файловой системы VxFS

4. Операции над файловой системой

10.       1. Файловая система HFS.

Одной из испольуемых HP-UX файловых систем является High Performance File System (HPFS, HFS) известная также как MCKusic или BSD файловая система. Файловая система это структура данных существующая на дисковых устройствах позволяющая сохранять и получать доступ к информации хранящейся в ней в иерархическом виде. Существует ряд причин исходя из которых информацию хранящуюся на дисковых носителях приходится организовывать в виде нескольких файловых систем, к ним можнно отнестиЖ

·     Если суммарный обьем данных превышает обьем поддерживаемый одной файловой системой

·     Для увеличения производительности системы, разнося данные имеющие разную структуру (средний размер файла, наличия ограничения на дисковое пространство для пользователей) на разные файловые системы или данные к которым идет частый доступ разносятся на разные физические устройства.

·     В целях системной безопасности (запрет запуска программ с файловых систем, ограничение дискового места для файловой системы, и.т.п)

В общих чертах файловую систему HP-UX состоит из дерева каталогов (директорий) расположеных иерархически с корневым  каталогом в вершине. Все файловые системы имеют свойство “монтируемости” заключающееся в том что любая файловая система может быть смонтирована  (прикреплена) к существующей директории. Любую смонтированную файловую систему кроме корневой можно размонтировать. Монтирование корневой файловой системы осуществляет ядро, сразу же после загрузки.

Структура файловой системы HFS

Все HFS файловые системы имеют в своем составе следующие структуры:

·     Главный суперблок

·     Набор групп цилиндров

Структуры данных используемые в файловой системе содержатся в файле /usr/include/sys/fs.h. Первичный суперблок это непрерывный блок данных размеров 8К размещающийся перед началом файловой системы который содержит статическую информацию о файловой системы в момент ее создания (или последнего расширения):

·     Размер файловой системы

·     Количество inodes которые может хранить файловая система

·     Позиция свободного места на диске

·     Количество групп цилинров

·     Позиции суперблоков, крупп цилиндро, блоков inodes и блоков данных

·     Размер блока и фрагмента

Главный суперблок

Помимо этого главный суперблок содержит вспомагательную информацию о том когда последний раз монтировалась, модифицировалась и проверялась файловая система. Потому что  главный суперблок содержит исключительно важную информацию о файловой системе, HP-UX всегда хранит его копии в каждой группе цилиндров. Одна из копий загружается в память после загрузки.  Главный суперблок размещается в самом начале файловой системы и каждая группа цилиндпров имеет имеет свою копию суперблока. Таким образом достигается резервирование критически важной информации. Суперблоки групп цилиндров на диске обновляются каждый раз когда выполняется команда sync или когда файловая система размонтируется. В файле /etc/sbtab присутствует запись положения всех суперблоков файловых систем.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.