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

Memory management, 4. Describe priority scheduling algorithm. Consider the ...

4. Describe priority scheduling algorithm. Consider the following set of processes. Show the order in which the algorithm will schedule these processes. Assume preemptive and non-p

THREADS, advantage and dis advantage of threads

advantage and dis advantage of threads

Write pseudo code to implement the pthread create wrapper, Write pseudo cod...

Write pseudo code to implement the pthread_create wrapper of the Tern memoizer. Note you need to describe your data structure for maintaining deterministic thread IDs. In addition,

Define the properties of batch operating systems, Define the properties ope...

Define the properties operating systems: Batch :- Jobs with similar needs are batched together and  run through the computer as a group by an operator or automatic job sequenc

Least-recently used, LRU evicts the page which was last accessed the farthe...

LRU evicts the page which was last accessed the farthest into the past of any page resident in physical memory, i.e. the least-recently used page. LRU approximates OPT when the rec

Define criterion for classification of data structures, Define what can be ...

Define what can be used as a criterion for classification of data structures utilized in language processing              Answer: nature of a data structure, lifetime of a dat

Define page fault, Page fault is a trap to the software gained by the har...

Page fault is a trap to the software gained by the hardware when a process accesses a page that is goes in the virtual address space, but not added in physical memory. In the har

Os, why we say" OS is a resource allocator" and “OS is a control program"?

why we say" OS is a resource allocator" and “OS is a control program"?

What are tree-structured directories, What are Tree-structured directories ...

What are Tree-structured directories We can generalize the directory structure to a tree of arbitrary height. This permits the user to create their own sub directories and to c

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