Unix process api, Operating System

Assignment Help:

Unix process API

The two most important function calls to use when programming with several processes are fork and exec:

 fork() creates a copy of current process. It gives a different return value to each process and works based on Copy On Write;

 exec() replaces a process with an executable.

(The Windows CreateProcess(...), taking ten arguments, is analogous.)

Notice that fork() implies that each process descends from another process. In fact, in Unix everything descends from a single process called init: basically, init forks a process and then "replaces its code" with, say, the code of bash, using exec().

Example of how to use fork:
#include
#include
#include
int parentid = getpid();
char program_name[1024];
gets(program_name); // reads the name of program we want to start
int cid = fork();
if (cid==0) { // i'm the child
execlp(program_name, program_name, 0); // loads the program and runs it
printf("if the above worked, this line will never be reached\n");
}
else { // i'm the parent
sleep (1); // give my child time to start
waitpid(cid, 0, 0); // waits for my child to terminate
print("program %s finished\n", program_name);
}
Is the sleep(1) call necessary to allow the child process to start? The answer is no, it is not at all necessary. In general, if you think you need to sleep in a program, you are probably doing something wrong, and just slowing down your program. The call to waitpid() is a blocking wait, and will ?rst wait to let the child process start (if it hasn't already), then will wait until it ends.


Related Discussions:- Unix process api

Explain the main functions of an operating system, Question: a) What sp...

Question: a) What special measures must be taken to ensure the reliability, availability, and security of electronic commerce and digital business process? b) What are the c

What are the phases of background processing, What are the phases of backgr...

What are the phases of background processing? Phases are:- Job Scheduling. Job Processing. Job Overview.

Synchronization, What is the different between basic synchronization and hi...

What is the different between basic synchronization and high level synchronization

What are threads?, What are threads? A thread is alike to sequential pr...

What are threads? A thread is alike to sequential programs. Single threads have a beginning, sequence and end. At any given point in time during the runtime of the thread there

Explain chaining to handle collision, Explain Chaining to Handle Collision ...

Explain Chaining to Handle Collision Chaining:  One easy scheme is to chain all collisions in lists attached to the suitable slot. This permits an unlimited number of collision

Cpu scheduling alogarithm program in javascript, a program that can do cpu ...

a program that can do cpu scheduling algorithm priority using javascript or php to display gaant chart and calculate waiting and average waiting time

Ipc, Explain in detail about ipc in linux

Explain in detail about ipc in linux

Linear programming problem, A paper mill produces two grades of paper viz.,...

A paper mill produces two grades of paper viz., X and Y. Because of raw material restrictions, it cannot produce more than 400 tons of grade X paper and 300 ton

What is meant by the term affinity in processor sheduling, Question: (a...

Question: (a) Answer the following questions based on the code snippet below. 1. int main (int argc, char *argv[]) 2. { 3. 4. pid_t processId; 5. 6. processId =

Define rotational latency and disk bandwidth, Define rotational latency and...

Define rotational latency and disk bandwidth. Rotational latency is the additional time waiting for the disk to rotate the wanted sector to the disk head. The disk bandwidth is

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd