Description
PART 1 Simple Command Interpreter
Write a special simple command interpreter that takes a command and its arguments. This interpreter is a program where the main process creates a child process to execute the command using exec() family functions. After executing the command, it asks for a new command input ( parent waits for child). The interpreter program will get terminated when the user enters exit.
Example:
./interpreter
command: pwd
-
output command: ls -la
-
output command: date
-
output
command: ls -lr /foldername
-
output
command: tail /etc/passwd | grep username
-
output
command: ps -u username | grep firefox
-
output
command: cat /etc/passwd
-
output command: exit
-
terminates the program.
PART 2 Average Grade Calculator
There are n (n>1) students enrolled in a course. The course covers x number of chapters from a textbook (x > 1).
In each chapter y number of homeworks are assigned (y>=1). The average grade for each homework in all the chapters need to be found out.
To solve this, write program which has the main process as Director process, which reads a file containing grades of all homeworks of all chapters and creates x number of Manager processes. Each Manager process will take care of solving a chapter. Each manager process will create y number of Worker process and pass marks of n students to each of them and they calculate and print the average.
The input file should contain the data according to the value of x and y and n. For example, the input text file and the process tree for x = 2 and y = 2 and n= 10 will look like the following:
X1Y1 |
X1Y2 |
X2Y1 |
X2Y2 |
|
Student1 |
19 |
17 |
20 |
18 |
Student2 |
9 |
6 |
10 |
9 |
Student3 |
12 |
11 |
10 |
6 |
Student4 |
3 |
7 |
9 |
10 |
Student5 |
0 |
5 |
8 |
6 |
Student6 |
15 |
13 |
15 |
15 |
Student7 |
20 |
18 |
18 |
16 |
Student8 |
17 |
19 |
19 |
18 |
Student9 |
13 |
15 |
14 |
12 |
Student10 |
10 |
13 |
18 |
15 |
Output: |
avg |
avg |
avg |
avg |
-
All the programs MUST be clearly indented and internally documented
-
Make sure your programs compile and run without any errors
• Only include c files or txt files for submission. Do not include any executables.
-
Save all your programs with meaningful names and zip into a single folder as: Lab4_[your last name here].zip (e.g., Lab4_Xyz.zip)
-
Email your code with the subject line, “Task4-CSC33200–Section 6X(41557)-lastname“
-
Email: sdebnath@ccny.cuny.edu
******
Office Hour: Wednesday 11:00 AM – 12:00 PM
Zoom Link: https://ccny.zoom.us/j/81330004103
Meeting ID: 813 3000 4103
One tap mobile
+16465588656,,81330004103# US (New York)
+13126266799,,81330004103# US (Chicago)
Dial by your location
+1 646 558 8656 US (New York)
+1 312 626 6799 US (Chicago)
+1 301 715 8592 US (Washington DC)
+1 346 248 7799 US (Houston)
+1 669 900 6833 US (San Jose)
+1 253 215 8782 US (Tacoma)
Meeting ID: 813 3000 4103
Find your local number: https://ccny.zoom.us/u/kbw8Ypx156
IMPORTANT NOTE: Please connect with zoom with a valid CCNY or CITYMAIL email id. Please sign up with the CITYMAIL or CCNY email address at :