COSC 430 Bowie State University Smallsh Process Project I have upload a file with all the information. if yo have any question feel welcome to reach at me thanks. COSC 430 Project #1
Due by 4/30/2020 (midnight)
1. Alter smallsh from Chapter 5 so that it handles interrupts more like a real shell:
(1) Your smallsh process shouldnt be terminated upon type-in. Currently, if you type
, your smallsh process will be terminated and exited.
(2) When you type in in middle of executing your smallsh process, only your foreground
process needs to be terminated. And, your smallsh process needs to print the next Command>
prompt on a next line.
(3) When you type in in middle of executing you smallsh process, your background
processes should keep running.
2. Unix shells support the notion of job control, which allows users to move jobs back and forth between
background and foreground, and to change the process state (running, stopped, or terminated) of the
processes in a job. Typing ctrl-c causes a SIGINT signal to be delivered to each process in the
foreground job. The default action for SIGINT is to terminate each process. Similarly, typing ctrl-z
causes a SIGTSTP signal to be delivered to each process in the foreground job. The default action for
SIGTSTP is to place a process in the stopped state, where it remains until it is awakened by the receipt of
a SIGCONT signal. Unix shells also provide various built-in commands that support job control. For
example:
jobs: List the running and stopped background jobs.
bg : Change a stopped background job to a running background job.
fg : Change a stopped or running background job to a running in the foreground.
kill : Terminate a job.
Implement these commands in your smallsh.c program. You have to use your own signal handler
routines for these purposes along with a simple data structure for maintaining the jobs and
processes in each job. You may use process group concept in this implementation for
maintaining processes in each job (job may be interpreted as a process group). If your program
use fork() system calls, multiple children processes will be created which belong to the same job
as your original process which spawned the children processes.
Example
Suppose that you have a program that includes 1 fork system call. Lets name that executable file
as prog1. Also, assume that both the parent and the child process will sleep 60 seconds and
exit. Suppose that you execute the following sequence of commands in less than 60 seconds.
Command> prog1&
Command> prog1&
Command> prog1
Then there are 3 jobs created where each job contains 2 processes. One job is running in
foreground, and two jobs are running in background.
Purchase answer to see full
attachment
Consider the following information, and answer the question below. China and England are international trade…
The CPA is involved in many aspects of accounting and business. Let's discuss some other…
For your initial post, share your earliest memory of a laser. Compare and contrast your…
2. The Ajax Co. just decided to save $1,500 a month for the next five…
How to make an insertion sort to sort an array of c strings using the…
Assume the following Keynesian income-expenditure two-sector model: AD = Cp + Ip Cp = Co…