Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Создание процессов и упр-е ими.




Процесс в UNIX создается системным вызовом fork():

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

Pid_t fork(void)

Процесс, сделавший вызов fork называется родительским, а вновь созданный процесс —дочерним. Новый процесс является точной копией породившего его процесса. Как это ни удивительно, но новый процесс имеет те же инструкции и данные, что и его родитель. Более того, выполнение родительского и дочернего процесса начнется с одной и той же инструкции, следующей за вызовом fork, причем знач-е возвращ-мое fork различны, в род процессе fork вернет PID потомка, а в потомок вернет 0.Каждый процесс имеет одного родителя, но может иметь несколько дочерних процессов. Тем не менее между родительским и дочерним процессом имеется ряд различий: 1) Дочернему процессу присваивается уникальный идентификатор PID,отличный от родительского. 2) Соответственно и идентификатор родительского процесса PPID для родителя и потомка различны. 3) Дочерний процесс получает собственные файловые дескрипторы, хотя он разделяет те же записи файловой таблицы. 4) счетчик потребл ресурсов у созданного обнуляется. 5) Для дочернего процесса очищаются все ожидающие доставки сигналы. Пример: дочерний печатает – ребенок

Main()

{int pid; pid=fork();

If (pid==-1) {perror(“error fork\n”);exit(1);}

If (pid==0) {printf(“this Child\n”);} else

{printf(“this parent\n”);} Return 0;}

Последовательность печати не определена, а зависит от оставшего кванта времени на родительский процесс, если у родителя мал, то он переходит в ожидание, а дочерний порождает и печатает this Child. Создавшая ситуация гонок.

 

 


Поделиться:

Дата добавления: 2015-01-14; просмотров: 56; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты