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

Several cpu-scheduling algorithms, Q. Several CPU-scheduling algorithms are...

Q. Several CPU-scheduling algorithms are parameterized for instance the RR algorithm requires a parameter to indicate the time slice. Multilevel response queues require parameters

Shared stack is used for parameter passing, Q. What protection problems may...

Q. What protection problems may occur if a shared stack is used for parameter passing? Answer: The contents of the stack could be conciliation by other process(es) sharing th

What is the translation look aside buffer (tlb), Translation Look aside Buf...

Translation Look aside Buffer In a cached system, the base addresses of the last few indexed pages is maintained in registers named the TLB that adds in faster lookup. TLB has

Explain a boot control block, Explain a boot control block A boot contr...

Explain a boot control block A boot control block can have the information required by the system to boot an operating from that partition. If the disk does not have an operati

Write a short note on peer-to-peer computing, Write a short note on peer-to...

Write a short note on peer-to-peer computing. Peer-to-peer (P2P) system model is a kind of distributed OS. In this model, clients and servers aren't distinguished from one anot

Operating system, What criteria are important in choosing a file organisati...

What criteria are important in choosing a file organisation?

Define properties of time sharing operating system, Define properties of Ti...

Define properties of Time sharing operating system Time sharing:- T his systems uses CPU scheduling and multiprogramming to provide economical interactive use of a system. The

How can the deadlock be prevented?, How can the deadlock be prevented? ...

How can the deadlock be prevented? To evade deadlocks first we will have to obtain the information about how resources are to be requested. And as well we should make sure that

What is dispatch latency, What is dispatch latency? The time taken by t...

What is dispatch latency? The time taken by the dispatcher to stop one process and begin another running is known as dispatch latency.

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