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

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

58 страниц (Word-файл)

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

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

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

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

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

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

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

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

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

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

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