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 sequence of messages in rpc mechanism, Q. Once more considering...

Q. Once more considering the RPC mechanism consider the exactly once semantic. Does the algorithm for implementing this semantic implement correctly even if the ACK message back to

Explain banker''s algorithm, Banker's Algorithm In this analogy ...

Banker's Algorithm In this analogy Customers ≡ processes Units ≡ resources, say, tape drive Ba

What is cold backup, Cold Backup: It is copying the three groups of files...

Cold Backup: It is copying the three groups of files when the object is shut down. This is a straight file copy, generally from the storage disk directly to tape. You must end th

Explain fifo page replacement, FIFO page replacement This is the easie...

FIFO page replacement This is the easiest page replacement algorithm. At this juncture the 1 st page entering is the 1 st to leave that is the oldest page leaves. To execute

If a process is blocked, There is a process bloacked by a semaphore and no ...

There is a process bloacked by a semaphore and no other process in the ready queue, can the blocked process get back to the ready queue without the semsignal() function?

Can a direct access file be read sequentially, Can a direct access file be ...

Can a direct access file be read sequentially? Explain. Yes. Keep a counter, cp, initially set to 0. After reading record cp, increment cp.

Difference between preemptive and nonpreemptive scheduling, Define the diff...

Define the difference between preemptive and nonpreemptive scheduling. State why strict nonpreemptive scheduling is unlikely to be used in a computer center. Preemptive schedul

Explain components of conflict phase of dispatch latency, Explain Component...

Explain Components of conflict phase of dispatch latency The conflict phase of dispatch latency has two components 1. Preemption of any process running in the kernel. 2.

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