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

In which page replacement policy balady’s anomaly occurs, In which page rep...

In which page replacement policy Balady’s anomaly occurs? FIFO (First in First Out)

Business, why some companies do not pay sufficient attention to staff induc...

why some companies do not pay sufficient attention to staff induction

What happens when you high-level format a floppy disk, Question: a. The...

Question: a. The following questions refer to a generic Windows file system: i) Describe what happens when you high-level format a floppy disk? ii) What is the maximum size

Batch system, what is a batch system give me answer in simple words so that...

what is a batch system give me answer in simple words so that i can understand

Advantage of minimizing the file space, Q. a number of systems automaticall...

Q. a number of systems automatically delete all user files when a user logs off or a job terminates unless the user explicitly requests that they be kept other systems keep all fil

Unsafe state in a deadlock-avoidance system, Question: A set of process...

Question: A set of processes are in a deadlock state when every process in the set is waiting for an event that can be caused by only another process in the set. (a) There

Networking and distributed systems, Networks and operating systems have a l...

Networks and operating systems have a lot of overlap. In this course, however,we are not going to discuss networking in detail, but rather focus on the networking abstractions prov

What is the lower bound on the numeral of page faults, Q. Presume that you...

Q. Presume that you have a page-reference string for a process with m frames (initially all empty). The page-reference string has length p along with n distinct page numbers

Is anti virus a system utility, Problem: a) Explain physically what occ...

Problem: a) Explain physically what occurs when a disk is fragmented. What is the purpose of "defragmenting" a disk? b) What is the idea behind backing up data on a secondar

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