Starting from:
$30

$24

CS450 Programming Assignment 1 Solved




2. Requirements: 

This programming assignment is inspired by one given at MIT 

(https://pdos.csail.mit.edu/6.828/2012/homework/xv6-shell.html). The MIT assignment 

asks the students to implement the pipe "|" and IO indirection ">" operators and 

somewhat more. We ask you to implement the sequence command execution operator 

";" and the parallel execution operator "&" and more. You should do this assignment by 

modifying the skeleton code attached. Invoke your shell from the shell that comes with 

xv6 or from a robust UNIX. 

1) After your shell has started, it will give a prompt to the user. You should use 

"$CS450" for the prompt. 

2) If the user types cmd1;cmd2;...;cmdn after the prompt, cmd1 will get 

executed, followed by cmd2 and so on. After cmdn is executed, your shell will 

give a new prompt in a new line, ready to execute the next command line. 

3) If the user types cmd1&cmd2&...&cmdn, all commands will get executed in 

parallel. After all terminate, your shell will give a new prompt in a new line, 

ready to execute the next command line. 

4) The commands cmd1 etc. are real commands supported by xv6 and they take 

arguments. An example is the command echo "A". 

5) Your shell shall support command lines with 3 or more commands connected by 

the ";" and "&" operators. The operators are of equal rank and they will be 

executed from left to right. As an example, the string "cmd1&cmd2;cmd3" will 

see cmd1 and cmd2 executed in parallel, then Cmd3 after they both terminate. 

6) A command string terminated by a "&" is illegal; but it is fine with ";" 

 

3. Deliverables:

1) Source and executable objects with a README on how to build and execute 

them. 

2) Screenshots showing your shell and test cases being executed. An example is 

attached. 

3) A copy of the modified skeleton code, showing the modifications that you make 

and with comments that explains how your code works. 

4) The test data that you use and explanation on why the test data is of good 

quality. If you use the equivalence partitioning method to generate your test 

data, describe your equivalence partitions. 

More products