os_ex3

2
Operating Systems (04JEZOQ) LAB 3 – simple process management Exercise 1: write a C program that performs the following operations: Creates a child process that generates a file called random.txt containing a random number of random numbers separated by the space character. When the file is created the program must instantiate three sub processes: o The first process must execute the linux command wc –m to print on the screen the number of bytes of the file. o The second process must execute the linux command wc –w to count the number of words in the file o The third process must execute a custom program designed to compute the average of all generated number. The main process terminates when all three children terminate. Exercise 2: Create a modified Linux shell called my shell. The new shell must have the following characteristic: It receives commands on the command line like the standard linux shell (the command cannot be split on different lines). Every command is executed in background in a dedicated child process The output of the command is not written on the screen but is saved in a file named <PID>.log where <PID> is the process identifier of the child process executing the command. The shell terminates when the user enters the exit command. If you have time try to start solving the following two problems that require the use of pipes as inter process communication mechanism. Exercise 3: Write a multi-process program that evaluates the following math series: 2 ! ! ! The main process receives the N value as input (set max value for N to 5) and performs the final sum. Each 2 ! is evaluated by the i-th process and sent to the father for the final sum.

Upload: george-balan

Post on 15-Dec-2015

5 views

Category:

Documents


1 download

DESCRIPTION

Operating Systems course exercises

TRANSCRIPT

Page 1: OS_ex3

Operating Systems (04JEZOQ)

LAB 3 – simple process management

Exercise 1: write a C program that performs the following operations:

• Creates a child process that generates a file called random.txt containing a random number of random numbers separated by the space character.

• When the file is created the program must instantiate three sub processes:

o The first process must execute the linux command wc –m to print on the screen the number of bytes of the file.

o The second process must execute the linux command wc –w to count the number of words in the file

o The third process must execute a custom program designed to compute the average of all generated number.

• The main process terminates when all three children terminate.

Exercise 2: Create a modified Linux shell called my shell. The new shell must have the following characteristic:

• It receives commands on the command line like the standard linux shell (the command cannot be split on different lines).

• Every command is executed in background in a dedicated child process

• The output of the command is not written on the screen but is saved in a file named <PID>.log where <PID> is the process identifier of the child process executing the command.

• The shell terminates when the user enters the exit command.

If you have time try to start solving the following two problems that require the use of pipes as inter process communication mechanism.

Exercise 3: Write a multi-process program that evaluates the following math series:

2!!

!

The main process receives the N value as input (set max value for N to 5) and performs the final sum. Each 2! is evaluated by the i-th process and sent to the father for the final sum.

Page 2: OS_ex3

Exercise 4: Use the previous program skeleton to evaluate the following Taylor expansion:

𝑒! = 1 +𝑥1!+𝑥!

2!+𝑥!

3!+  …+

𝑥!

𝑖!+⋯+  

𝑥!

𝑁!

The main process gets x and N value as input (x is a double number and N > 0) and performs the final sum. No boundaries are set to N value.

Each !!

!! is performed by the i-th process and sent to the father for the final

sum.