Problem

Using the example in Figure 8.23 as a starting point, write a shell program that support...

Using the example in Figure 8.23 as a starting point, write a shell program that supports job control. Your shell should have the following features:

. The command line typed by the user consists of a name and zero or more arguments, all separated by one or more spaces. If name is a built-in command, the shell handles it immediately and waits for the next command line. Otherwise, the shell assumes that name is an executable file, which it loads and runs in the context of an initial child process (job). The process group ID for the job is identical to the PID of the child.

• . Each job is identified by either a process ID (PID) or a job ID (JID), which is a small arbitrary positive integer assigned by the shell. JIDs are denoted on the command line by the prefix ‘%’. For example, “%5” denotes JID 5, and “5” denotes PID 5.

• . If the command line ends with an ampersand, then the shell runs the job in the background. Otherwise, the shell runs the job in the foreground.

• . Typing ctrl-c (ctrl-z) causes the shell to send a SIGINT (SIGTSTP) signal to every process in the foreground process group.

• . The jobs built-in command lists all background jobs.

• . The bg job built-in command restarts by sending it a SIGCONT signal, and then runs it in the background. The argument can be either a PID or a JID.

• . The fg job built-in command restarts by sending it a SIGCONT signal, and then runs it in the foreground.

• . The shell reaps all of its zombie children. If any job terminates because it receives a signal that was not caught, then the shell prints a message to the terminal with the job’s PID and a description of the offending signal. Figure 8.42 shows an example shell session.

Step-by-Step Solution

Request Professional Solution

Request Solution!

We need at least 10 more requests to produce the solution.

0 / 10 have requested this problem solution

The more requests, the faster the answer.

Request! (Login Required)


All students who have requested the solution will be notified once they are available.
Add your Solution
Textbook Solutions and Answers Search