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

What is the translation lookaside buffer, What is the Translation Lookaside...

What is the Translation Lookaside Buffer (TLB) In a cached system, the base addresses of the last few referenced pages is maintained in registers known as the TLB that aids in

Describe the differences among short-term and medium-term, Describe the dif...

Describe the differences among short-term, medium-term, and long-term scheduling.   Short-term (CPU scheduler)-selects from jobs in memory those jobs that are ready to execu

CPU Scheduing FCFS, Assume that P A , P B and P C are three distinguished p...

Assume that P A , P B and P C are three distinguished program s . When P A is executed, it needs 10 ticks to complete its execution and it forks new processes executing P B at tick

Determine the requiring variables on the scope of a thread, Determine the R...

Determine the Requiring Variables on the Scope of a Thread It is very common in server application programs to require variables on the scope of a thread. To provide such a sco

Write in brief on unix file structure, Write in brief on UNIX file structur...

Write in brief on UNIX file structure. UNIX considers every file to be a sequence of 8-bit bytes no interpretation of these bits is made by the operating system. This system pr

Interval between time of submission and completion of job, Interval among t...

Interval among the time of submission and completion of the job is known as                    Interval among the time of submission and completion of the job is known as Turn

Synchronization, As we already know, threadsmust ensure consistency; otherw...

As we already know, threadsmust ensure consistency; otherwise, race conditions (non-deterministic results) might happen. Now consider the "too much milk problem": two people share

Semispace, Semispace works by maintaining two disjoint areas from which mem...

Semispace works by maintaining two disjoint areas from which memory can be allocated. These areas are called the from-space and the to-space. At ?rst, the algorithm allocates memor

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