Concurrency Shell

  • Project Type: Scripting Software
  • Languages: C
  • Tech Stack: Linux, GDB
  • Project Links: GitHub

Project Details

Shells allow users to start new processes by typing in commands with their arguments. They also receive certain signals — such as keyboard interrupts — and forward them to the relevant processes. Some easily testable commands include calls to sleep, ps, and grep.

This implementation allows users to execute Linux-like shell commands, create and manipulate processes, and execute tasks concurrently. Tasks can easily be moved between the foreground and background, nuked, and executed with several arguments.

Signal handling is also fully implemented, allowing users to suspend jobs with SIGTSTP and SIGCONT inputs, as well as terminate jobs with SIGQUIT and SIGINT inputs. Error handling is thoroughly developed to ensure appropriate logs are provided and only executable command line entries are accepted.