This is an old revision of the document!
Getting work done: what is job scheduling?
The idea of work on a computer system equates with running programs. The term programs equates with two basic entities on Linux systems:
- binary executable: source code in a programming language (Fortran, C/C++, etc.) is compiled and linked to produce low-level machine code executed directly on the computer's CPU(s)
- script: source code is read and interpreted on-the-fly into machine code that is executed on the computer's CPU(s)
Both of these kinds of program often themselves run additional programs to get their work done. An excellent example of this is Bash shell scripts, which are an encapsulated sequence of commands the user could have typed at the shell prompt:
<file bash> #!/bin/bash
ls -l run_matlab=$(find . -type f -executable -name run_matlab | head -1) if [ $? -eq 0 ]; then
exec $run_matlab
fi echo “No run_matlab programs found inside $(pwd)” exit 1 </file >