Системное программирование в UNIX средствами Free Pascal


         

В результате успешного вызова fork


uses linux;
Function Fork:Longint;
В результате успешного вызова fork ядро создает новый процесс, который является почти точной копией вызывающего процесса. Другими словами, новый процесс выполняет копию той же программы, что и создавший его процесс, при этом все его объекты данных имеют те же самые значения, что и в вызывающем процессе, за одним важным исключением, которое вскоре обсудим.
Созданный процесс называется дочерним процессом (child process), а процесс, осуществивший вызов fork, называется родителем (parent).
После вызова родительский процесс и его вновь созданный потомок выполняются одновременно, при этом оба процесса продолжают выполнение с оператора, который следует сразу же за вызовом fork.
Идею, заключенную в вызове fork, быть может, достаточно сложно понять тем, кто привык к схеме последовательного программирования. Рис. 5.1 иллюстрирует это понятие. На рисунке рассматриваются три строки кода, состоящие из вызова writeln, за которым следует вызов fork, и еще один вызов
writeln.


























































writeln('One');
pid:=fork;




writeln('Two');

< PC







A



fork



До




После

writeln('One');
pid:=fork;


writeln('One');
pid:=fork;


writeln('Two');

< PC

writeln('Two');

< PC





A


B


Рис. 5.1. Вызов fork
Рисунок разбит на две части: До и После. Часть рисунка До показывает состояние до вызова fork. Существует единственный процесс A (его обозначили буквой А только для удобства, для системы это ничего не значит). Стрелка, обозначенная PC (program counter – программный счетчик), указывает на выполняемый в настоящий момент оператор. Так как стрелка указывает на первый оператор writeln, на стандартный вывод выдается тривиальное сообщение One.

Содержание  Назад  Вперед





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