Determine the fork and execlp functions - linux, Operating System

Assignment Help:

Assignment

  • What I'm covering:
  • General control flow
  • fork()
  • execlp()
  • Parameters
  • Makefiles
  • Additional Questions

General Control Flow/fork()

  • In the Controller:

int main(int argc,char** argv){

.....

for(i = 0;i < 4;i++){

int ret_pid = fork();

if ( ret_pid < 0 ) exit(1); //this means fork() failed

else if ( ret_pid == 0 ) !  //this is the child

else ...  //this is the parent (Controller)

}

return 0;

}

 

execlp()

  • This function call has a lot of gotchas that look very confusing at first glance.
  • The first argument to execlp is the string with the file name that will be executed...and so is the second.
  • Think about your own program being called from the command-line ( > ./a.out arg1 arg2 ). In this case, the value of argv[0] in the program is "a.out".

Same thing applies when using exec, you just have to be explicit about it.

 

More execlp() and parameters

  • The rest of the parameters to execlp are strings containing the rest of the arguments, in our case, the numbers that the calculator will be operating on.
  • These will be passed to Controller as arguments, and from there, they will be passed to Calculator.
  • No matter what, the last argument to execlp MUST be a null-terminator (NULL or (char*) 0).

This is because the argument list must be null-terminated, just like any other string.

 

Makefiles

  • This assignment requires that TWO executables be created: the Controller and the Calculator.
  • Because of how Eclipse generates its makefiles, if you try to do this in a single project, Eclipse will whine. I recommend doing your coding in a normal text editor (gedit, emacs, vi, bluefish, etc.), and writing your own makefile.
  • There are plenty of makefile tutorials online; but this project (and the next one) will not require a particularly complex makefile.

 

Makefile example

  • Here's the general format of a makefile entry:

[target] : [dependency1] ! [dependencyn] [command to execute]

  • In this example, when you call make target, the make program checks if any of the dependencies of target are out of date.
  • If one or more of them is out of date, the command to execute is run.

Related Discussions:- Determine the fork and execlp functions - linux

Analysis of Pseudocode Sempahore Solution, Gopher Gallery consists of a sho...

Gopher Gallery consists of a shopping mall and a cart ride that covers the 150 acre habitat. There are m visitors and n single-person vehicles. Visitors stroll around the mall at

What do you mean by semaphore?, What do you mean by semaphore?  Semap...

What do you mean by semaphore?  Semaphore : A synchronization variable that acquires on positive integer values. Invented by the Dijkstra P (semaphore): an atomic proce

Load sharing , Load Sharing : Processes are not given to a particular proc...

Load Sharing : Processes are not given to a particular processor. A global queue of threads is used to maintain. Each processor, when idle, picks a thread from this queue. Note th

Page-table lookups, How exactly is a page table used to look up an address?...

How exactly is a page table used to look up an address? The CPU has a page table base register (PTBR)which points to the base (entry 0) of the level-0 page table. Each process h

Describe the buddy system of memory allocation, Buddy system of memory allo...

Buddy system of memory allocation Free memory is used to maintain in linked lists, each of similar sized blocks. Every block is of size 2^k. When some memory is needed by a th

Is there any way to execute truly stable storage, Q. Is there any way to ex...

Q. Is there any way to execute truly stable storage? Describe your answer. Answer: Truly steady storage would never lose data. The fundamental technique for steady storage is

Explain second-chance algorithm, Second-Chance algorithm When a page ha...

Second-Chance algorithm When a page has been selected, we inspect its reference bit. If the value is 0, we proceed to replace this page. If the reference bit is set to 1, thoug

Explain the performance of demand paging, Performance of demand paging ...

Performance of demand paging Demand paging can have an important effect on the performance of a computer system. As long as there are no page faults, the effective access time

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