COMP 3000 Lab 3 2011
Please answer using text files. Do not use doc, docx, pdf etc. Submit your solutions via WebCT by October 21st at 8 PM.
Part A (in Tutorial)
Notes:
- execve example
- fork, execve example
- generate, receive user signal
- change scheduling priorities program
- Compile run-program.c with the command gcc -g run-program.c -o run-program and use it to answer the following questions.
- Is the line "Is this line printed?" when you execute ./run-program /bin/ls? Why?
- Change the program to use execve instead of execvp . What is the new line?
/* run-program.c */
#include <unistd.h>
#include <stdio.h>
int main( int argc, char *argv[], char *envp[] ) {
if( argc < 2 ) {
printf( "Insufficient arguments.\n" );
return -1;
}
execvp( argv[1], argv + 1 );
printf( "Is this line printed?\n" );
return 0;
}
Part B (on your own)
- catch segfault signal, sigchild?
- make very simple shell based on skeleton?
- run fork bomb, play with priorities to reduce impact, set quota