Операционная система UNIX. Основы файловой системы ОС UNIX

Страницы работы

Фрагмент текста работы

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

·  Принципиально в ОС можно породить ограниченное число процессов.

·  Ограничение на максимальное число процессов одного пользователя.

·  С каждым процессом связано уникальное имя.

·  Есть система идентификатора для процессов.

·  Чтобы создать новый процесс, необходимо освобождать идентификатор завершения процессов.

2.  Идентификатор родительского процесса PPID(ParentProcessID) ¾ идентификатор процесса, породившего данный процесс.

3.  Приоритет процесса ViceNumber- относительный приоритет процесса, учитываемый планировщиком процессов при очерёдности запуска. Фактически распределение процессорных ресурсов определяется приоритетом выполнения, зависящим от нескольких факторов (в том числе и от относительного приоритета процессов). Относительный приоритет не изменяется системой на всём протяжении жизни процесса, но может быть изменён пользователем или администратором,в отличие от приоритета выполнения,динамически обновляемого ядром.

4.  Терминальная линия TTY ¾ это терминал (псевдотерминал), ассоциированный с процессом,если таковой существует. Демоны не имеют ассоциированного терминала.

5.  Реальный (RID) и эффективный (EUID) идентификаторы пользователя. Реальный идентификатор ¾ это идентификатор пользователя, запустившего процесс, а эффективный идентификатор используется для определения прав доступа процесса к системным ресурсам, в первую очередьк рессурсам файловой системы. В большинстве случаев, реальный и эффективный идентификаторы совпадают, однако есть возможность задать процессу более широкие права, путём установки специального флага SUID. В этом случае эффективный идентификатор пользователя получит значение идентификатора владельца выполняемого файла.

6.  Реальный (RGID) и эффективный (EGID) идентификаторы группы. Реальный идентификатор группы равен идентификатору первичной группы пользователя, запустившего процесс. Эффективный идентификатор служит для определения прав доступа к системным ресурсам по классу доступа групп. Также можно его модифицировать с помощью SUID.

ПРОЦЕСС СОЗДАНИЯ И ЗАПУСКА ПРОГРАММ

#include <sys\types.h>    #include <unistd.h>

pid_t  fork(void);

pid_tgetpid (void);  //функция, возвращающая идентификатор данного процесса.

pid_tgetppid (void);              //системный вызов, возвращающий идентификатор процесса-отца для текущего процесса.

Подпись: sh
PID=324
PPID=1

#include <sys/types.h>

#include <unistd.h>

main( )

{

   int pid;

   pid = fork( );

   if (pid == -1)

{

printf(“Ошибка создания процесса”);

exit(-1);

   }

if (pid == 0)

   {

printf(“\n Процесс-потомок”);

 }

else

   { printf(“\nПроцесс-родитель”);

        . . .         

   }

}

        Новый процесс порождается с помощью системного вызова fork. Процесс, сделавший вызов forkназывается родительским, а вновь созданный процесс – дочерним (или процессом-сыном).

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

Процесс сын следующие атрибуты родительского процесса:

·  идентификатор пользователя и группы

·  переменные окружения

·  диспозиция сигналов и их обработчики

·  ограничения, накладываемые на процесс

·  текущий и корневой каталоги

·  маска создания файлов

·  все файловые дескрипторы, включая файловые указатели

·  управляющий терминал.

Но между порождающим и порожденным процессом имеются отличия:

·  процессу-сыну присваивается уникальный идентификатор PID

·  родительские идентификаторы для процесса-отца и процесса-сына

Похожие материалы

Информация о работе